matvar_t *ConvertSciVarToMatVar(types::InternalType* pIT, const char *name, int matfile_version) { switch (pIT->getType()) { case types::GenericType::ScilabDouble: { return GetDoubleMatVar(pIT->getAs<types::Double>(), name, matfile_version); } break; case types::InternalType::ScilabInt8: case types::InternalType::ScilabUInt8: case types::InternalType::ScilabInt16: case types::InternalType::ScilabUInt16: case types::InternalType::ScilabInt32: case types::InternalType::ScilabUInt32: #ifdef __SCILAB_INT64__ case types::InternalType::ScilabInt64: case types::InternalType::ScilabUInt64: #endif { return GetIntegerMatVar(pIT, name); } break; case types::InternalType::ScilabString: { return GetCharMatVar(pIT->getAs<types::String>(), name); } break; case types::InternalType::ScilabSparse: { return GetSparseMatVar(pIT->getAs<types::Sparse>(), name); } break; case types::InternalType::ScilabCell: { return GetCellMatVar(pIT->getAs<types::Cell>(), name, matfile_version); } break; case types::InternalType::ScilabStruct: { return GetStructMatVar(pIT->getAs<types::Struct>(), name, matfile_version); } break; case types::InternalType::ScilabMList: { return GetMListMatVar(pIT->getAs<types::MList>(), name, matfile_version); } break; default: break; } Scierror(999, "Do not known how to get variable of type %d\n", pIT->getType()); return NULL; }
matvar_t* GetIntegerVariable(void *pvApiCtx, int iVar, const char *name, int * parent, int item_position) { types::GatewayStruct* pStr = (types::GatewayStruct*)pvApiCtx; types::typed_list in = *pStr->m_pIn; if (in[iVar - 1]->isInt() == false) { Scierror(999, _("%s: Wrong type for first input argument: Integer matrix expected.\n"), "GetIntegerVariable"); return NULL; } types::InternalType* pIT = in[iVar - 1]->getAs<types::InternalType>(); return GetIntegerMatVar(pIT, name); }