xref: /haiku/headers/private/media/StreamerPlugin.h (revision 05fc1277c47440dc36134816d70e5723c99cfcd2)
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