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