StreamerPlugin.h revision 4dd09daf
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
12namespace BPrivate { namespace media {
13
14class PluginManager;
15
16class Streamer {
17public:
18								Streamer();
19	virtual						~Streamer();
20
21	virtual status_t			Sniff(const BUrl& url, BDataIO** source) = 0;
22private:
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
37class StreamerPlugin : public virtual MediaPlugin {
38public:
39	virtual	Streamer*			NewStreamer() = 0;
40};
41
42} } // namespace BPrivate::media
43
44using namespace BPrivate::media;
45
46
47#endif // _STREAMER_PLUGIN_H
48