Mercurial > octave-nkf
diff scripts/audio/@audiorecorder/set.m @ 19522:ee3ec3f02358
maint: moved @audiorecorder and @audioplayer folders inside the audio folder
author | Vytautas Jančauskas <unaudio@gmail.com> |
---|---|
date | Wed, 18 Sep 2013 00:16:28 +0300 |
parents | scripts/@audiorecorder/set.m@e1f98e402a7e |
children | 77b52b86b419 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/audio/@audiorecorder/set.m Wed Sep 18 00:16:28 2013 +0300 @@ -0,0 +1,51 @@ +## -*- texinfo -*- +## @deftypefn{Function File} set (@var{recorderObj}, @var{Name}, @var{Value}) +## Set the value of property specified by @var{Name} to a given @var{Value}. +## @deftypefnx{Function File} set (@var{recorderObj}, @var{CellOfNames}, @var{CellOfValues}) +## Given a cell array of property names and a cell array of values, set each property to a corresponding value. +## @deftypefnx{Function File} set (@var{recorderObj}, @var{StructOfProperties}) +## Given a structure where fields are property names, set the value of those properties for an audiorecorder object to corresponding values. +## @deftypefnx{Function File} @var{settableProperties} = set (@var{recorderObj}) +## Returns a structure of settable properties. +## @end deftypefn + +function settable = set (varargin) + if nargin < 1 || nargin > 3 + print_usage(); + endif + recorder = struct (varargin{1}).recorder; + if nargin == 1 + settable.SampleRate = {}; + settable.Tag = {}; + settable.UserData = {}; + elseif nargin == 2 + for [value, property] = varargin{2} + setproperty (recorder, property, value); + endfor + elseif nargin == 3 + if iscell (varargin{2}) + index = 1; + for property = varargin{2} + setproperty (recorder, char(property), varargin{3}{index}); + index = index + 1; + endfor + else + setproperty (recorder, varargin{2}, varargin{3}); + endif + else + error ('audiorecorder: wrong number of arguments to the set method'); + endif +endfunction + +function setproperty (recorder, property, value) + switch property + case 'SampleRate' + __recorder_set_fs__ (recorder, value); + case 'Tag' + __recorder_set_tag__ (recorder, value); + case 'UserData' + __recorder_set_userdata__ (recorder, value); + otherwise + error ('audiorecorder: no such property or the property specified is read-only'); + endswitch +endfunction \ No newline at end of file