Add sampl_t and lsampl_t array_class()es to comedi.i.

This makes it easier (possible?) to setup comedi_insn_struct and
comedi_cmd_struct instances.

Patch from W. Trevor King.
This commit is contained in:
Ian Abbott 2010-12-20 14:50:21 +00:00
parent 8800748314
commit 3fe8e6baac

View file

@ -55,8 +55,6 @@ static unsigned int cr_aref(unsigned int a){
}
%}
%array_class(unsigned int, chanlist);
#ifdef SWIGRUBY
%typemap(argout) comedi_cmd *INOUT(VALUE info) {
$result = output_helper($result, $arg);
@ -66,3 +64,19 @@ static unsigned int cr_aref(unsigned int a){
%include "comedi.h"
%include "comedilib.h"
/* These typedefs work around limitations in SWIG's array_class().
* Without them, you get errors like:
* >>> import comedi
* >>> cmd = comedi.comedi_cmd_struct()
* >>> data = comedi.sampl_array(3)
* >>> cmd.data = data
* Traceback (most recent call last):
* ...
* TypeError: in method 'comedi_cmd_struct_data_set', argument 2 of type 'sampl_t *'
*/
typedef unsigned short sampl_array;
typedef unsigned int lsampl_array;
%array_class(unsigned int, chanlist);
%array_class(sampl_t, sampl_array);
%array_class(lsampl_t, lsampl_array);