From f6182f9e72cd0203e2df7d36eb6a95015193e0c2 Mon Sep 17 00:00:00 2001 From: Andrew Dunai Date: Mon, 11 Mar 2024 14:31:11 +0200 Subject: [PATCH] lib: fix buzzer not stopping after melody ends\nkeira: fix incorrect pointer cast --- firmware/keira/src/apps/lua/lualilka_display.cpp | 2 +- sdk/lib/lilka/src/lilka/buzzer.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/firmware/keira/src/apps/lua/lualilka_display.cpp b/firmware/keira/src/apps/lua/lualilka_display.cpp index 8569d14f..4a767e84 100644 --- a/firmware/keira/src/apps/lua/lualilka_display.cpp +++ b/firmware/keira/src/apps/lua/lualilka_display.cpp @@ -255,7 +255,7 @@ int lualilka_display_drawImage(lua_State* L) { int lualilka_display_queueDraw(lua_State* L) { // Get App from registry lua_getfield(L, LUA_REGISTRYINDEX, "app"); - App* app = static_cast(app); + App* app = static_cast(lua_touserdata(L, -1)); lua_pop(L, 1); // Queue draw app->queueDraw(); diff --git a/sdk/lib/lilka/src/lilka/buzzer.cpp b/sdk/lib/lilka/src/lilka/buzzer.cpp index ca5d48c0..cdaff2fd 100644 --- a/sdk/lib/lilka/src/lilka/buzzer.cpp +++ b/sdk/lib/lilka/src/lilka/buzzer.cpp @@ -82,6 +82,9 @@ void Buzzer::melodyTask(void* arg) { } xSemaphoreGive(buzzer->buzzerMutex); vTaskDelay(duration / portTICK_PERIOD_MS); + if (i == buzzer->currentMelodyLength - 1) { + noTone(LILKA_BUZZER); + } } buzzer->stop(); }