Buzzer: add playForced(); fix per-channel force-on notification ignoring global mute

buzzer.play() was returning early when _is_quiet=true, so channels with
explicit notification=ON were silent even though the logic correctly set
play=true. playForced() bypasses the quiet check for these overrides.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-11 21:17:31 +02:00
parent 1281ec5c35
commit 9d92fb62df
3 changed files with 18 additions and 12 deletions

View File

@@ -15,18 +15,18 @@ void genericBuzzer::begin() {
}
void genericBuzzer::play(const char *melody) {
if (isPlaying()) // interrupt existing
{
rtttl::stop();
}
if (isPlaying()) rtttl::stop();
if (_is_quiet) return;
rtttl::begin(PIN_BUZZER,melody);
rtttl::begin(PIN_BUZZER, melody);
// Serial.print("DBG: Playing melody - isQuiet: ");
// Serial.println(isQuiet());
}
void genericBuzzer::playForced(const char *melody) {
if (isPlaying()) rtttl::stop();
rtttl::begin(PIN_BUZZER, melody);
}
bool genericBuzzer::isPlaying() {
return rtttl::isPlaying();
}