Factorize code + add Scilab typedefs

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-sploving@12312 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Vincent Couvert 2010-11-26 16:44:24 +00:00
commit fe0f1a5331
2 changed files with 202 additions and 408 deletions

View file

@ -4,8 +4,20 @@
#ifdef __cplusplus
extern "C" {
#endif
void SWIG_Error(int code, const char *msg) {
Scierror(code, _("%s\n"), msg);
#include "MALLOC.h"
/* Typedefs for integers mapping */
typedef short SCI_INT16_FROM_SHORT;
typedef signed short SCI_INT16_FROM_SIGNED_SHORT;
typedef int SCI_INT32_FROM_INT;
typedef long SCI_INT32_FROM_LONG;
typedef signed int SCI_INT32_FROM_SIGNED_INT;
typedef signed long SCI_INT32_FROM_SIGNED_LONG;
void SWIG_Error(int code, const char *msg)
{
Scierror(code, _("%s\n"), msg);
}
#ifdef __cplusplus
}

View file

@ -987,156 +987,71 @@
* --- Output arguments ---
* ----------------------------------------------------------------------------- */
%define SCILAB_OUT_SCALAR(CTYPE, SCIAPIFUNCTION)
iRowsOut = 1;
iColsOut = 1;
sciErr = SCIAPIFUNCTION(pvApiCtx, iVarOut, iRowsOut, iColsOut, (CTYPE *)&$result);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
%enddef
%define SCILAB_OUT_SCALAR_WITHCAST(CASTTYPE, SCIAPIFUNCTION)
CASTTYPE temp = (CASTTYPE) $result;
iRowsOut = 1;
iColsOut = 1;
sciErr = SCIAPIFUNCTION(pvApiCtx, iVarOut, iRowsOut, iColsOut, &temp);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
%enddef
/* Basic C types */
%typemap(out) signed char (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfInteger8(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) unsigned char (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfUnsignedInteger8(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned char *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) short (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfInteger16(pvApiCtx, iVarOut, iRowsOut, iColsOut, (short *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) unsigned short (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfUnsignedInteger16(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned short *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) int (int iRowsOut, int iColsOut),
long (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfInteger32(pvApiCtx, iVarOut, iRowsOut, iColsOut, (int *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) unsigned int (int iRowsOut, int iColsOut),
unsigned long (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfUnsignedInteger32(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned int *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) double (int iRowsOut, int iColsOut),
float (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfDouble(pvApiCtx, iVarOut, iRowsOut, iColsOut, (double *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) long long (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfInteger64(pvApiCtx, iVarOut, iRowsOut, iColsOut, (long long *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out) unsigned long long (int iRowsOut, int iColsOut) {
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfUnsignedInteger64(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned long long *)&$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
/* 'signed char' casted to 'char' because C++ refuses to call createMatrixOfInteger8 with a 'signed char' 5th input */
%typemap(out) signed char (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(char, createMatrixOfInteger8) }
%typemap(out) unsigned char (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(unsigned char, createMatrixOfUnsignedInteger8) }
%typemap(out) short (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(double, createMatrixOfDouble) }
%typemap(out) unsigned short (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(unsigned short, createMatrixOfUnsignedInteger16) }
%typemap(out) int (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(double, createMatrixOfDouble) }
%typemap(out) long (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(double, createMatrixOfDouble) }
%typemap(out) unsigned int (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(unsigned int, createMatrixOfUnsignedInteger32) }
%typemap(out) unsigned long (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(unsigned int, createMatrixOfUnsignedInteger32) }
%typemap(out) double (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(double, createMatrixOfDouble) }
%typemap(out) float (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(double, createMatrixOfDouble) }
%typemap(out) long long (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(long long, createMatrixOfInteger64) }
%typemap(out) unsigned long long (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(unsigned long long, createMatrixOfUnsignedInteger64) }
%typemap(out) SCI_INT16_FROM_SHORT (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(short, createMatrixOfInteger16) }
%typemap(out) SCI_INT16_FROM_SIGNED_SHORT (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(short, createMatrixOfInteger16) }
%typemap(out) SCI_INT32_FROM_INT (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR(int, createMatrixOfInteger32) }
%typemap(out) SCI_INT32_FROM_SIGNED_INT (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(int, createMatrixOfInteger32) }
%typemap(out) SCI_INT32_FROM_LONG (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(int, createMatrixOfInteger32) }
%typemap(out) SCI_INT32_FROM_SIGNED_LONG (int iRowsOut, int iColsOut) { SCILAB_OUT_SCALAR_WITHCAST(int, createMatrixOfInteger32) }
%typemap(out) char (int iRowsOut, int iColsOut) {
char *temp;
temp = (char*)&($result);
iRowsOut = 1;
iColsOut = 1;
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
iRowsOut = 1;
iColsOut = 1;
char *temp = (char*)MALLOC(sizeof(char) * (iRowsOut * iColsOut + 1));
temp[0] = $result;
temp[1] = '\0';
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
FREE(temp);
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(out,noblock=1) void {
@ -2028,155 +1943,58 @@
/* -----------------------------------------------------------------------------
* --- Variable output ---
* ----------------------------------------------------------------------------- */
%define SCILAB_SCALAR_VAROUT(CTYPE, SCIAPIFUNCTION)
##CTYPE## temp = $result;
sciErr = ##SCIAPIFUNCTION##(pvApiCtx, iVarOut, iRowsOut, iColsOut, (##CTYPE## *)&temp);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
%enddef
/* Basic C types */
%typemap(varout,noblock=1) signed char {
char temp = $result;
sciErr = createMatrixOfInteger8(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) unsigned char {
unsigned char temp = $result;
sciErr = createMatrixOfUnsignedInteger8(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned char *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) short {
short temp = $result;
sciErr = createMatrixOfInteger16(pvApiCtx, iVarOut, iRowsOut, iColsOut, (short *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) unsigned short {
unsigned short temp = $result;
sciErr = createMatrixOfUnsignedInteger16(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned short *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) int,
long {
int temp = $result;
sciErr = createMatrixOfInteger32(pvApiCtx, iVarOut, iRowsOut, iColsOut, (int *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) unsigned int,
unsigned long {
unsigned int temp = $result;
sciErr = createMatrixOfUnsignedInteger32(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned int *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) double,
float {
double temp = $result;
sciErr = createMatrixOfDouble(pvApiCtx, iVarOut, iRowsOut, iColsOut, (double *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) long long {
long long temp = $result;
sciErr = createMatrixOfInteger64(pvApiCtx, iVarOut, iRowsOut, iColsOut, (long long *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) unsigned long long {
unsigned long long temp = $result;
sciErr = createMatrixOfUnsignedInteger64(pvApiCtx, iVarOut, iRowsOut, iColsOut, (unsigned long long *)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) signed char { SCILAB_SCALAR_VAROUT(signed char, createMatrixOfInteger8) }
%typemap(varout,noblock=1) unsigned char { SCILAB_SCALAR_VAROUT(unsigned char, createMatrixOfUnsignedInteger8) }
%typemap(varout,noblock=1) signed short { SCILAB_SCALAR_VAROUT(signed short, createMatrixOfInteger16) }
%typemap(varout,noblock=1) unsigned short { SCILAB_SCALAR_VAROUT(unsigned short, createMatrixOfUnsignedInteger16) }
%typemap(varout,noblock=1) signed int, signed long { SCILAB_SCALAR_VAROUT(signed int, createMatrixOfInteger32) }
%typemap(varout,noblock=1) unsigned int, unsigned long { SCILAB_SCALAR_VAROUT(unsigned int, createMatrixOfUnsignedInteger32) }
%typemap(varout,noblock=1) signed long long { SCILAB_SCALAR_VAROUT(signed long long, createMatrixOfInteger64) }
%typemap(varout,noblock=1) unsigned long long { SCILAB_SCALAR_VAROUT(unsigned long long, createMatrixOfUnsignedInteger64) }
%typemap(varout,noblock=1) double, float { SCILAB_SCALAR_VAROUT(double, createMatrixOfDouble) }
%typemap(varout,noblock=1) char {
char *temp = (char *)malloc(sizeof($result) + 1);
*temp = $result;
*(temp+1) = '\0';
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
free(temp);
char *temp = (char *)malloc(sizeof($result) + 1);
*temp = $result;
*(temp+1) = '\0';
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
free(temp);
}
%typemap(varout,noblock=1) char * {
char *temp = $result;
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
char *temp = $result;
sciErr = createMatrixOfString(pvApiCtx, iVarOut, iRowsOut, iColsOut, (char **)&temp);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
/* pointer to basic C types */
@ -2184,26 +2002,38 @@
short *,
unsigned char *,
unsigned short *,
int *,
unsigned int *,
long *,
unsigned long *,
int *,
unsigned int *,
long *,
unsigned long *,
double *,
float *,
long long *,
unsigned long long * {
sciErr = createPointer(pvApiCtx, iVarOut, (void *)$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
sciErr = createPointer(pvApiCtx, iVarOut, (void *)$result);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
/* Arrays */
%define SCILAB_VECTOR_VAROUT(CTYPE, SCIAPIFUNCTION, IROWSOUT, ICOLSOUT)
sciErr = ##SCIAPIFUNCTION##(pvApiCtx, iVarOut, ##IROWSOUT##, ##ICOLSOUT##, (##CTYPE## *)$result);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
%enddef
%typemap(varout,noblock=1) char [ANY] {
char **pstData = NULL;
pstData = (char **)malloc(sizeof(char *));
@ -2216,21 +2046,9 @@
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) signed char [ANY] {
sciErr = createMatrixOfInteger8(pvApiCtx, iVarOut, 1, $1_dim0, (char *)$result);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
}
%typemap(varout,noblock=1) signed char [ANY] { SCILAB_VECTOR_VAROUT(char, createMatrixOfInteger8, 1, $1_dim0) }
%typemap(varout,noblock=1) unsigned char [ANY] {
sciErr = createMatrixOfUnsignedInteger8(pvApiCtx, iVarOut, 1, $1_dim0, (unsigned char *)$result);
@ -2300,6 +2118,7 @@
printError(&sciErr, 0);
return 0;
}
//coucou
LhsVar(iOutNum) = iVarOut;
iOutNum++;
iVarOut++;
@ -2520,9 +2339,9 @@
}
/* ------------------------------------------------------------
* --- Typecheck typemaps ---
* ------------------------------------------------------------ */
/* -----------------------------------------------------------------------------*/
/* Typecheck typemaps */
/* -----------------------------------------------------------------------------*/
%define SCILAB_TYPECHECK(SCITYPE)
int *piAddrVar = NULL;
@ -2557,102 +2376,65 @@
}
%enddef
/* -----------------------------------------------------------------------------*/
/* Basic C types */
%typecheck(SWIG_TYPECHECK_CHAR) char {
SCILAB_TYPECHECK(sci_strings)
}
/* -----------------------------------------------------------------------------*/
%typecheck(SWIG_TYPECHECK_CHAR) char { SCILAB_TYPECHECK(sci_strings) }
%typecheck(SWIG_TYPECHECK_INT8) signed char {
//SCILAB_INTEGERTYPECHECK(SCI_INT8)
SCILAB_TYPECHECK(sci_matrix)
}
/* * TODO: add an option to select default integers mapping? */
/* C-integers mapped to Scilab sci_matrix (TODO: add int64 & uint64 for Scilab 6) */
%typecheck(SWIG_TYPECHECK_INT8) signed char { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_UINT8) unsigned char { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_INT16) short { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_UINT16) unsigned short { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_INT32) int, long { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_UINT32) unsigned int, unsigned long { SCILAB_TYPECHECK(sci_matrix) }
/* C-integers mapped to Scilab integers (TODO: add int64 & uint64 for Scilab 6) */
/*
%typecheck(SWIG_TYPECHECK_INT8) signed char { SCILAB_INTEGERTYPECHECK(SCI_INT8) }
%typecheck(SWIG_TYPECHECK_UINT8) unsigned char { SCILAB_INTEGERTYPECHECK(SCI_UINT8) }
%typecheck(SWIG_TYPECHECK_INT16) short { SCILAB_INTEGERTYPECHECK(SCI_INT16) }
%typecheck(SWIG_TYPECHECK_UINT16) unsigned short { SCILAB_INTEGERTYPECHECK(SCI_UINT16) }
%typecheck(SWIG_TYPECHECK_INT32) int, long { SCILAB_INTEGERTYPECHECK(SCI_INT32) }
%typecheck(SWIG_TYPECHECK_UINT32) unsigned int, unsigned long { SCILAB_INTEGERTYPECHECK(SCI_UINT32) }
*/
%typecheck(SWIG_TYPECHECK_UINT8) unsigned char {
//SCILAB_INTEGERTYPECHECK(SCI_UINT8)
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_DOUBLE) double { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_FLOAT) float { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_STRING) char * { SCILAB_TYPECHECK(sci_strings) }
%typecheck(SWIG_TYPECHECK_INT16) short {
//SCILAB_INTEGERTYPECHECK(SCI_INT16)
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_UINT16) unsigned short {
//SCILAB_INTEGERTYPECHECK(SCI_UINT16)
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_INT32) int,
long {
//SCILAB_INTEGERTYPECHECK(SCI_INT32)
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_UINT32) unsigned int,
unsigned long {
//SCILAB_INTEGERTYPECHECK(SCI_UINT32)
SCILAB_TYPECHECK(sci_matrix)
}
/* TODO: add int64 & uint64 for Scilab 6 */
%typecheck(SWIG_TYPECHECK_DOUBLE) double {
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_FLOAT) float {
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_STRING) char * {
SCILAB_TYPECHECK(sci_strings)
}
%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE * { SCILAB_TYPECHECK(sci_pointer) }
/* -----------------------------------------------------------------------------*/
/* Arrays */
%typecheck(SWIG_TYPECHECK_CHAR_ARRAY) char [ANY] {
SCILAB_TYPECHECK(sci_strings)
}
/* -----------------------------------------------------------------------------*/
%typecheck(SWIG_TYPECHECK_CHAR_ARRAY) char [ANY] { SCILAB_TYPECHECK(sci_strings) }
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) signed char [ANY] {
//SCILAB_INTEGERTYPECHECK(SCI_INT8)
SCILAB_TYPECHECK(sci_matrix)
}
/* * TODO: add an option to select default integers mapping? */
/* C-integers mapped to Scilab sci_matrix (TODO: add int64 & uint64 for Scilab 6) */
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) signed char [ANY] { SCILAB_TYPECHECK(sci_matrix) }
//%typecheck(SWIG_TYPECHECK_UINT8_ARRAY) unsigned char [ANY] { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) short [ANY] { SCILAB_TYPECHECK(sci_matrix) }
//%typecheck(SWIG_TYPECHECK_UINT16_ARRAY) unsigned short [ANY] { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) int [ANY], long [ANY] { SCILAB_TYPECHECK(sci_matrix) }
//%typecheck(SWIG_TYPECHECK_UINT32_ARRAY) unsigned int [ANY], unsigned long [ANY] { SCILAB_TYPECHECK(sci_matrix) }
/* C-integers mapped to Scilab integers (TODO: add int64 & uint64 for Scilab 6) */
/*
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) signed char [ANY] { SCILAB_INTEGERTYPECHECK(SCI_INT8) }
%typecheck(SWIG_TYPECHECK_UINT8_ARRAY) unsigned char [ANY] { SCILAB_INTEGERTYPECHECK(SCI_UINT8) }
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) short [ANY] { SCILAB_INTEGERTYPECHECK(SCI_INT16) }
%typecheck(SWIG_TYPECHECK_UINT16_ARRAY) unsigned short [ANY] { SCILAB_INTEGERTYPECHECK(SCI_UINT16) }
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) int [ANY], long [ANY] { SCILAB_INTEGERTYPECHECK(SCI_INT32) }
%typecheck(SWIG_TYPECHECK_UINT32_ARRAY) unsigned int [ANY], unsigned long [ANY] { SCILAB_INTEGERTYPECHECK(SCI_INT32) }
*/
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) unsigned char [ANY],
short [ANY] {
//SCILAB_INTEGERTYPECHECK(SCI_INT16)
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) unsigned short [ANY],
int [ANY],
long [ANY] {
//SCILAB_INTEGERTYPECHECK(SCI_INT32)
SCILAB_TYPECHECK(sci_matrix)
}
/* TODO: add int64 for Scilab 6 */
%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY) double [ANY]{
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_FLOAT_ARRAY) float [ANY]{
SCILAB_TYPECHECK(sci_matrix)
}
%typecheck(SWIG_TYPECHECK_STRING_ARRAY) char ** {
SCILAB_TYPECHECK(sci_strings)
}
%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE * {
SCILAB_TYPECHECK(sci_pointer)
}
/* ------------------------------------------------------------
* size_t mapped as int
* ------------------------------------------------------------ */
%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY) double [ANY] { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_FLOAT_ARRAY) float [ANY] { SCILAB_TYPECHECK(sci_matrix) }
%typecheck(SWIG_TYPECHECK_STRING_ARRAY) char ** { SCILAB_TYPECHECK(sci_strings) }
/* -----------------------------------------------------------------------------*/
/* size_t mapped as int */
/* -----------------------------------------------------------------------------*/
%apply int { size_t };