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 }