1// MediaDemultiplexerAddOn.h
2//
3// Andrew Bachmann, 2002
4//
5// MediaDemultiplexerAddOn is an add-on
6// that can make instances of MediaDemultiplexerNode
7//
8// MediaDemultiplexerNode handles a file and a multistream
9
10#if !defined(_MEDIA_DEMULTIPLEXER_ADD_ON_H)
11#define _MEDIA_DEMULTIPLEXER_ADD_ON_H
12
13#include <MediaDefs.h>
14#include <MediaAddOn.h>
15
16class MediaDemultiplexerAddOn :
17    public BMediaAddOn
18{
19public:
20	virtual ~MediaDemultiplexerAddOn(void);
21	explicit MediaDemultiplexerAddOn(image_id image);
22
23/**************************/
24/* begin from BMediaAddOn */
25public:
26virtual	status_t InitCheck(
27				const char ** out_failure_text);
28virtual	int32 CountFlavors(void);
29virtual	status_t GetFlavorAt(
30				int32 n,
31				const flavor_info ** out_info);
32virtual	BMediaNode * InstantiateNodeFor(
33				const flavor_info * info,
34				BMessage * config,
35				status_t * out_error);
36virtual	status_t GetConfigurationFor(
37				BMediaNode * your_node,
38				BMessage * into_message);
39virtual	bool WantsAutoStart(void);
40virtual	status_t AutoStart(
41				int in_count,
42				BMediaNode ** out_node,
43				int32 * out_internal_id,
44				bool * out_has_more);
45
46/* end from BMediaAddOn */
47/************************/
48
49private:
50
51		MediaDemultiplexerAddOn(	/* private unimplemented */
52				const MediaDemultiplexerAddOn & clone);
53		MediaDemultiplexerAddOn & operator=(
54				const MediaDemultiplexerAddOn & clone);
55
56		int32 refCount;
57
58		/* Mmmh, stuffing! */
59virtual		status_t _Reserved_MediaDemultiplexerAddOn_0(void *);
60virtual		status_t _Reserved_MediaDemultiplexerAddOn_1(void *);
61virtual		status_t _Reserved_MediaDemultiplexerAddOn_2(void *);
62virtual		status_t _Reserved_MediaDemultiplexerAddOn_3(void *);
63virtual		status_t _Reserved_MediaDemultiplexerAddOn_4(void *);
64virtual		status_t _Reserved_MediaDemultiplexerAddOn_5(void *);
65virtual		status_t _Reserved_MediaDemultiplexerAddOn_6(void *);
66virtual		status_t _Reserved_MediaDemultiplexerAddOn_7(void *);
67virtual		status_t _Reserved_MediaDemultiplexerAddOn_8(void *);
68virtual		status_t _Reserved_MediaDemultiplexerAddOn_9(void *);
69virtual		status_t _Reserved_MediaDemultiplexerAddOn_10(void *);
70virtual		status_t _Reserved_MediaDemultiplexerAddOn_11(void *);
71virtual		status_t _Reserved_MediaDemultiplexerAddOn_12(void *);
72virtual		status_t _Reserved_MediaDemultiplexerAddOn_13(void *);
73virtual		status_t _Reserved_MediaDemultiplexerAddOn_14(void *);
74virtual		status_t _Reserved_MediaDemultiplexerAddOn_15(void *);
75
76		uint32 _reserved_media_demultiplexer_add_on_[16];
77
78};
79
80#if BUILDING_MEDIA_DEMULTIPLEXER__ADD_ON
81extern "C" _EXPORT BMediaAddOn * make_media_demultiplexer_add_on(image_id you);
82#endif
83
84#endif /* _MEDIA_DEMULTIPLEXER_ADD_ON_H */
85