%module(docstring="Python interface to libftdi1") ftdi1
%feature("autodoc","1");
+#ifdef DOXYGEN
+%include "ftdi1_doc.i"
+#endif
+
%{
#include "Python.h"
-inline PyObject* convertString( const char *v, Py_ssize_t len )
+PyObject* convertString( const char *v, Py_ssize_t len )
+{
#if PY_MAJOR_VERSION >= 3
-{ return PyBytes_FromStringAndSize(v, len); }
+ return PyBytes_FromStringAndSize(v, len);
#else
-{ return PyString_FromStringAndSize(v, len); }
+ return PyString_FromStringAndSize(v, len);
#endif
+}
%}
%include <typemaps.i>
"read_pins(context) -> (return_code, pins)"
%enddef
%feature("autodoc", ftdi_read_pins_docstring) ftdi_read_pins;
-%apply char *OUTPUT { unsigned char *pins };
+%typemap(in,numinputs=0) unsigned char *pins ($*ltype temp) %{ $1 = &temp; %}
+%typemap(argout) (unsigned char *pins) %{ $result = SWIG_Python_AppendOutput($result, convertString((char*)$1, 1)); %}
int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins);
%clear unsigned char *pins;
-%apply char *OUTPUT { unsigned char *latency };
+%typemap(in,numinputs=0) unsigned char *latency ($*ltype temp) %{ $1 = &temp; %}
+%typemap(argout) (unsigned char *latency) %{ $result = SWIG_Python_AppendOutput($result, convertString((char*)$1, 1)); %}
int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency);
%clear unsigned char *latency;
%feature("autodoc", ftdi_read_eeprom_docstring) ftdi_read_eeprom;
%define ftdi_read_chipid_docstring
-"read_pins(context) -> (return_code, chipid)"
+"ftdi_read_chipid(context) -> (return_code, chipid)"
%enddef
%feature("autodoc", ftdi_read_chipid_docstring) ftdi_read_chipid;
%apply int *OUTPUT { unsigned int *chipid };
%{
#include <ftdi_i.h>
%}
+
+%pythoncode %{
+__version__ = get_library_version().version_str
+%}