xref: /haiku/src/add-ons/media/media-add-ons/demultiplexer/MediaDemultiplexerAddOn.cpp (revision 893988af824e65e49e55f517b157db8386e8002b)
1 // MediaDemultiplexerAddOn.cpp
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 
11 #include <MediaDefs.h>
12 #include <MediaAddOn.h>
13 #include <Errors.h>
14 
15 #include "MediaDemultiplexerNode.h"
16 #include "MediaDemultiplexerAddOn.h"
17 
18 #include <limits.h>
19 #include <stdio.h>
20 #include <string.h>
21 
22 // instantiation function
23 extern "C" _EXPORT BMediaAddOn * make_media_addon(image_id image)
24 {
25 	return new MediaDemultiplexerAddOn(image);
26 }
27 
28 // -------------------------------------------------------- //
29 // ctor/dtor
30 // -------------------------------------------------------- //
31 
32 MediaDemultiplexerAddOn::~MediaDemultiplexerAddOn()
33 {
34 }
35 
36 MediaDemultiplexerAddOn::MediaDemultiplexerAddOn(image_id image) :
37 	BMediaAddOn(image)
38 {
39 	fprintf(stderr,"MediaDemultiplexerAddOn::MediaDemultiplexerAddOn\n");
40 	refCount = 0;
41 }
42 
43 // -------------------------------------------------------- //
44 // BMediaAddOn impl
45 // -------------------------------------------------------- //
46 
47 status_t MediaDemultiplexerAddOn::InitCheck(
48 	const char ** out_failure_text)
49 {
50 	fprintf(stderr,"MediaDemultiplexerAddOn::InitCheck\n");
51 	return B_OK;
52 }
53 
54 int32 MediaDemultiplexerAddOn::CountFlavors()
55 {
56 	fprintf(stderr,"MediaDemultiplexerAddOn::CountFlavors\n");
57 	return 1;
58 }
59 
60 status_t MediaDemultiplexerAddOn::GetFlavorAt(
61 	int32 n,
62 	const flavor_info ** out_info)
63 {
64 	fprintf(stderr,"MediaDemultiplexerAddOn::GetFlavorAt\n");
65 	if (n != 0) {
66 		fprintf(stderr,"<- B_BAD_INDEX\n");
67 		return B_BAD_INDEX;
68 	}
69 	flavor_info * infos = new flavor_info[1];
70 	MediaDemultiplexerNode::GetFlavor(&infos[0],n);
71 	(*out_info) = infos;
72 	return B_OK;
73 }
74 
75 BMediaNode * MediaDemultiplexerAddOn::InstantiateNodeFor(
76 				const flavor_info * info,
77 				BMessage * config,
78 				status_t * out_error)
79 {
80 	fprintf(stderr,"MediaDemultiplexerAddOn::InstantiateNodeFor\n");
81 	MediaDemultiplexerNode * node
82 		= new MediaDemultiplexerNode(info,config,this);
83 	if (node == 0) {
84 		*out_error = B_NO_MEMORY;
85 		fprintf(stderr,"<- B_NO_MEMORY\n");
86 	} else {
87 		*out_error = node->InitCheck();
88 	}
89 	return node;
90 }
91 
92 status_t MediaDemultiplexerAddOn::GetConfigurationFor(
93 				BMediaNode * your_node,
94 				BMessage * into_message)
95 {
96 	fprintf(stderr,"MediaDemultiplexerAddOn::GetConfigurationFor\n");
97 	MediaDemultiplexerNode * node
98 		= dynamic_cast<MediaDemultiplexerNode*>(your_node);
99 	if (node == 0) {
100 		fprintf(stderr,"<- B_BAD_TYPE\n");
101 		return B_BAD_TYPE;
102 	}
103 	return node->GetConfigurationFor(into_message);
104 }
105 
106 bool MediaDemultiplexerAddOn::WantsAutoStart()
107 {
108 	fprintf(stderr,"MediaDemultiplexerAddOn::WantsAutoStart\n");
109 	return false;
110 }
111 
112 status_t MediaDemultiplexerAddOn::AutoStart(
113 				int in_count,
114 				BMediaNode ** out_node,
115 				int32 * out_internal_id,
116 				bool * out_has_more)
117 {
118 	fprintf(stderr,"MediaDemultiplexerAddOn::AutoStart\n");
119 	return B_OK;
120 }
121 
122 // -------------------------------------------------------- //
123 // main
124 // -------------------------------------------------------- //
125 
126 int main(int argc, char *argv[])
127 {
128 	fprintf(stderr,"main called for MediaDemultiplexerAddOn\n");
129 }
130 
131 // -------------------------------------------------------- //
132 // stuffing
133 // -------------------------------------------------------- //
134 
135 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_0(void *) {};
136 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_1(void *) {};
137 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_2(void *) {};
138 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_3(void *) {};
139 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_4(void *) {};
140 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_5(void *) {};
141 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_6(void *) {};
142 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_7(void *) {};
143 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_8(void *) {};
144 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_9(void *) {};
145 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_10(void *) {};
146 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_11(void *) {};
147 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_12(void *) {};
148 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_13(void *) {};
149 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_14(void *) {};
150 status_t MediaDemultiplexerAddOn::_Reserved_MediaDemultiplexerAddOn_15(void *) {};
151