FreeWRL / FreeX3D 4.3.0
JScript_stub.c
1/****************************************************************************
2 This file is part of the FreeWRL/FreeX3D Distribution.
3
4 Copyright 2009 CRC Canada. (http://www.crc.gc.ca)
5
6 FreeWRL/FreeX3D is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 FreeWRL/FreeX3D is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with FreeWRL/FreeX3D. If not, see <http://www.gnu.org/licenses/>.
18****************************************************************************/
19#include <config.h>
20#include "../ui/common.h"
21//#if defined(JAVASCRIPT_STUB)
22
23typedef int indexT;
24union anyVrml{
25 int nothing;
26} anyVrml;
27struct X3D_Node;
28struct X3D_Proto;
29//#ifndef BOOL
30//#define BOOL int
31//#endif
32//#include "JScript.h"
33//.c module gglobal sub-state initializers
34//void JScript_init(void *t){}
35//void jsVRMLBrowser_init(void *t){}
36//void jsUtils_init(void *t){}
37//void jsVRMLClasses_init(void *t){}
38
39
40
41
42
43/* stubs, when you don't have a javascript engine */
44/* //switching between engines within a stub
45 #ifdef JAVASCRIPT_SM
46 if(getJsEngine() == JSENGINE_SM)
47 sm_JScript_init(t);
48 #endif
49 #ifdef JAVASCRIPT_DUK
50 if(getJsEngine() == JSENGINE_DUK)
51 duk_JScript_init(t);
52 #endif
53*/
54struct Shader_Script;
55
56#ifdef JAVASCRIPT_DUK
57void duk_kill_javascript(void);
58void duk_JSInit(struct Shader_Script *script); /* int num); */
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);
66
67//void 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);
70
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);
77
78int duk_jsIsRunning();
79void duk_jsShutdown();
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); //struct CRscriptStruct *ScriptControl);
83int duk_runQueuedDirectOutputs();
84#endif //JAVASCRIPT_DUK
85
86#ifdef JAVASCRIPT_SM
87void sm_kill_javascript(void);
88void sm_JSInit(struct Shader_Script *script); /* int num); */
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);
96
97//void 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);
100
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);
107
108int sm_jsIsRunning();
109void sm_jsShutdown();
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); //struct CRscriptStruct *ScriptControl);
113int sm_runQueuedDirectOutputs();
114#endif //JAVASCRIPT_SM
115
116//void kill_javascript(void){return;}
117//void JSInit(int num){return;}
118//void SaveScriptText(int num, const char *text){return;}
119void process_eventsProcessed(){
120 #ifdef JAVASCRIPT_SM
121 if(getJsEngine() == JSENGINE_SM)
122 sm_process_eventsProcessed();
123 #endif
124 #ifdef JAVASCRIPT_DUK
125 if(getJsEngine() == JSENGINE_DUK)
126 duk_process_eventsProcessed();
127 #endif
128 return;
129}
130void js_cleanup_script_context(int counter){
131 #ifdef JAVASCRIPT_SM
132 if(getJsEngine() == JSENGINE_SM)
133 sm_js_cleanup_script_context(counter);
134 #endif
135 #ifdef JAVASCRIPT_DUK
136 if(getJsEngine() == JSENGINE_DUK)
137 duk_js_cleanup_script_context(counter);
138 #endif
139 return;
140}
141int jsActualrunScript(int num, char *script){
142 int iret = 0;
143 #ifdef JAVASCRIPT_SM
144 if(getJsEngine() == JSENGINE_SM)
145 iret = sm_jsActualrunScript(num, script);
146 #endif
147 #ifdef JAVASCRIPT_DUK
148 if(getJsEngine() == JSENGINE_DUK)
149 iret = duk_jsActualrunScript(num, script);
150 #endif
151 return iret;
152}
153//void JSInitializeScriptAndFields (int num){return;}
154void JSCreateScriptContext(int num){
155 #ifdef JAVASCRIPT_SM
156 if(getJsEngine() == JSENGINE_SM)
157 sm_JSCreateScriptContext(num);
158 #endif
159 #ifdef JAVASCRIPT_DUK
160 if(getJsEngine() == JSENGINE_DUK)
161 duk_JSCreateScriptContext(num);
162 #endif
163 return;
164}
165void JSInitializeScriptAndFields (int num) {
166 #ifdef JAVASCRIPT_SM
167 if(getJsEngine() == JSENGINE_SM)
168 sm_JSInitializeScriptAndFields(num);
169 #endif
170 #ifdef JAVASCRIPT_DUK
171 if(getJsEngine() == JSENGINE_DUK)
172 duk_JSInitializeScriptAndFields(num);
173 #endif
174 return;
175}
176//void SaveScriptField (int num, indexT kind, indexT type, const char* field, union anyVrml value){return;}
177void js_setField_javascriptEventOut_B(union anyVrml* any, int fieldType, unsigned len, int extraData, int actualscript){
178 #ifdef JAVASCRIPT_SM
179 if(getJsEngine() == JSENGINE_SM)
180 sm_js_setField_javascriptEventOut_B(any,fieldType,len,extraData,actualscript);
181 #endif
182 #ifdef JAVASCRIPT_DUK
183 if(getJsEngine() == JSENGINE_DUK)
184 duk_js_setField_javascriptEventOut_B(any,fieldType,len,extraData,actualscript);
185 #endif
186 return;
187}
188void js_setField_javascriptEventOut(struct X3D_Node *tn,unsigned int tptr, int fieldType, unsigned len, int extraData, int actualscript){
189 #ifdef JAVASCRIPT_SM
190 if(getJsEngine() == JSENGINE_SM)
191 sm_js_setField_javascriptEventOut(tn,tptr,fieldType,len,extraData,actualscript);
192 #endif
193 #ifdef JAVASCRIPT_DUK
194 if(getJsEngine() == JSENGINE_DUK)
195 duk_js_setField_javascriptEventOut(tn,tptr,fieldType,len,extraData,actualscript);
196 #endif
197 return;
198}
199
200void setScriptECMAtype(int num){
201 #ifdef JAVASCRIPT_SM
202 if(getJsEngine() == JSENGINE_SM)
203 sm_setScriptECMAtype(num);
204 #endif
205 #ifdef JAVASCRIPT_DUK
206 if(getJsEngine() == JSENGINE_DUK)
207 duk_setScriptECMAtype(num);
208 #endif
209 return;
210}
211int get_valueChanged_flag (int fptr, int actualscript){
212 int iret = 0;
213 #ifdef JAVASCRIPT_SM
214 if(getJsEngine() == JSENGINE_SM)
215 iret = sm_get_valueChanged_flag(fptr, actualscript);
216 #endif
217 #ifdef JAVASCRIPT_DUK
218 if(getJsEngine() == JSENGINE_DUK)
219 iret = duk_get_valueChanged_flag(fptr, actualscript);
220 #endif
221 return iret;
222}
223void resetScriptTouchedFlag(int actualscript, int fptr){
224 #ifdef JAVASCRIPT_SM
225 if(getJsEngine() == JSENGINE_SM)
226 sm_resetScriptTouchedFlag(actualscript, fptr);
227 #endif
228 #ifdef JAVASCRIPT_DUK
229 if(getJsEngine() == JSENGINE_DUK)
230 duk_resetScriptTouchedFlag(actualscript, fptr);
231 #endif
232 return;
233}
234void set_one_ECMAtype (int tonode, int toname, int dataType, void *Data, int datalen){
235 #ifdef JAVASCRIPT_SM
236 if(getJsEngine() == JSENGINE_SM)
237 sm_set_one_ECMAtype (tonode, toname, dataType, Data, datalen);
238 #endif
239 #ifdef JAVASCRIPT_DUK
240 if(getJsEngine() == JSENGINE_DUK)
241 duk_set_one_ECMAtype (tonode, toname, dataType, Data, datalen);
242 #endif
243 return;
244}
245void set_one_MultiElementType (int tonode, int tnfield, void *Data, int dataLen){
246 #ifdef JAVASCRIPT_SM
247 if(getJsEngine() == JSENGINE_SM)
248 sm_set_one_MultiElementType (tonode, tnfield,Data, dataLen);
249 #endif
250 #ifdef JAVASCRIPT_DUK
251 if(getJsEngine() == JSENGINE_DUK)
252 duk_set_one_MultiElementType (tonode, tnfield,Data, dataLen);
253 #endif
254 return;
255}
256void set_one_MFElementType(int tonode, int toname, int dataType, void *Data, int datalen){
257 #ifdef JAVASCRIPT_SM
258 if(getJsEngine() == JSENGINE_SM)
259 sm_set_one_MFElementType(tonode, toname, dataType, Data, datalen);
260 #endif
261 #ifdef JAVASCRIPT_DUK
262 if(getJsEngine() == JSENGINE_DUK)
263 duk_set_one_MFElementType(tonode, toname, dataType, Data, datalen);
264 #endif
265 return;
266}
267int jsIsRunning(){
268 int iret = 1;
269 #ifdef JAVASCRIPT_SM
270 if(getJsEngine() == JSENGINE_SM)
271 iret = sm_jsIsRunning();
272 #endif
273 #ifdef JAVASCRIPT_DUK
274 if(getJsEngine() == JSENGINE_DUK)
275 iret = duk_jsIsRunning();
276 #endif
277 return iret;
278}
279void JSDeleteScriptContext(int num){
280 #ifdef JAVASCRIPT_SM
281 if(getJsEngine() == JSENGINE_SM)
282 sm_JSDeleteScriptContext(num);
283 #endif
284 #ifdef JAVASCRIPT_DUK
285 if(getJsEngine() == JSENGINE_DUK)
286 duk_JSDeleteScriptContext(num);
287 #endif
288 return;
289}
290void jsShutdown(){
291 #ifdef JAVASCRIPT_SM
292 if(getJsEngine() == JSENGINE_SM)
293 sm_jsShutdown();
294 #endif
295 #ifdef JAVASCRIPT_DUK
296 if(getJsEngine() == JSENGINE_DUK)
297 duk_jsShutdown();
298 #endif
299 return;
300}
301
302void jsClearScriptControlEntries(int num){
303 #ifdef JAVASCRIPT_SM
304 if(getJsEngine() == JSENGINE_SM)
305 sm_jsClearScriptControlEntries (num);
306 #endif
307 #ifdef JAVASCRIPT_DUK
308 if(getJsEngine() == JSENGINE_DUK)
309 duk_jsClearScriptControlEntries (num);
310 #endif
311 return;
312}
313void SaveScriptField (int num, indexT kind, indexT type, const char* field, union anyVrml value){
314 #ifdef JAVASCRIPT_SM
315 if(getJsEngine() == JSENGINE_SM)
316 sm_SaveScriptField (num, kind, type, field, value);
317 #endif
318 #ifdef JAVASCRIPT_DUK
319 if(getJsEngine() == JSENGINE_DUK)
320 duk_SaveScriptField (num, kind, type, field, value);
321 #endif
322 return;
323}
324int runQueuedDirectOutputs(){
325 //stub for SM and STUBS (DUK has it)
326 int iret = 0;
327 #ifdef JAVASCRIPT_SM
328 if(getJsEngine() == JSENGINE_SM)
329 iret = sm_runQueuedDirectOutputs();
330 #endif
331 #ifdef JAVASCRIPT_DUK
332 if(getJsEngine() == JSENGINE_DUK)
333 iret = duk_runQueuedDirectOutputs();
334 #endif
335 return iret;
336}
337//#endif /* defined(JAVASCRIPT_STUB) */