From 22930163ec9b54b612fbd252474051a0cfa1e4fa Mon Sep 17 00:00:00 2001 From: Paul Dino Jones Date: Mon, 24 Mar 2025 12:05:49 -0400 Subject: [PATCH] Fix to use lua on c12 if lua script loads properly --- src/monocoque/devices/usb/wheels/cammusc12.c | 4 ++++ src/monocoque/devices/usb/wheels/cammusc12.h | 1 + src/monocoque/devices/wheeldevice.c | 9 ++++++++- src/monocoque/devices/wheeldevice.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/monocoque/devices/usb/wheels/cammusc12.c b/src/monocoque/devices/usb/wheels/cammusc12.c index 9060dd4..fd19da0 100644 --- a/src/monocoque/devices/usb/wheels/cammusc12.c +++ b/src/monocoque/devices/usb/wheels/cammusc12.c @@ -92,9 +92,11 @@ int cammusc12_init_(USBDevice* wheeldevice) int cammusc12_init(USBDevice* wheeldevice, const char* luafile) { + wheeldevice->u.wheeldevice.useLua = false; int res = cammusc12_init_(wheeldevice); if(luafile == NULL) { + return res; } @@ -109,9 +111,11 @@ int cammusc12_init(USBDevice* wheeldevice, const char* luafile) /* the stack */ sloge("There is an issue with your lua script"); fprintf(stderr, "Couldn't load file: %s\n", lua_tostring(L, -1)); + return -1; //exit(1); } + wheeldevice->u.wheeldevice.useLua = true; lua_setglobal(L,"myFunc"); wheeldevice->m.L = L; diff --git a/src/monocoque/devices/usb/wheels/cammusc12.h b/src/monocoque/devices/usb/wheels/cammusc12.h index 3c43fef..8f236a4 100644 --- a/src/monocoque/devices/usb/wheels/cammusc12.h +++ b/src/monocoque/devices/usb/wheels/cammusc12.h @@ -6,6 +6,7 @@ #include "../../simdevice.h" int cammusc12_update(USBDevice* wheeldevice, int maxrpm, int rpm, int gear, int velocity); +int cammusc12_customled_update(USBDevice* usbdevice, SimData* simdata); int cammusc12_init(USBDevice* wheeldevice, const char* luafile); int cammusc12_free(USBDevice* wheeldevice); diff --git a/src/monocoque/devices/wheeldevice.c b/src/monocoque/devices/wheeldevice.c index ce2ae4f..12ea9a3 100644 --- a/src/monocoque/devices/wheeldevice.c +++ b/src/monocoque/devices/wheeldevice.c @@ -21,7 +21,14 @@ int wheeldev_update(USBDevice* usbdevice, SimData* simdata) cammusc5_update(usbdevice, simdata->maxrpm, simdata->rpms, simdata->gear, simdata->velocity); break; case WHEELDEV_CAMMUSC12 : - cammusc12_update(usbdevice, simdata->maxrpm, simdata->rpms, simdata->gear, simdata->velocity); + if(usbdevice->u.wheeldevice.useLua == true) + { + cammusc12_customled_update(usbdevice, simdata); + } + else + { + cammusc12_update(usbdevice, simdata->maxrpm, simdata->rpms, simdata->gear, simdata->velocity); + } break; } diff --git a/src/monocoque/devices/wheeldevice.h b/src/monocoque/devices/wheeldevice.h index 9507b3e..c791dd1 100644 --- a/src/monocoque/devices/wheeldevice.h +++ b/src/monocoque/devices/wheeldevice.h @@ -19,6 +19,7 @@ typedef struct { int id; WheelType type; + bool useLua; char* port; } WheelDevice;