mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-08-17 23:55:04 +00:00
More fixes
This commit is contained in:
parent
d0d1d15e45
commit
a67bc5a52e
@ -87,6 +87,7 @@ lv_indev_t* init() {
|
|||||||
g_indev = lv_indev_create();
|
g_indev = lv_indev_create();
|
||||||
if (g_indev == nullptr) {
|
if (g_indev == nullptr) {
|
||||||
LOG_E(TAG, "Failed to register LVGL input device");
|
LOG_E(TAG, "Failed to register LVGL input device");
|
||||||
|
device_put(g_device);
|
||||||
g_device = nullptr;
|
g_device = nullptr;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -303,7 +303,7 @@ void startUsbHidInput() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Device* hid_dev;
|
Device* hid_dev = nullptr;
|
||||||
if (device_get_first_active_by_type(&USB_HOST_HID_TYPE, &hid_dev) == ERROR_NONE) {
|
if (device_get_first_active_by_type(&USB_HOST_HID_TYPE, &hid_dev) == ERROR_NONE) {
|
||||||
ctx->subscribed = usb_host_hid_subscribe(hid_dev, ctx->hid_queue);
|
ctx->subscribed = usb_host_hid_subscribe(hid_dev, ctx->hid_queue);
|
||||||
device_put(hid_dev);
|
device_put(hid_dev);
|
||||||
@ -313,7 +313,13 @@ void startUsbHidInput() {
|
|||||||
if (xTaskCreate(usbHidInputTask, "usb_hid_inp", TASK_STACK, ctx, TASK_PRIORITY, &ctx->task) != pdPASS) {
|
if (xTaskCreate(usbHidInputTask, "usb_hid_inp", TASK_STACK, ctx, TASK_PRIORITY, &ctx->task) != pdPASS) {
|
||||||
LOG_E(TAG, "failed to create task");
|
LOG_E(TAG, "failed to create task");
|
||||||
ctx->running = false;
|
ctx->running = false;
|
||||||
if (hid_dev) usb_host_hid_unsubscribe(hid_dev, ctx->hid_queue);
|
if (ctx->subscribed) {
|
||||||
|
Device* cleanup_dev = nullptr;
|
||||||
|
if (device_get_first_active_by_type(&USB_HOST_HID_TYPE, &cleanup_dev) == ERROR_NONE) {
|
||||||
|
usb_host_hid_unsubscribe(cleanup_dev, ctx->hid_queue);
|
||||||
|
device_put(cleanup_dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
vQueueDelete(ctx->hid_queue);
|
vQueueDelete(ctx->hid_queue);
|
||||||
vQueueDelete(ctx->key_queue);
|
vQueueDelete(ctx->key_queue);
|
||||||
vSemaphoreDelete(ctx->task_done);
|
vSemaphoreDelete(ctx->task_done);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user