xref: /haiku/src/add-ons/media/media-add-ons/demultiplexer/MediaDemultiplexerAddOn.h (revision d5525d8c93458184aafe1ddf285a5d055dc108a9)
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 
16 class MediaDemultiplexerAddOn :
17     public BMediaAddOn
18 {
19 public:
20 	virtual ~MediaDemultiplexerAddOn(void);
21 	explicit MediaDemultiplexerAddOn(image_id image);
22 
23 /**************************/
24 /* begin from BMediaAddOn */
25 public:
26 virtual	status_t InitCheck(
27 				const char ** out_failure_text);
28 virtual	int32 CountFlavors(void);
29 virtual	status_t GetFlavorAt(
30 				int32 n,
31 				const flavor_info ** out_info);
32 virtual	BMediaNode * InstantiateNodeFor(
33 				const flavor_info * info,
34 				BMessage * config,
35 				status_t * out_error);
36 virtual	status_t GetConfigurationFor(
37 				BMediaNode * your_node,
38 				BMessage * into_message);
39 virtual	bool WantsAutoStart(void);
40 virtual	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 
49 private:
50 
51 		MediaDemultiplexerAddOn(	/* private unimplemented */
52 				const MediaDemultiplexerAddOn & clone);
53 		MediaDemultiplexerAddOn & operator=(
54 				const MediaDemultiplexerAddOn & clone);
55 
56 		int32 refCount;
57 
58 		/* Mmmh, stuffing! */
59 virtual		status_t _Reserved_MediaDemultiplexerAddOn_0(void *);
60 virtual		status_t _Reserved_MediaDemultiplexerAddOn_1(void *);
61 virtual		status_t _Reserved_MediaDemultiplexerAddOn_2(void *);
62 virtual		status_t _Reserved_MediaDemultiplexerAddOn_3(void *);
63 virtual		status_t _Reserved_MediaDemultiplexerAddOn_4(void *);
64 virtual		status_t _Reserved_MediaDemultiplexerAddOn_5(void *);
65 virtual		status_t _Reserved_MediaDemultiplexerAddOn_6(void *);
66 virtual		status_t _Reserved_MediaDemultiplexerAddOn_7(void *);
67 virtual		status_t _Reserved_MediaDemultiplexerAddOn_8(void *);
68 virtual		status_t _Reserved_MediaDemultiplexerAddOn_9(void *);
69 virtual		status_t _Reserved_MediaDemultiplexerAddOn_10(void *);
70 virtual		status_t _Reserved_MediaDemultiplexerAddOn_11(void *);
71 virtual		status_t _Reserved_MediaDemultiplexerAddOn_12(void *);
72 virtual		status_t _Reserved_MediaDemultiplexerAddOn_13(void *);
73 virtual		status_t _Reserved_MediaDemultiplexerAddOn_14(void *);
74 virtual		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
81 extern "C" _EXPORT BMediaAddOn * make_media_demultiplexer_add_on(image_id you);
82 #endif
83 
84 #endif /* _MEDIA_DEMULTIPLEXER_ADD_ON_H */
85