diff --git a/examples/companion_radio/UITask.cpp b/examples/companion_radio/UITask.cpp index 5293c0c7..7a031b76 100644 --- a/examples/companion_radio/UITask.cpp +++ b/examples/companion_radio/UITask.cpp @@ -53,6 +53,18 @@ void UITask::begin(DisplayDriver* display, NodePrefs* node_prefs, const char* bu // v1.2.3 (1 Jan 2025) sprintf(_version_info, "%s (%s)", version, build_date); + +#ifdef PIN_BUZZER + buzzer.begin(); +#endif +} + +void UITask::soundBuzzer() { +#if defined(PIN_BUZZER) + // gemini's pick + buzzer.play("MsgRcv3:d=4,o=6,b=200:32e,32g,32b,16c7"); + //Serial.println("DBG: Buzzzzzz"); +#endif } void UITask::msgRead(int msgcount) { @@ -248,6 +260,10 @@ void UITask::loop() { buttonHandler(); userLedHandler(); +#ifdef PIN_BUZZER + if (buzzer.isPlaying()) buzzer.loop(); +#endif + if (_display != NULL && _display->isOn()) { static bool _firstBoot = true; if(_firstBoot && millis() >= BOOT_SCREEN_MILLIS) { diff --git a/examples/companion_radio/UITask.h b/examples/companion_radio/UITask.h index 58d68564..30374145 100644 --- a/examples/companion_radio/UITask.h +++ b/examples/companion_radio/UITask.h @@ -4,11 +4,18 @@ #include #include +#ifdef PIN_BUZZER + #include +#endif + #include "NodePrefs.h" class UITask { DisplayDriver* _display; mesh::MainBoard* _board; +#ifdef PIN_BUZZER + genericBuzzer buzzer; +#endif unsigned long _next_refresh, _auto_off; bool _connected; uint32_t _pin_code; @@ -37,5 +44,6 @@ public: void clearMsgPreview(); void msgRead(int msgcount); void newMsg(uint8_t path_len, const char* from_name, const char* text, int msgcount); + void soundBuzzer(); void loop(); }; diff --git a/examples/companion_radio/main.cpp b/examples/companion_radio/main.cpp index 8b4b437f..c71fcd81 100644 --- a/examples/companion_radio/main.cpp +++ b/examples/companion_radio/main.cpp @@ -66,11 +66,6 @@ static UITask ui_task(&board); #endif -#ifdef PIN_BUZZER - #include "buzzer.h" - genericBuzzer buzzer; -#endif - // Believe it or not, this std C function is busted on some platforms! static uint32_t _atoi(const char* sp) { uint32_t n = 0; @@ -488,15 +483,6 @@ class MyMesh : public BaseChatMesh { return 0; // queue is empty } - void soundBuzzer() { - #if defined(PIN_BUZZER) - // gemini's pick - buzzer.play("MsgRcv3:d=4,o=6,b=200:32e,32g,32b,16c7"); - //Serial.println("DBG: Buzzzzzz"); - #endif - - } - protected: float getAirtimeBudgetFactor() const override { return _prefs.airtime_factor; @@ -533,7 +519,9 @@ protected: _serial->writeFrame(out_frame, 1 + PUB_KEY_SIZE); } } else { - soundBuzzer(); + #ifdef DISPLAY_CLASS + ui_task.soundBuzzer(); + #endif } saveContacts(); @@ -594,7 +582,9 @@ protected: frame[0] = PUSH_CODE_MSG_WAITING; // send push 'tickle' _serial->writeFrame(frame, 1); } else { - soundBuzzer(); + #ifdef DISPLAY_CLASS + ui_task.soundBuzzer(); + #endif } #ifdef DISPLAY_CLASS ui_task.newMsg(path_len, from.name, text, offline_queue_len); @@ -645,7 +635,9 @@ protected: frame[0] = PUSH_CODE_MSG_WAITING; // send push 'tickle' _serial->writeFrame(frame, 1); } else { - soundBuzzer(); + #ifdef DISPLAY_CLASS + ui_task.soundBuzzer(); + #endif } #ifdef DISPLAY_CLASS ui_task.newMsg(path_len, "Public", text, offline_queue_len); @@ -1563,10 +1555,6 @@ public: ui_task.setHasConnection(_serial->isConnected()); ui_task.loop(); #endif - - #ifdef PIN_BUZZER - if (buzzer.isPlaying()) buzzer.loop(); - #endif } }; @@ -1634,10 +1622,6 @@ void setup() { board.begin(); -#ifdef PIN_BUZZER - buzzer.begin(); -#endif - #ifdef DISPLAY_CLASS DisplayDriver* disp = NULL; if (display.begin()) { diff --git a/examples/companion_radio/buzzer.cpp b/src/helpers/ui/buzzer.cpp similarity index 100% rename from examples/companion_radio/buzzer.cpp rename to src/helpers/ui/buzzer.cpp diff --git a/examples/companion_radio/buzzer.h b/src/helpers/ui/buzzer.h similarity index 100% rename from examples/companion_radio/buzzer.h rename to src/helpers/ui/buzzer.h diff --git a/variants/t1000-e/platformio.ini b/variants/t1000-e/platformio.ini index e61ea939..00974208 100644 --- a/variants/t1000-e/platformio.ini +++ b/variants/t1000-e/platformio.ini @@ -51,6 +51,7 @@ build_flags = ${t1000-e.build_flags} -D PIN_BUZZER_EN=37 ; P1/5 - required for T1000-E build_src_filter = ${t1000-e.build_src_filter} + + + +<../examples/companion_radio/*.cpp> lib_deps = ${t1000-e.lib_deps} densaugeo/base64 @ ~1.4.0 diff --git a/variants/t114/variant.h b/variants/t114/variant.h index d4802341..a0fd2e4f 100644 --- a/variants/t114/variant.h +++ b/variants/t114/variant.h @@ -109,7 +109,7 @@ //////////////////////////////////////////////////////////////////////////////// // Buzzer -#define PIN_BUZZER (46) +// #define PIN_BUZZER (46) ////////////////////////////////////////////////////////////////////////////////