/* ----------------------------------------------------------------------------- * typemaps.i * * ----------------------------------------------------------------------------- */ // INPUT typemaps %define %scilab_input_typemap(Type) %typemap(in, noblock=1, fragment=SWIG_AsVal_frag(Type)) Type *INPUT(Type temp)(int ecode), Type &INPUT(Type temp)(int ecode) { ecode = SWIG_AsVal_dec(Type)($input, &temp); if (!SWIG_IsOK(ecode)) { %argument_fail(ecode, "$type", $symname, $argnum); } $1 = &temp; } %typemap(freearg, noblock=1) Type *INPUT, Type &INPUT { } %typemap(typecheck) Type *INPUT, Type &INPUT { } %enddef // OUTPUT typemaps %define %scilab_output_typemap(Type) %typemap(argout, noblock=1, fragment=SWIG_From_frag(Type)) Type *OUTPUT, Type &OUTPUT { %set_output(SWIG_From_dec(Type)(*$1)); } %enddef // INOUT typemaps %define %scilab_inout_typemap(Type) %typemap(in) Type *INOUT = Type *INPUT; %typemap(in) Type &INOUT = Type &INPUT; %typemap(argout) Type *INOUT = Type *OUTPUT; %typemap(argout) Type &INOUT = Type &OUTPUT; %enddef %define %scilab_inout_typemaps(Type) %scilab_input_typemap(%arg(Type)) %scilab_output_typemap(%arg(Type)) %scilab_inout_typemap(%arg(Type)) %enddef %scilab_inout_typemaps(double); %scilab_inout_typemaps(signed char); %scilab_inout_typemaps(unsigned char); %scilab_inout_typemaps(short); %scilab_inout_typemaps(unsigned short); %scilab_inout_typemaps(int); %scilab_inout_typemaps(unsigned int); %scilab_inout_typemaps(long); %scilab_inout_typemaps(unsigned long); %scilab_inout_typemaps(bool); %scilab_inout_typemaps(float); //%apply_ctypes(%scilab_inout_typemaps);