@@ -20,17 +20,13 @@ static bool is_object(var_p_t var) {
20
20
return var != nullptr && v_is_type (var, V_MAP) && (var->v .m .id == USB_OBJECT_ID);
21
21
}
22
22
23
- static bool usb_close () {
24
- return runtime->getBoolean (" usbClose" );
25
- }
26
-
27
23
static int cmd_usb_close (var_s *self, int argc, slib_par_t *args, var_s *retval) {
28
24
int result;
29
25
if (argc != 0 || !is_object (self)) {
30
26
v_setstr (retval, ERR_PARAM);
31
27
result = 0 ;
32
28
} else {
33
- usb_close ( );
29
+ runtime-> getBoolean ( " usbClose " );
34
30
result = 1 ;
35
31
}
36
32
return result;
@@ -247,11 +243,11 @@ const char *lib_funcs[] = {
247
243
" USBCONNECT"
248
244
};
249
245
250
- int sblib_proc_count (void ) {
246
+ extern " C " int sblib_proc_count (void ) {
251
247
return (sizeof (lib_procs) / sizeof (lib_procs[0 ]));
252
248
}
253
249
254
- int sblib_proc_getname (int index, char *proc_name) {
250
+ extern " C " int sblib_proc_getname (int index, char *proc_name) {
255
251
int result;
256
252
if (index < sblib_proc_count ()) {
257
253
strcpy (proc_name, lib_procs[index ].name );
@@ -262,7 +258,7 @@ int sblib_proc_getname(int index, char *proc_name) {
262
258
return result;
263
259
}
264
260
265
- int sblib_proc_exec (int index, int argc, slib_par_t *args, var_t *retval) {
261
+ extern " C " int sblib_proc_exec (int index, int argc, slib_par_t *args, var_t *retval) {
266
262
int result;
267
263
if (index < sblib_proc_count ()) {
268
264
result = lib_procs[index ].command (argc, args, retval);
@@ -272,11 +268,11 @@ int sblib_proc_exec(int index, int argc, slib_par_t *args, var_t *retval) {
272
268
return result;
273
269
}
274
270
275
- int sblib_func_count (void ) {
271
+ extern " C " int sblib_func_count (void ) {
276
272
return (sizeof (lib_funcs) / sizeof (lib_funcs[0 ]));
277
273
}
278
274
279
- int sblib_func_getname (int index, char *proc_name) {
275
+ extern " C " int sblib_func_getname (int index, char *proc_name) {
280
276
int result;
281
277
if (index < sblib_func_count ()) {
282
278
strcpy (proc_name, lib_funcs[index ]);
@@ -287,7 +283,7 @@ int sblib_func_getname(int index, char *proc_name) {
287
283
return result;
288
284
}
289
285
290
- int sblib_func_exec (int index, int argc, slib_par_t *args, var_t *retval) {
286
+ extern " C " int sblib_func_exec (int index, int argc, slib_par_t *args, var_t *retval) {
291
287
int result;
292
288
switch (index ) {
293
289
case 0 :
@@ -311,14 +307,14 @@ int sblib_func_exec(int index, int argc, slib_par_t *args, var_t *retval) {
311
307
return result;
312
308
}
313
309
314
- void sblib_free (int cls_id, int id) {
310
+ extern " C " void sblib_free (int cls_id, int id) {
315
311
if (cls_id == USB_CLASS_ID && id == USB_OBJECT_ID) {
316
312
// when the 'usb' variable falls out of scope
317
- usb_close ( );
313
+ runtime-> getBoolean ( " usbClose " );
318
314
}
319
315
}
320
316
321
- void sblib_close () {
317
+ extern " C " void sblib_close () {
322
318
runtime->getBoolean (" closeLibHandlers" );
323
319
runtime->disableSensor ();
324
320
}
0 commit comments