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