diff --git a/src/carrays_uint16_t.i b/src/carrays_uint16_t.i index a5549ad0..662abece 100644 --- a/src/carrays_uint16_t.i +++ b/src/carrays_uint16_t.i @@ -6,3 +6,30 @@ %include "stdint.i" %include "carrays.i" %array_class(uint16_t, uint16Array); + +// Adding these typemaps because SWIG is converting uint8, uint16, and uint32 into a short by default +// This forces SWIG to convert it correctly + +#if (SWIG_JAVASCRIPT_V8) +%typemap(in) uint16_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint16"); + } + $1 = (uint16_t *)(argp); +} +#endif + +#if (SWIGPYTHON) +%typemap(in) uint16_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint16"); + } + $1 = reinterpret_cast< uint16_t * >(argp); +} +#endif + +//#elsif (SWIGJAVA) diff --git a/src/carrays_uint32_t.i b/src/carrays_uint32_t.i index 21367b4a..0f95fa12 100644 --- a/src/carrays_uint32_t.i +++ b/src/carrays_uint32_t.i @@ -6,3 +6,51 @@ %include "stdint.i" %include "carrays.i" %array_class(uint32_t, uint32Array); + +// Adding these typemaps because SWIG is converting uint8, uint16, and uint32 into a short by default +// This forces SWIG to convert it correctly + +#if (SWIG_JAVASCRIPT_V8) +%typemap(in) uint32_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint32Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint32 *"); + } + $1 = (uint32_t *)(argp); +} + +/*$input (non-pointer) is a v8::object, which inherits from v8::value */ +%typemap(in) uint32_t { + int ecode2 = 0 ; + if (($input)->IsInt32()) + $1 = ($input)->Uint32Value(); + else + SWIG_exception_fail(SWIG_ArgError(ecode2), "failed to convert uint32"); +} +#endif + +#if (SWIGPYTHON) +%typemap(in) uint32_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint32Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint32 *"); + } + $1 = reinterpret_cast< uint32_t * >(argp); +} + +/*$input (non-pointer) */ +%typemap(in) uint32_t { + long v; + int res = SWIG_AsVal_long ($input, &v); + if (SWIG_IsOK(res)) { + $1 = PyInt_AsLong($input); + } + else { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert uint32"); + } +} +#endif + +//#elsif (SWIGJAVA) diff --git a/src/carrays_uint8_t.i b/src/carrays_uint8_t.i index 1d467ffd..cef9a77b 100644 --- a/src/carrays_uint8_t.i +++ b/src/carrays_uint8_t.i @@ -6,3 +6,30 @@ %include "stdint.i" %include "carrays.i" %array_class(uint8_t, uint8Array); + +// Adding these typemaps because SWIG is converting uint8, uint16, and uint32 into a short by default +// This forces SWIG to convert it correctly + +#if (SWIG_JAVASCRIPT_V8) +%typemap(in) uint8_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint8"); + } + $1 = (uint8_t *)(argp); +} +#endif + +#if (SWIGPYTHON) +%typemap(in) uint8_t * { + void *argp = 0 ; + int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); + if (!SWIG_IsOK(res)) { + SWIG_exception_fail(SWIG_ArgError(res), "failed to convert input to uint8"); + } + $1 = reinterpret_cast< uint8_t * >(argp); +} +#endif + +//#elsif (SWIGJAVA) diff --git a/src/gas/jsupm_gas.i b/src/gas/jsupm_gas.i index 86540496..25a50971 100644 --- a/src/gas/jsupm_gas.i +++ b/src/gas/jsupm_gas.i @@ -2,12 +2,6 @@ %include "../upm.i" %include "../carrays_uint16_t.i" -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = (uint16_t *)(argp); -} - %include "gas.h" %{ #include "gas.h" diff --git a/src/gas/pyupm_gas.i b/src/gas/pyupm_gas.i index f06b21d9..1af489d7 100644 --- a/src/gas/pyupm_gas.i +++ b/src/gas/pyupm_gas.i @@ -4,12 +4,6 @@ %include "../upm.i" %include "../carrays_uint16_t.i" -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = reinterpret_cast< uint16_t * >(argp); -} - %feature("autodoc", "3"); %include "gas.h" diff --git a/src/hmtrp/jsupm_hmtrp.i b/src/hmtrp/jsupm_hmtrp.i index ff176b88..28536770 100644 --- a/src/hmtrp/jsupm_hmtrp.i +++ b/src/hmtrp/jsupm_hmtrp.i @@ -4,26 +4,6 @@ %include "../carrays_uint16_t.i" %include "../carrays_uint32_t.i" -// Adding this typemap because SWIG is converting uint8, uint16, and uint32 into a short by default -// This forces SWIG to convert it correctly -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = (uint8_t *)(argp); -} - -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = (uint16_t *)(argp); -} - -%typemap(in) uint32_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint32Array, 0 | 0 ); - $1 = (uint32_t *)(argp); -} - %{ #include "hmtrp.h" speed_t int_B9600 = B9600; diff --git a/src/hmtrp/pyupm_hmtrp.i b/src/hmtrp/pyupm_hmtrp.i index a88cc3d1..656fc9a5 100644 --- a/src/hmtrp/pyupm_hmtrp.i +++ b/src/hmtrp/pyupm_hmtrp.i @@ -6,26 +6,6 @@ %include "../carrays_uint16_t.i" %include "../carrays_uint32_t.i" -// Adding this typemap because SWIG is converting uint8, uint16, and uint32 into a short by default -// This forces SWIG to convert it correctly -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = reinterpret_cast< uint8_t * >(argp); -} - -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = reinterpret_cast< uint16_t * >(argp); -} - -%typemap(in) uint32_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint32Array, 0 | 0 ); - $1 = reinterpret_cast< uint32_t * >(argp); -} - %feature("autodoc", "3"); %include "hmtrp.h" diff --git a/src/lcd/jsupm_i2clcd.i b/src/lcd/jsupm_i2clcd.i index 9b53d23b..fe106b70 100755 --- a/src/lcd/jsupm_i2clcd.i +++ b/src/lcd/jsupm_i2clcd.i @@ -2,12 +2,6 @@ %include "../upm.i" %include "../carrays_uint8_t.i" -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = (uint8_t *)(argp); -} - %include "ssd.h" %include "lcd.h" %{ diff --git a/src/lcd/pyupm_i2clcd.i b/src/lcd/pyupm_i2clcd.i index c5209e38..04cab461 100755 --- a/src/lcd/pyupm_i2clcd.i +++ b/src/lcd/pyupm_i2clcd.i @@ -4,13 +4,6 @@ %include "../upm.i" %include "../carrays_uint8_t.i" -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = reinterpret_cast< uint8_t * >(argp); -} - - %feature("autodoc", "3"); %include "ssd.h" diff --git a/src/mic/jsupm_mic.i b/src/mic/jsupm_mic.i index 6036ee52..c6fcad3d 100644 --- a/src/mic/jsupm_mic.i +++ b/src/mic/jsupm_mic.i @@ -2,12 +2,6 @@ %include "../upm.i" %include "../carrays_uint16_t.i" -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = (uint16_t *)(argp); -} - %{ #include "mic.h" %} diff --git a/src/mic/pyupm_mic.i b/src/mic/pyupm_mic.i index b162e761..4cf7ff91 100644 --- a/src/mic/pyupm_mic.i +++ b/src/mic/pyupm_mic.i @@ -4,12 +4,6 @@ %include "../upm.i" %include "../carrays_uint16_t.i" -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = reinterpret_cast< uint16_t * >(argp); -} - %{ #include "mic.h" %} diff --git a/src/pn532/jsupm_pn532.i b/src/pn532/jsupm_pn532.i index c0b1eb4b..9fab1725 100644 --- a/src/pn532/jsupm_pn532.i +++ b/src/pn532/jsupm_pn532.i @@ -2,14 +2,6 @@ %include "../upm.i" %include "../carrays_uint8_t.i" -// Adding this typemap because SWIG is converting uint8 into a short by default -// This forces SWIG to convert it correctly -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = (uint8_t *)(argp); -} - %{ #include "pn532.h" %} diff --git a/src/pn532/pyupm_pn532.i b/src/pn532/pyupm_pn532.i index fdd62da3..64bfad3b 100644 --- a/src/pn532/pyupm_pn532.i +++ b/src/pn532/pyupm_pn532.i @@ -4,14 +4,6 @@ %include "../upm.i" %include "../carrays_uint8_t.i" -// Adding this typemap because SWIG is converting uint8, uint16, and uint32 into a short by default -// This forces SWIG to convert it correctly -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = reinterpret_cast< uint8_t * >(argp); -} - %feature("autodoc", "3"); #ifdef DOXYGEN diff --git a/src/tm1637/jsupm_tm1637.i b/src/tm1637/jsupm_tm1637.i index 91c9243c..57992e06 100644 --- a/src/tm1637/jsupm_tm1637.i +++ b/src/tm1637/jsupm_tm1637.i @@ -7,12 +7,6 @@ %rename("writeArray") write(uint8_t *digits); %rename("writeString") write(std::string digits); -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_uint8Array, 0 | 0); - $1 = (uint8_t *)(argp); -} - %{ #include "tm1637.h" %} diff --git a/src/tm1637/pyupm_tm1637.i b/src/tm1637/pyupm_tm1637.i index 83c21bb8..fe347eb4 100644 --- a/src/tm1637/pyupm_tm1637.i +++ b/src/tm1637/pyupm_tm1637.i @@ -6,12 +6,6 @@ %varargs(4, int digit = 0) write; -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = reinterpret_cast< uint8_t * >(argp); -} - %{ #include "tm1637.h" %} diff --git a/src/wt5001/jsupm_wt5001.i b/src/wt5001/jsupm_wt5001.i index ff60c1b5..c53fc575 100644 --- a/src/wt5001/jsupm_wt5001.i +++ b/src/wt5001/jsupm_wt5001.i @@ -3,19 +3,6 @@ %include "../carrays_uint8_t.i" %include "../carrays_uint16_t.i" -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = (uint8_t *)(argp); -} - -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = (uint16_t *)(argp); -} - - %{ #include "wt5001.h" speed_t int_B9600 = B9600; diff --git a/src/wt5001/pyupm_wt5001.i b/src/wt5001/pyupm_wt5001.i index 8a9b7b88..5193baf8 100644 --- a/src/wt5001/pyupm_wt5001.i +++ b/src/wt5001/pyupm_wt5001.i @@ -5,18 +5,6 @@ %include "../carrays_uint8_t.i" %include "../carrays_uint16_t.i" -%typemap(in) uint8_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint8Array, 0 | 0 ); - $1 = reinterpret_cast< uint8_t * >(argp); -} - -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = reinterpret_cast< uint16_t * >(argp); -} - %feature("autodoc", "3"); %{ diff --git a/src/zfm20/jsupm_zfm20.i b/src/zfm20/jsupm_zfm20.i index 089e2882..55b07b15 100644 --- a/src/zfm20/jsupm_zfm20.i +++ b/src/zfm20/jsupm_zfm20.i @@ -4,17 +4,6 @@ %include "../carrays_uint32_t.i" %include "cpointer.i" -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = (uint16_t *)(argp); -} - -/*$input is a v8::object, which inherits from v8::value */ -%typemap(in) uint32_t { - $1 = ($input)->Uint32Value(); -} - /* Send "int *" to JavaScript as intp */ %pointer_functions(int, intp); %{ diff --git a/src/zfm20/pyupm_zfm20.i b/src/zfm20/pyupm_zfm20.i index 837d20e0..d1cac936 100644 --- a/src/zfm20/pyupm_zfm20.i +++ b/src/zfm20/pyupm_zfm20.i @@ -8,16 +8,6 @@ %feature("autodoc", "3"); -%typemap(in) uint16_t * { - void *argp = 0 ; - int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 | 0 ); - $1 = reinterpret_cast< uint16_t * >(argp); -} - -%typemap(in) uint32_t { - $1 = PyInt_AsLong($input); -} - /* Send "int *" to python as intp */ %pointer_functions(int, intp); %{