Add an insn_array array_class to comedi.i.

This makes it possible to populate `comedi_insnslist_struct` for use
with `comedi_do_insnlist`.

I also removed my earlier re-typedefs of `sampl_array` and
`lsampl_array`.  I didn't understand the reason for the underlying
`TypeError` when I added them.  The proper way to avoid that error is
to use the `.cast()` and `.frompointer()` methods.  See
`demo/python/insn.py` (coming soon) for details.
This commit is contained in:
W. Trevor King 2012-03-13 08:31:36 -04:00
parent b09e05a776
commit 1fe137aa24

View file

@ -64,19 +64,7 @@ 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);
%array_class(comedi_insn, insn_array);