1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
#include "javasci_Scilab.h"
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA */
/********************************************************************************************************/
JNIEXPORT void JNICALL Java_javasci_Scilab_Initialize (JNIEnv *env, jclass cl)
{
if ( GetInterfState() == 0) { EnableInterf(); Initialize();}
}
/********************************************************************************************************/
/* public static native void Events(); */
JNIEXPORT void JNICALL Java_javasci_Scilab_Events(JNIEnv *env , jobject obj_this)
/********************************************************************************************************/
{
ScilabDoOneEvent();
}
/********************************************************************************************************/
/* public static native boolean HaveAGraph(); */
JNIEXPORT jboolean JNICALL Java_javasci_Scilab_HaveAGraph (JNIEnv *env , jobject obj_this)
/********************************************************************************************************/
{
integer iflag =0,ids,num;
jboolean bOK=0;
if (version_flag() == 0)
{
sciGetIdFigure (&ids,&num,&iflag);
if (num > 0) bOK=1;
}/* NG end*/
else
{
C2F(getwins)(&num,&ids ,&iflag);
if (num > 0) bOK=1;
}
return bOK;
}
/********************************************************************************************************/
/* public static native boolean Exec(String job); */
JNIEXPORT jboolean JNICALL Java_javasci_Scilab_Exec(JNIEnv *env , jclass cl, jstring job)
/********************************************************************************************************/
{
jboolean bOK=0;
const char *cjob;
cjob = (*env)->GetStringUTFChars(env, job, NULL);
if (strlen(cjob) >= MAX_STR)
{
fprintf(stderr,"Error in Java_javasci_Scilab_Exec routine (line too long).\n");
bOK=0;
}
else
{
if ( send_scilab_job((char *)cjob) != 0)
{
fprintf(stderr,"Error in Java_javasci_Scilab_Exec routine.\n");
bOK=0;
}
else bOK=1;
}
(*env)->ReleaseStringUTFChars(env, job , cjob);
return bOK;
}
/********************************************************************************************************/
/* public static native boolean Finish(); */
JNIEXPORT jboolean JNICALL Java_javasci_Scilab_Finish (JNIEnv *env , jobject obj_this)
{
jboolean bOK=0;
bOK=TerminateScilab(NULL);
return bOK;
}
/********************************************************************************************************/
/* public static native boolean ExistVar(String VarName); */
JNIEXPORT jboolean JNICALL Java_javasci_Scilab_ExistVar(JNIEnv *env , jclass cl, jstring VarName)
{
jboolean bOK=0;
const char *cVarName;
cVarName = (*env)->GetStringUTFChars(env, VarName, NULL);
if (strlen(cVarName) >= MAX_STR)
{
fprintf(stderr,"Error in Java_javasci_Scilab_ExistVar routine (line too long).\n");
bOK=0;
}
else
{
int lw; int fin;
if (C2F(objptr)((char*)cVarName,&lw,&fin,(unsigned long)strlen(cVarName)))
{
bOK=1;
}
else
{
bOK=0;
}
}
(*env)->ReleaseStringUTFChars(env, VarName , cVarName);
return bOK;
}
/********************************************************************************************************/
/* public static native int TypeVar(String VarName); */
JNIEXPORT jint JNICALL Java_javasci_Scilab_TypeVar(JNIEnv *env , jclass cl, jstring VarName)
{
jint type=-1;
const char *cVarName;
cVarName = (*env)->GetStringUTFChars(env, VarName, NULL);
if (strlen(cVarName) >= MAX_STR)
{
fprintf(stderr,"Error in Java_javasci_Scilab_ExistVar routine (line too long).\n");
type=-1;
}
else
{
int lw; int fin;
if (C2F(objptr)((char*)cVarName,&lw,&fin,(unsigned long)strlen(cVarName)))
{
int *header=NULL;
header = (int *)GetDataFromName((char *)cVarName);
type = header[0];
}
else
{
type =-1;
}
}
(*env)->ReleaseStringUTFChars(env, VarName , cVarName);
return type;
}
/********************************************************************************************************/
/* public static native int GetLastErrorCode(); */
JNIEXPORT jint JNICALL Java_javasci_Scilab_GetLastErrorCode (JNIEnv *env , jobject obj_this)
{
jint ErrorCode=0;
ErrorCode=GetLastErrorCode();
return ErrorCode;
}
/********************************************************************************************************/
|