xref: /haiku/headers/private/media/StreamerPlugin.h (revision 218a8c03cbadd95d8888b218930f514fa0b4fac4)
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 	friend class PluginManager;
33 };
34 
35 
36 class StreamerPlugin : public virtual MediaPlugin {
37 public:
38 	virtual	Streamer*			NewStreamer() = 0;
39 };
40 
41 } } // namespace BPrivate::media
42 
43 using namespace BPrivate::media;
44 
45 
46 #endif // _STREAMER_PLUGIN_H
47