1 #ifndef _STREAMER_PLUGIN_H 2 #define _STREAMER_PLUGIN_H 3 4 5 #include <MediaIO.h> 6 #include <MediaTrack.h> 7 #include <Referenceable.h> 8 #include <Url.h> 9 10 #include "MediaPlugin.h" 11 12 13 namespace BPrivate { namespace media { 14 15 class PluginManager; 16 17 class Streamer { 18 public: 19 Streamer(); 20 virtual ~Streamer(); 21 22 virtual status_t Sniff(const BUrl& url, BDataIO** source) = 0; 23 private: 24 virtual void _ReservedStreamer1(); 25 virtual void _ReservedStreamer2(); 26 virtual void _ReservedStreamer3(); 27 virtual void _ReservedStreamer4(); 28 virtual void _ReservedStreamer5(); 29 30 MediaPlugin* fMediaPlugin; 31 BReferenceable fReference; 32 uint32 fReserved[5]; 33 34 // needed for plug-in reference count management 35 friend class PluginManager; 36 }; 37 38 39 class StreamerPlugin : public virtual MediaPlugin { 40 public: 41 virtual Streamer* NewStreamer() = 0; 42 }; 43 44 } } // namespace BPrivate::media 45 46 using namespace BPrivate::media; 47 48 49 #endif // _STREAMER_PLUGIN_H 50