20#include "../ui/common.h"
57void duk_kill_javascript(
void);
59void duk_SaveScriptText(
int num,
const char *text);
60void duk_process_eventsProcessed();
61void duk_js_cleanup_script_context(
int counter);
62int duk_jsActualrunScript(
int num,
char *script);
63void duk_JSInitializeScriptAndFields (
int num);
64void duk_JSCreateScriptContext(
int num);
65void duk_SaveScriptField (
int num, indexT kind, indexT type,
const char* field,
union anyVrml value);
68void duk_js_setField_javascriptEventOut_B(
union anyVrml* any,
int fieldType,
unsigned len,
int extraData,
int actualscript);
69void duk_js_setField_javascriptEventOut(
struct X3D_Node *tn,
unsigned int tptr,
int fieldType,
unsigned len,
int extraData,
int actualscript);
71void duk_setScriptECMAtype(
int num);
72int duk_get_valueChanged_flag (
int fptr,
int actualscript);
73void duk_resetScriptTouchedFlag(
int actualscript,
int fptr);
74void duk_set_one_ECMAtype (
int tonode,
int toname,
int dataType,
void *Data,
int datalen);
75void duk_set_one_MultiElementType (
int tonode,
int tnfield,
void *Data,
int dataLen);
76void duk_set_one_MFElementType(
int tonode,
int toname,
int dataType,
void *Data,
int datalen);
80void duk_JSDeleteScriptContext(
int num);
81void duk_InitScriptField(
int num, indexT kind, indexT type,
const char* field,
union anyVrml value);
82void duk_jsClearScriptControlEntries(
int num);
83int duk_runQueuedDirectOutputs();
87void sm_kill_javascript(
void);
89void sm_SaveScriptText(
int num,
const char *text);
90void sm_process_eventsProcessed();
91void sm_js_cleanup_script_context(
int counter);
92int sm_jsActualrunScript(
int num,
char *script);
93void sm_JSInitializeScriptAndFields (
int num);
94void sm_JSCreateScriptContext(
int num);
95void sm_SaveScriptField (
int num, indexT kind, indexT type,
const char* field,
union anyVrml value);
98void sm_js_setField_javascriptEventOut_B(
union anyVrml* any,
int fieldType,
unsigned len,
int extraData,
int actualscript);
99void sm_js_setField_javascriptEventOut(
struct X3D_Node *tn,
unsigned int tptr,
int fieldType,
unsigned len,
int extraData,
int actualscript);
101void sm_setScriptECMAtype(
int num);
102int sm_get_valueChanged_flag (
int fptr,
int actualscript);
103void sm_resetScriptTouchedFlag(
int actualscript,
int fptr);
104void sm_set_one_ECMAtype (
int tonode,
int toname,
int dataType,
void *Data,
int datalen);
105void sm_set_one_MultiElementType (
int tonode,
int tnfield,
void *Data,
int dataLen);
106void sm_set_one_MFElementType(
int tonode,
int toname,
int dataType,
void *Data,
int datalen);
110void sm_JSDeleteScriptContext(
int num);
111void sm_InitScriptField(
int num, indexT kind, indexT type,
const char* field,
union anyVrml value);
112void sm_jsClearScriptControlEntries(
int num);
113int sm_runQueuedDirectOutputs();
119void process_eventsProcessed(){
121 if(getJsEngine() == JSENGINE_SM)
122 sm_process_eventsProcessed();
124 #ifdef JAVASCRIPT_DUK
125 if(getJsEngine() == JSENGINE_DUK)
126 duk_process_eventsProcessed();
130void js_cleanup_script_context(
int counter){
132 if(getJsEngine() == JSENGINE_SM)
133 sm_js_cleanup_script_context(counter);
135 #ifdef JAVASCRIPT_DUK
136 if(getJsEngine() == JSENGINE_DUK)
137 duk_js_cleanup_script_context(counter);
141int jsActualrunScript(
int num,
char *script){
144 if(getJsEngine() == JSENGINE_SM)
145 iret = sm_jsActualrunScript(num, script);
147 #ifdef JAVASCRIPT_DUK
148 if(getJsEngine() == JSENGINE_DUK)
149 iret = duk_jsActualrunScript(num, script);
154void JSCreateScriptContext(
int num){
156 if(getJsEngine() == JSENGINE_SM)
157 sm_JSCreateScriptContext(num);
159 #ifdef JAVASCRIPT_DUK
160 if(getJsEngine() == JSENGINE_DUK)
161 duk_JSCreateScriptContext(num);
165void JSInitializeScriptAndFields (
int num) {
167 if(getJsEngine() == JSENGINE_SM)
168 sm_JSInitializeScriptAndFields(num);
170 #ifdef JAVASCRIPT_DUK
171 if(getJsEngine() == JSENGINE_DUK)
172 duk_JSInitializeScriptAndFields(num);
177void js_setField_javascriptEventOut_B(
union anyVrml* any,
int fieldType,
unsigned len,
int extraData,
int actualscript){
179 if(getJsEngine() == JSENGINE_SM)
180 sm_js_setField_javascriptEventOut_B(any,fieldType,len,extraData,actualscript);
182 #ifdef JAVASCRIPT_DUK
183 if(getJsEngine() == JSENGINE_DUK)
184 duk_js_setField_javascriptEventOut_B(any,fieldType,len,extraData,actualscript);
188void js_setField_javascriptEventOut(
struct X3D_Node *tn,
unsigned int tptr,
int fieldType,
unsigned len,
int extraData,
int actualscript){
190 if(getJsEngine() == JSENGINE_SM)
191 sm_js_setField_javascriptEventOut(tn,tptr,fieldType,len,extraData,actualscript);
193 #ifdef JAVASCRIPT_DUK
194 if(getJsEngine() == JSENGINE_DUK)
195 duk_js_setField_javascriptEventOut(tn,tptr,fieldType,len,extraData,actualscript);
200void setScriptECMAtype(
int num){
202 if(getJsEngine() == JSENGINE_SM)
203 sm_setScriptECMAtype(num);
205 #ifdef JAVASCRIPT_DUK
206 if(getJsEngine() == JSENGINE_DUK)
207 duk_setScriptECMAtype(num);
211int get_valueChanged_flag (
int fptr,
int actualscript){
214 if(getJsEngine() == JSENGINE_SM)
215 iret = sm_get_valueChanged_flag(fptr, actualscript);
217 #ifdef JAVASCRIPT_DUK
218 if(getJsEngine() == JSENGINE_DUK)
219 iret = duk_get_valueChanged_flag(fptr, actualscript);
223void resetScriptTouchedFlag(
int actualscript,
int fptr){
225 if(getJsEngine() == JSENGINE_SM)
226 sm_resetScriptTouchedFlag(actualscript, fptr);
228 #ifdef JAVASCRIPT_DUK
229 if(getJsEngine() == JSENGINE_DUK)
230 duk_resetScriptTouchedFlag(actualscript, fptr);
234void set_one_ECMAtype (
int tonode,
int toname,
int dataType,
void *Data,
int datalen){
236 if(getJsEngine() == JSENGINE_SM)
237 sm_set_one_ECMAtype (tonode, toname, dataType, Data, datalen);
239 #ifdef JAVASCRIPT_DUK
240 if(getJsEngine() == JSENGINE_DUK)
241 duk_set_one_ECMAtype (tonode, toname, dataType, Data, datalen);
245void set_one_MultiElementType (
int tonode,
int tnfield,
void *Data,
int dataLen){
247 if(getJsEngine() == JSENGINE_SM)
248 sm_set_one_MultiElementType (tonode, tnfield,Data, dataLen);
250 #ifdef JAVASCRIPT_DUK
251 if(getJsEngine() == JSENGINE_DUK)
252 duk_set_one_MultiElementType (tonode, tnfield,Data, dataLen);
256void set_one_MFElementType(
int tonode,
int toname,
int dataType,
void *Data,
int datalen){
258 if(getJsEngine() == JSENGINE_SM)
259 sm_set_one_MFElementType(tonode, toname, dataType, Data, datalen);
261 #ifdef JAVASCRIPT_DUK
262 if(getJsEngine() == JSENGINE_DUK)
263 duk_set_one_MFElementType(tonode, toname, dataType, Data, datalen);
270 if(getJsEngine() == JSENGINE_SM)
271 iret = sm_jsIsRunning();
273 #ifdef JAVASCRIPT_DUK
274 if(getJsEngine() == JSENGINE_DUK)
275 iret = duk_jsIsRunning();
279void JSDeleteScriptContext(
int num){
281 if(getJsEngine() == JSENGINE_SM)
282 sm_JSDeleteScriptContext(num);
284 #ifdef JAVASCRIPT_DUK
285 if(getJsEngine() == JSENGINE_DUK)
286 duk_JSDeleteScriptContext(num);
292 if(getJsEngine() == JSENGINE_SM)
295 #ifdef JAVASCRIPT_DUK
296 if(getJsEngine() == JSENGINE_DUK)
302void jsClearScriptControlEntries(
int num){
304 if(getJsEngine() == JSENGINE_SM)
305 sm_jsClearScriptControlEntries (num);
307 #ifdef JAVASCRIPT_DUK
308 if(getJsEngine() == JSENGINE_DUK)
309 duk_jsClearScriptControlEntries (num);
313void SaveScriptField (
int num, indexT kind, indexT type,
const char* field,
union anyVrml value){
315 if(getJsEngine() == JSENGINE_SM)
316 sm_SaveScriptField (num, kind, type, field, value);
318 #ifdef JAVASCRIPT_DUK
319 if(getJsEngine() == JSENGINE_DUK)
320 duk_SaveScriptField (num, kind, type, field, value);
324int runQueuedDirectOutputs(){
328 if(getJsEngine() == JSENGINE_SM)
329 iret = sm_runQueuedDirectOutputs();
331 #ifdef JAVASCRIPT_DUK
332 if(getJsEngine() == JSENGINE_DUK)
333 iret = duk_runQueuedDirectOutputs();