Mercurial > octave-nkf
view libinterp/dldfcn/__recorder_audiorecorder__.cc @ 19514:13082628e7e8
added __recorder_audiorecorder__ file for wrapping recorder_class functionality
* __recorder_audiorecorder__.cc: contains functions for accessing
recorder_class functionality from Octave
* module-files: added lines to build __recorder_audiorecorder__.cc
author | Vytautas Jančauskas <unaudio@gmail.com> |
---|---|
date | Thu, 12 Sep 2013 19:07:04 +0300 |
parents | |
children | 11a1e8e41835 |
line wrap: on
line source
#include "oct.h" #include "ov-struct.h" #include "player_class.cc" #include "recorder_class.cc" DEFUN_DLD(__recorder_audiorecorder__, args, , "__recorder_audiorecorder__" ) { int nargin = args.length (); audiorecorder* retval = new audiorecorder (); int offset = 0; if (nargin > 0) { bool is_function = args(0).is_string () || args(0).is_function_handle () || args(0).is_inline_function (); if (is_function) { retval->octave_callback_function = args (0).function_value (); offset = 1; } } switch (nargin - offset) { case 3: retval->set_fs (args(0 + offset).int_value ()); retval->set_nbits (args(1 + offset).int_value ()); retval->set_channels (args(2 + offset).int_value ()); break; case 4: retval->set_fs (args(0 + offset).int_value ()); retval->set_nbits (args(1 + offset).int_value ()); retval->set_channels (args(2 + offset).int_value ()); retval->set_id (args(3 + offset).int_value ()); break; } retval->init(); return octave_value(retval); } DEFUN_DLD(__recorder_getaudiodata__, args, , "__recorder_getaudiodata__" ) { octave_value retval; audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value (recorder->getaudiodata ()); return retval; } DEFUN_DLD(__recorder_get_channels__, args, , "__recorder_get_channels__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_channels()); } return retval; } DEFUN_DLD(__recorder_get_fs__, args, , "__recorder_get_fs__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_fs()); } return retval; } DEFUN_DLD(__recorder_get_id__, args, , "__recorder_get_id__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_id()); } return retval; } DEFUN_DLD(__recorder_get_nbits__, args, , "__recorder_get_nbits__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_nbits ()); } return retval; } DEFUN_DLD(__recorder_get_sample_number__, args, , "__recorder_get_sample_number__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_sample_number()); } return retval; } DEFUN_DLD(__recorder_get_tag__, args, , "__recorder_get_tag__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value (recorder->get_tag ()); } return retval; } DEFUN_DLD(__recorder_get_total_samples__, args, , "__recorder_get_total_samples__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = octave_value(recorder->get_total_samples()); } return retval; } DEFUN_DLD(__recorder_get_userdata__, args, , "__recorder_get_userdata__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); retval = recorder->get_userdata (); } return retval; } DEFUN_DLD(__recorder_isrecording__, args, , "__recorder_isrecording__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); if (recorder->isrecording()) { return octave_value(1); } else { return octave_value(0); } } return retval; } DEFUN_DLD(__recorder_pause__, args, , "__recorder_pause__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->pause(); } return retval; } DEFUN_DLD(__recorder_recordblocking__, args, , "__recorder_recordblocking__" ) { octave_value retval; audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->recordblocking (args (1).float_value ()); return retval; } DEFUN_DLD(__recorder_record__, args, , "__recorder_record__" ) { octave_value retval; audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); if (args.length () == 1) { recorder->record (); } else if (args.length () == 2) { recorder->set_end_sample (args (1).int_value () * recorder->get_fs ()); recorder->record (); } else { error ("audiorecorder: wrong number of arguments passed to record"); } return retval; } DEFUN_DLD(__recorder_resume__, args, , "__recorder_resume__" ) { octave_value retval; int nargin = args.length (); if (nargin == 1) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->resume(); } return retval; } DEFUN_DLD(__recorder_set_fs__, args, , "__recorder_set_fs__" ) { octave_value retval; int nargin = args.length (); if (nargin == 2) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->set_fs (args (1).int_value()); } return retval; } DEFUN_DLD(__recorder_set_tag__, args, , "__recorder_set_tag__" ) { octave_value retval; int nargin = args.length (); if (nargin == 2) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->set_tag (args(1).char_matrix_value ()); } return retval; } DEFUN_DLD(__recorder_set_userdata__, args, , "__recorder_set_userdata__" ) { octave_value retval; int nargin = args.length (); if (nargin == 2) { audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->set_userdata (args(1)); } return retval; } DEFUN_DLD(__recorder_stop__, args, , "__recorder_stop__" ) { octave_value retval; audiorecorder* recorder = 0; const octave_base_value& rep = args (0).get_rep (); recorder = &((audiorecorder &)rep); recorder->stop(); return retval; }