157 lines
4.0 KiB
Plaintext
157 lines
4.0 KiB
Plaintext
|
|
/*
|
||
|
|
* C-type: bool
|
||
|
|
* Scilab type: boolean scalar
|
||
|
|
*/
|
||
|
|
%fragment(SWIG_AsVal_frag(bool), "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_AsVal_dec(bool)(SwigSciObject iVar, bool *pbValue) {
|
||
|
|
SciErr sciErr;
|
||
|
|
int iRet = 0;
|
||
|
|
int *piAddrVar = NULL;
|
||
|
|
int iTempValue = 0;
|
||
|
|
|
||
|
|
sciErr = getVarAddressFromPosition(pvApiCtx, iVar, &piAddrVar);
|
||
|
|
if (sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!isBooleanType(pvApiCtx, piAddrVar)) {
|
||
|
|
Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong type for input argument #%d: A boolean expected.\n"), SWIG_Scilab_GetFuncName(), iVar);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!isScalar(pvApiCtx, piAddrVar)) {
|
||
|
|
Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong size for input argument #%d: A boolean expected.\n"), SWIG_Scilab_GetFuncName(), iVar);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
iRet = getScalarBoolean(pvApiCtx, piAddrVar, &iTempValue);
|
||
|
|
if (iRet) {
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
*pbValue = iTempValue;
|
||
|
|
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
%fragment(SWIG_From_frag(bool), "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_From_dec(bool)(bool bValue) {
|
||
|
|
if (createScalarBoolean(pvApiCtx, SWIG_NbInputArgument(pvApiCtx)
|
||
|
|
+ SWIG_Scilab_GetOutputPosition(), bValue))
|
||
|
|
return SWIG_ERROR;
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* C-type: bool[]
|
||
|
|
* Scilab type: boolean matrix
|
||
|
|
*/
|
||
|
|
%fragment("SWIG_SciBoolean_AsBoolArrayAndSize", "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_SciBoolean_AsBoolArrayAndSize(void *pvApiCtx, int iVar, int *iRows, int *iCols, bool **pbValue, char *fname) {
|
||
|
|
SciErr sciErr;
|
||
|
|
int *piAddrVar = NULL;
|
||
|
|
int *piValue = NULL;
|
||
|
|
|
||
|
|
sciErr = getVarAddressFromPosition(pvApiCtx, iVar, &piAddrVar);
|
||
|
|
if (sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (isBooleanType(pvApiCtx, piAddrVar)) {
|
||
|
|
int i;
|
||
|
|
sciErr = getMatrixOfBoolean(pvApiCtx, piAddrVar, iRows, iCols, &piValue);
|
||
|
|
if (sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
*pbValue = (bool*) malloc((*iRows) * (*iCols) * sizeof(bool));
|
||
|
|
for (i = 0; i < (*iRows) * (*iCols); i++)
|
||
|
|
(*pbValue)[i] = piValue[i] != 0;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, iVar);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
%fragment("SWIG_SciBoolean_FromBoolArrayAndSize", "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_SciBoolean_FromBoolArrayAndSize(void *pvApiCtx, int iVarOut, int iRows, int iCols, bool *pbValue) {
|
||
|
|
SciErr sciErr;
|
||
|
|
int *piValue = NULL;
|
||
|
|
int i;
|
||
|
|
|
||
|
|
piValue = (int*) malloc(iRows * iCols * sizeof(int));
|
||
|
|
for (i = 0; i < iRows * iCols; i++)
|
||
|
|
piValue[i] = pbValue[i];
|
||
|
|
|
||
|
|
sciErr = createMatrixOfBoolean(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + iVarOut, iRows, iCols, piValue);
|
||
|
|
if(sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
free(piValue);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
free(piValue);
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/*
|
||
|
|
* C-type: int[]
|
||
|
|
* Scilab type: boolean matrix
|
||
|
|
*/
|
||
|
|
%fragment("SWIG_SciBoolean_AsIntArrayAndSize", "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_SciBoolean_AsIntArrayAndSize(void *pvApiCtx, int iVar, int *iRows, int *iCols, int **piValue, char *fname) {
|
||
|
|
SciErr sciErr;
|
||
|
|
int *piAddrVar = NULL;
|
||
|
|
|
||
|
|
sciErr = getVarAddressFromPosition(pvApiCtx, iVar, &piAddrVar);
|
||
|
|
if (sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (isBooleanType(pvApiCtx, piAddrVar)) {
|
||
|
|
sciErr = getMatrixOfBoolean(pvApiCtx, piAddrVar, iRows, iCols, piValue);
|
||
|
|
if (sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, iVar);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
%fragment("SWIG_SciBoolean_FromIntArrayAndSize", "header") {
|
||
|
|
SWIGINTERN int
|
||
|
|
SWIG_SciBoolean_FromIntArrayAndSize(void *pvApiCtx, int iVarOut, int iRows, int iCols, int *piValue) {
|
||
|
|
SciErr sciErr;
|
||
|
|
|
||
|
|
sciErr = createMatrixOfBoolean(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + iVarOut, iRows, iCols, piValue);
|
||
|
|
if(sciErr.iErr) {
|
||
|
|
printError(&sciErr, 0);
|
||
|
|
return SWIG_ERROR;
|
||
|
|
}
|
||
|
|
|
||
|
|
return SWIG_OK;
|
||
|
|
}
|
||
|
|
}
|