Mercurial > octave-nkf
comparison libinterp/dldfcn/__recorder_audiorecorder__.cc @ 19516:11a1e8e41835
let audiodevinfo be built even when PortAudio is not present
* audiodevinfo.cc: added conditional compilation constructs to prevent
building parts that require PortAudio when it is not present
author | Vytautas Jančauskas <unaudio@gmail.com> |
---|---|
date | Mon, 16 Sep 2013 16:38:51 +0300 |
parents | 13082628e7e8 |
children | 8bb399569393 |
comparison
equal
deleted
inserted
replaced
19515:9d1917a61759 | 19516:11a1e8e41835 |
---|---|
1 #include "oct.h" | 1 #include "oct.h" |
2 #include "ov-struct.h" | 2 #include "ov-struct.h" |
3 | 3 |
4 #ifdef HAVE_PORTAUDIO | |
4 #include "player_class.cc" | 5 #include "player_class.cc" |
5 #include "recorder_class.cc" | 6 #include "recorder_class.cc" |
7 #endif | |
6 | 8 |
7 DEFUN_DLD(__recorder_audiorecorder__, args, , | 9 DEFUN_DLD(__recorder_audiorecorder__, args, , |
8 "__recorder_audiorecorder__" | 10 "__recorder_audiorecorder__" |
9 ) | 11 ) |
10 { | 12 { |
13 #ifdef HAVE_PORTAUDIO | |
11 int nargin = args.length (); | 14 int nargin = args.length (); |
12 audiorecorder* retval = new audiorecorder (); | 15 audiorecorder* retval = new audiorecorder (); |
13 int offset = 0; | 16 int offset = 0; |
14 if (nargin > 0) | 17 if (nargin > 0) |
15 { | 18 { |
34 retval->set_id (args(3 + offset).int_value ()); | 37 retval->set_id (args(3 + offset).int_value ()); |
35 break; | 38 break; |
36 } | 39 } |
37 retval->init(); | 40 retval->init(); |
38 return octave_value(retval); | 41 return octave_value(retval); |
42 #else | |
43 octave_value retval; | |
44 error ("portaudio not found on your system and thus audio functionality is not present"); | |
45 return retval; | |
46 #endif | |
39 } | 47 } |
40 | 48 |
41 DEFUN_DLD(__recorder_getaudiodata__, args, , | 49 DEFUN_DLD(__recorder_getaudiodata__, args, , |
42 "__recorder_getaudiodata__" | 50 "__recorder_getaudiodata__" |
43 ) | 51 ) |
44 { | 52 { |
45 octave_value retval; | 53 octave_value retval; |
54 #ifdef HAVE_PORTAUDIO | |
46 audiorecorder* recorder = 0; | 55 audiorecorder* recorder = 0; |
47 const octave_base_value& rep = args (0).get_rep (); | 56 const octave_base_value& rep = args (0).get_rep (); |
48 recorder = &((audiorecorder &)rep); | 57 recorder = &((audiorecorder &)rep); |
49 retval = octave_value (recorder->getaudiodata ()); | 58 retval = octave_value (recorder->getaudiodata ()); |
59 #else | |
60 error ("portaudio not found on your system and thus audio functionality is not present"); | |
61 #endif | |
50 return retval; | 62 return retval; |
51 } | 63 } |
52 | 64 |
53 DEFUN_DLD(__recorder_get_channels__, args, , | 65 DEFUN_DLD(__recorder_get_channels__, args, , |
54 "__recorder_get_channels__" | 66 "__recorder_get_channels__" |
55 ) | 67 ) |
56 { | 68 { |
57 octave_value retval; | 69 octave_value retval; |
70 #ifdef HAVE_PORTAUDIO | |
58 int nargin = args.length (); | 71 int nargin = args.length (); |
59 if (nargin == 1) | 72 if (nargin == 1) |
60 { | 73 { |
61 audiorecorder* recorder = 0; | 74 audiorecorder* recorder = 0; |
62 const octave_base_value& rep = args (0).get_rep (); | 75 const octave_base_value& rep = args (0).get_rep (); |
63 recorder = &((audiorecorder &)rep); | 76 recorder = &((audiorecorder &)rep); |
64 retval = octave_value(recorder->get_channels()); | 77 retval = octave_value(recorder->get_channels()); |
65 } | 78 } |
79 #else | |
80 error ("portaudio not found on your system and thus audio functionality is not present"); | |
81 #endif | |
66 return retval; | 82 return retval; |
67 } | 83 } |
68 | 84 |
69 DEFUN_DLD(__recorder_get_fs__, args, , | 85 DEFUN_DLD(__recorder_get_fs__, args, , |
70 "__recorder_get_fs__" | 86 "__recorder_get_fs__" |
71 ) | 87 ) |
72 { | 88 { |
73 octave_value retval; | 89 octave_value retval; |
90 #ifdef HAVE_PORTAUDIO | |
74 int nargin = args.length (); | 91 int nargin = args.length (); |
75 if (nargin == 1) | 92 if (nargin == 1) |
76 { | 93 { |
77 audiorecorder* recorder = 0; | 94 audiorecorder* recorder = 0; |
78 const octave_base_value& rep = args (0).get_rep (); | 95 const octave_base_value& rep = args (0).get_rep (); |
79 recorder = &((audiorecorder &)rep); | 96 recorder = &((audiorecorder &)rep); |
80 retval = octave_value(recorder->get_fs()); | 97 retval = octave_value(recorder->get_fs()); |
81 } | 98 } |
99 #else | |
100 error ("portaudio not found on your system and thus audio functionality is not present"); | |
101 #endif | |
82 return retval; | 102 return retval; |
83 } | 103 } |
84 | 104 |
85 DEFUN_DLD(__recorder_get_id__, args, , | 105 DEFUN_DLD(__recorder_get_id__, args, , |
86 "__recorder_get_id__" | 106 "__recorder_get_id__" |
87 ) | 107 ) |
88 { | 108 { |
89 octave_value retval; | 109 octave_value retval; |
110 #ifdef HAVE_PORTAUDIO | |
90 int nargin = args.length (); | 111 int nargin = args.length (); |
91 if (nargin == 1) | 112 if (nargin == 1) |
92 { | 113 { |
93 audiorecorder* recorder = 0; | 114 audiorecorder* recorder = 0; |
94 const octave_base_value& rep = args (0).get_rep (); | 115 const octave_base_value& rep = args (0).get_rep (); |
95 recorder = &((audiorecorder &)rep); | 116 recorder = &((audiorecorder &)rep); |
96 retval = octave_value(recorder->get_id()); | 117 retval = octave_value(recorder->get_id()); |
97 } | 118 } |
119 #else | |
120 error ("portaudio not found on your system and thus audio functionality is not present"); | |
121 #endif | |
98 return retval; | 122 return retval; |
99 } | 123 } |
100 | 124 |
101 DEFUN_DLD(__recorder_get_nbits__, args, , | 125 DEFUN_DLD(__recorder_get_nbits__, args, , |
102 "__recorder_get_nbits__" | 126 "__recorder_get_nbits__" |
103 ) | 127 ) |
104 { | 128 { |
105 octave_value retval; | 129 octave_value retval; |
130 #ifdef HAVE_PORTAUDIO | |
106 int nargin = args.length (); | 131 int nargin = args.length (); |
107 if (nargin == 1) | 132 if (nargin == 1) |
108 { | 133 { |
109 audiorecorder* recorder = 0; | 134 audiorecorder* recorder = 0; |
110 const octave_base_value& rep = args (0).get_rep (); | 135 const octave_base_value& rep = args (0).get_rep (); |
111 recorder = &((audiorecorder &)rep); | 136 recorder = &((audiorecorder &)rep); |
112 retval = octave_value(recorder->get_nbits ()); | 137 retval = octave_value(recorder->get_nbits ()); |
113 } | 138 } |
139 #else | |
140 error ("portaudio not found on your system and thus audio functionality is not present"); | |
141 #endif | |
114 return retval; | 142 return retval; |
115 } | 143 } |
116 | 144 |
117 DEFUN_DLD(__recorder_get_sample_number__, args, , | 145 DEFUN_DLD(__recorder_get_sample_number__, args, , |
118 "__recorder_get_sample_number__" | 146 "__recorder_get_sample_number__" |
119 ) | 147 ) |
120 { | 148 { |
121 octave_value retval; | 149 octave_value retval; |
150 #ifdef HAVE_PORTAUDIO | |
122 int nargin = args.length (); | 151 int nargin = args.length (); |
123 if (nargin == 1) | 152 if (nargin == 1) |
124 { | 153 { |
125 audiorecorder* recorder = 0; | 154 audiorecorder* recorder = 0; |
126 const octave_base_value& rep = args (0).get_rep (); | 155 const octave_base_value& rep = args (0).get_rep (); |
127 recorder = &((audiorecorder &)rep); | 156 recorder = &((audiorecorder &)rep); |
128 retval = octave_value(recorder->get_sample_number()); | 157 retval = octave_value(recorder->get_sample_number()); |
129 } | 158 } |
159 #else | |
160 error ("portaudio not found on your system and thus audio functionality is not present"); | |
161 #endif | |
130 return retval; | 162 return retval; |
131 } | 163 } |
132 | 164 |
133 DEFUN_DLD(__recorder_get_tag__, args, , | 165 DEFUN_DLD(__recorder_get_tag__, args, , |
134 "__recorder_get_tag__" | 166 "__recorder_get_tag__" |
135 ) | 167 ) |
136 { | 168 { |
137 octave_value retval; | 169 octave_value retval; |
170 #ifdef HAVE_PORTAUDIO | |
138 int nargin = args.length (); | 171 int nargin = args.length (); |
139 if (nargin == 1) | 172 if (nargin == 1) |
140 { | 173 { |
141 audiorecorder* recorder = 0; | 174 audiorecorder* recorder = 0; |
142 const octave_base_value& rep = args (0).get_rep (); | 175 const octave_base_value& rep = args (0).get_rep (); |
143 recorder = &((audiorecorder &)rep); | 176 recorder = &((audiorecorder &)rep); |
144 retval = octave_value (recorder->get_tag ()); | 177 retval = octave_value (recorder->get_tag ()); |
145 } | 178 } |
179 #else | |
180 error ("portaudio not found on your system and thus audio functionality is not present"); | |
181 #endif | |
146 return retval; | 182 return retval; |
147 } | 183 } |
148 | 184 |
149 DEFUN_DLD(__recorder_get_total_samples__, args, , | 185 DEFUN_DLD(__recorder_get_total_samples__, args, , |
150 "__recorder_get_total_samples__" | 186 "__recorder_get_total_samples__" |
151 ) | 187 ) |
152 { | 188 { |
153 octave_value retval; | 189 octave_value retval; |
190 #ifdef HAVE_PORTAUDIO | |
154 int nargin = args.length (); | 191 int nargin = args.length (); |
155 if (nargin == 1) | 192 if (nargin == 1) |
156 { | 193 { |
157 audiorecorder* recorder = 0; | 194 audiorecorder* recorder = 0; |
158 const octave_base_value& rep = args (0).get_rep (); | 195 const octave_base_value& rep = args (0).get_rep (); |
159 recorder = &((audiorecorder &)rep); | 196 recorder = &((audiorecorder &)rep); |
160 retval = octave_value(recorder->get_total_samples()); | 197 retval = octave_value(recorder->get_total_samples()); |
161 } | 198 } |
199 #else | |
200 error ("portaudio not found on your system and thus audio functionality is not present"); | |
201 #endif | |
162 return retval; | 202 return retval; |
163 } | 203 } |
164 | 204 |
165 DEFUN_DLD(__recorder_get_userdata__, args, , | 205 DEFUN_DLD(__recorder_get_userdata__, args, , |
166 "__recorder_get_userdata__" | 206 "__recorder_get_userdata__" |
167 ) | 207 ) |
168 { | 208 { |
169 octave_value retval; | 209 octave_value retval; |
210 #ifdef HAVE_PORTAUDIO | |
170 int nargin = args.length (); | 211 int nargin = args.length (); |
171 if (nargin == 1) | 212 if (nargin == 1) |
172 { | 213 { |
173 audiorecorder* recorder = 0; | 214 audiorecorder* recorder = 0; |
174 const octave_base_value& rep = args (0).get_rep (); | 215 const octave_base_value& rep = args (0).get_rep (); |
175 recorder = &((audiorecorder &)rep); | 216 recorder = &((audiorecorder &)rep); |
176 retval = recorder->get_userdata (); | 217 retval = recorder->get_userdata (); |
177 } | 218 } |
219 #else | |
220 error ("portaudio not found on your system and thus audio functionality is not present"); | |
221 #endif | |
178 return retval; | 222 return retval; |
179 } | 223 } |
180 | 224 |
181 DEFUN_DLD(__recorder_isrecording__, args, , | 225 DEFUN_DLD(__recorder_isrecording__, args, , |
182 "__recorder_isrecording__" | 226 "__recorder_isrecording__" |
183 ) | 227 ) |
184 { | 228 { |
185 octave_value retval; | 229 octave_value retval; |
230 #ifdef HAVE_PORTAUDIO | |
186 int nargin = args.length (); | 231 int nargin = args.length (); |
187 if (nargin == 1) | 232 if (nargin == 1) |
188 { | 233 { |
189 audiorecorder* recorder = 0; | 234 audiorecorder* recorder = 0; |
190 const octave_base_value& rep = args (0).get_rep (); | 235 const octave_base_value& rep = args (0).get_rep (); |
196 else | 241 else |
197 { | 242 { |
198 return octave_value(0); | 243 return octave_value(0); |
199 } | 244 } |
200 } | 245 } |
246 #else | |
247 error ("portaudio not found on your system and thus audio functionality is not present"); | |
248 #endif | |
201 return retval; | 249 return retval; |
202 } | 250 } |
203 | 251 |
204 DEFUN_DLD(__recorder_pause__, args, , | 252 DEFUN_DLD(__recorder_pause__, args, , |
205 "__recorder_pause__" | 253 "__recorder_pause__" |
206 ) | 254 ) |
207 { | 255 { |
208 octave_value retval; | 256 octave_value retval; |
257 #ifdef HAVE_PORTAUDIO | |
209 int nargin = args.length (); | 258 int nargin = args.length (); |
210 if (nargin == 1) | 259 if (nargin == 1) |
211 { | 260 { |
212 audiorecorder* recorder = 0; | 261 audiorecorder* recorder = 0; |
213 const octave_base_value& rep = args (0).get_rep (); | 262 const octave_base_value& rep = args (0).get_rep (); |
214 recorder = &((audiorecorder &)rep); | 263 recorder = &((audiorecorder &)rep); |
215 recorder->pause(); | 264 recorder->pause(); |
216 } | 265 } |
266 #else | |
267 error ("portaudio not found on your system and thus audio functionality is not present"); | |
268 #endif | |
217 return retval; | 269 return retval; |
218 } | 270 } |
219 | 271 |
220 DEFUN_DLD(__recorder_recordblocking__, args, , | 272 DEFUN_DLD(__recorder_recordblocking__, args, , |
221 "__recorder_recordblocking__" | 273 "__recorder_recordblocking__" |
222 ) | 274 ) |
223 { | 275 { |
224 octave_value retval; | 276 octave_value retval; |
277 #ifdef HAVE_PORTAUDIO | |
225 audiorecorder* recorder = 0; | 278 audiorecorder* recorder = 0; |
226 const octave_base_value& rep = args (0).get_rep (); | 279 const octave_base_value& rep = args (0).get_rep (); |
227 recorder = &((audiorecorder &)rep); | 280 recorder = &((audiorecorder &)rep); |
228 recorder->recordblocking (args (1).float_value ()); | 281 recorder->recordblocking (args (1).float_value ()); |
282 #else | |
283 error ("portaudio not found on your system and thus audio functionality is not present"); | |
284 #endif | |
229 return retval; | 285 return retval; |
230 } | 286 } |
231 | 287 |
232 DEFUN_DLD(__recorder_record__, args, , | 288 DEFUN_DLD(__recorder_record__, args, , |
233 "__recorder_record__" | 289 "__recorder_record__" |
234 ) | 290 ) |
235 { | 291 { |
236 octave_value retval; | 292 octave_value retval; |
293 #ifdef HAVE_PORTAUDIO | |
237 audiorecorder* recorder = 0; | 294 audiorecorder* recorder = 0; |
238 const octave_base_value& rep = args (0).get_rep (); | 295 const octave_base_value& rep = args (0).get_rep (); |
239 recorder = &((audiorecorder &)rep); | 296 recorder = &((audiorecorder &)rep); |
240 if (args.length () == 1) | 297 if (args.length () == 1) |
241 { | 298 { |
248 } | 305 } |
249 else | 306 else |
250 { | 307 { |
251 error ("audiorecorder: wrong number of arguments passed to record"); | 308 error ("audiorecorder: wrong number of arguments passed to record"); |
252 } | 309 } |
310 #else | |
311 error ("portaudio not found on your system and thus audio functionality is not present"); | |
312 #endif | |
253 return retval; | 313 return retval; |
254 } | 314 } |
255 | 315 |
256 DEFUN_DLD(__recorder_resume__, args, , | 316 DEFUN_DLD(__recorder_resume__, args, , |
257 "__recorder_resume__" | 317 "__recorder_resume__" |
258 ) | 318 ) |
259 { | 319 { |
260 octave_value retval; | 320 octave_value retval; |
321 #ifdef HAVE_PORTAUDIO | |
261 int nargin = args.length (); | 322 int nargin = args.length (); |
262 if (nargin == 1) | 323 if (nargin == 1) |
263 { | 324 { |
264 audiorecorder* recorder = 0; | 325 audiorecorder* recorder = 0; |
265 const octave_base_value& rep = args (0).get_rep (); | 326 const octave_base_value& rep = args (0).get_rep (); |
266 recorder = &((audiorecorder &)rep); | 327 recorder = &((audiorecorder &)rep); |
267 recorder->resume(); | 328 recorder->resume(); |
268 } | 329 } |
330 #else | |
331 error ("portaudio not found on your system and thus audio functionality is not present"); | |
332 #endif | |
269 return retval; | 333 return retval; |
270 } | 334 } |
271 | 335 |
272 DEFUN_DLD(__recorder_set_fs__, args, , | 336 DEFUN_DLD(__recorder_set_fs__, args, , |
273 "__recorder_set_fs__" | 337 "__recorder_set_fs__" |
274 ) | 338 ) |
275 { | 339 { |
276 octave_value retval; | 340 octave_value retval; |
341 #ifdef HAVE_PORTAUDIO | |
277 int nargin = args.length (); | 342 int nargin = args.length (); |
278 if (nargin == 2) | 343 if (nargin == 2) |
279 { | 344 { |
280 audiorecorder* recorder = 0; | 345 audiorecorder* recorder = 0; |
281 const octave_base_value& rep = args (0).get_rep (); | 346 const octave_base_value& rep = args (0).get_rep (); |
282 recorder = &((audiorecorder &)rep); | 347 recorder = &((audiorecorder &)rep); |
283 recorder->set_fs (args (1).int_value()); | 348 recorder->set_fs (args (1).int_value()); |
284 } | 349 } |
350 #else | |
351 error ("portaudio not found on your system and thus audio functionality is not present"); | |
352 #endif | |
285 return retval; | 353 return retval; |
286 } | 354 } |
287 | 355 |
288 DEFUN_DLD(__recorder_set_tag__, args, , | 356 DEFUN_DLD(__recorder_set_tag__, args, , |
289 "__recorder_set_tag__" | 357 "__recorder_set_tag__" |
290 ) | 358 ) |
291 { | 359 { |
292 octave_value retval; | 360 octave_value retval; |
361 #ifdef HAVE_PORTAUDIO | |
293 int nargin = args.length (); | 362 int nargin = args.length (); |
294 if (nargin == 2) | 363 if (nargin == 2) |
295 { | 364 { |
296 audiorecorder* recorder = 0; | 365 audiorecorder* recorder = 0; |
297 const octave_base_value& rep = args (0).get_rep (); | 366 const octave_base_value& rep = args (0).get_rep (); |
298 recorder = &((audiorecorder &)rep); | 367 recorder = &((audiorecorder &)rep); |
299 recorder->set_tag (args(1).char_matrix_value ()); | 368 recorder->set_tag (args(1).char_matrix_value ()); |
300 } | 369 } |
370 #else | |
371 error ("portaudio not found on your system and thus audio functionality is not present"); | |
372 #endif | |
301 return retval; | 373 return retval; |
302 } | 374 } |
303 | 375 |
304 DEFUN_DLD(__recorder_set_userdata__, args, , | 376 DEFUN_DLD(__recorder_set_userdata__, args, , |
305 "__recorder_set_userdata__" | 377 "__recorder_set_userdata__" |
306 ) | 378 ) |
307 { | 379 { |
308 octave_value retval; | 380 octave_value retval; |
381 #ifdef HAVE_PORTAUDIO | |
309 int nargin = args.length (); | 382 int nargin = args.length (); |
310 if (nargin == 2) | 383 if (nargin == 2) |
311 { | 384 { |
312 audiorecorder* recorder = 0; | 385 audiorecorder* recorder = 0; |
313 const octave_base_value& rep = args (0).get_rep (); | 386 const octave_base_value& rep = args (0).get_rep (); |
314 recorder = &((audiorecorder &)rep); | 387 recorder = &((audiorecorder &)rep); |
315 recorder->set_userdata (args(1)); | 388 recorder->set_userdata (args(1)); |
316 } | 389 } |
390 #else | |
391 error ("portaudio not found on your system and thus audio functionality is not present"); | |
392 #endif | |
317 return retval; | 393 return retval; |
318 } | 394 } |
319 | 395 |
320 DEFUN_DLD(__recorder_stop__, args, , | 396 DEFUN_DLD(__recorder_stop__, args, , |
321 "__recorder_stop__" | 397 "__recorder_stop__" |
322 ) | 398 ) |
323 { | 399 { |
324 octave_value retval; | 400 octave_value retval; |
401 #ifdef HAVE_PORTAUDIO | |
325 audiorecorder* recorder = 0; | 402 audiorecorder* recorder = 0; |
326 const octave_base_value& rep = args (0).get_rep (); | 403 const octave_base_value& rep = args (0).get_rep (); |
327 recorder = &((audiorecorder &)rep); | 404 recorder = &((audiorecorder &)rep); |
328 recorder->stop(); | 405 recorder->stop(); |
329 return retval; | 406 #else |
330 } | 407 error ("portaudio not found on your system and thus audio functionality is not present"); |
408 #endif | |
409 return retval; | |
410 } |