mirror of
https://github.com/meshtastic/firmware.git
synced 2026-09-29 01:36:26 -04:00
Full T-echo card support + Compact UI (#11342)
* T-echo card * Update NRF52I2SOutput.cpp * Update NRF52I2SOutput.h * cleanup * Update buzz.cpp * use consistent runtime compact-panel check instead of mixing with compile-time macro * Update NodeDB.cpp * Update ExternalNotificationModule.cpp * switched to Throttle::isWithinTimespanMs * Update SharedUIDisplay.h * trunk fix * last cleanup * ClockRenderer.cpp for OLED_COMPACT_UI and setup Unit C6L for new UI. * Fixed regressions in standard OLED and TFT --------- Co-authored-by: Jason P <applewiz@mac.com>
This commit is contained in:
1 parent
d89f3eb8fc
commit
39e7aa6a6c
26 files changed
+1231
-186
No files matched your search
@@ -40,6 +40,10 @@ bool ascending = true;
|
||||
#define PIN_BUZZER false
|
||||
#endif
|
||||
|
||||
#if defined(HAS_I2S_SPEAKER_NRF52)
|
||||
#include "platform/nrf52/NRF52RtttlPlayer.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
Documentation:
|
||||
https://meshtastic.org/docs/configuration/module/external-notification
|
||||
@@ -77,6 +81,9 @@ int32_t ExternalNotificationModule::runOnce()
|
||||
#ifdef HAS_I2S
|
||||
// audioThread->isPlaying() also handles actually playing the RTTTL, needs to be called in loop
|
||||
isRtttlPlaying = isRtttlPlaying || audioThread->isPlaying();
|
||||
#endif
|
||||
#if defined(HAS_I2S_SPEAKER_NRF52)
|
||||
isRtttlPlaying = isRtttlPlaying || nrf52RtttlPlayer.isPlaying();
|
||||
#endif
|
||||
if ((nagCycleCutoff < millis()) && !isRtttlPlaying) {
|
||||
// Turn off external notification immediately when timeout is reached, regardless of song state
|
||||
@@ -145,6 +152,17 @@ int32_t ExternalNotificationModule::runOnce()
|
||||
// we need fast updates to play the RTTTL
|
||||
delay = EXT_NOTIFICATION_FAST_THREAD_MS;
|
||||
}
|
||||
#endif
|
||||
#if defined(HAS_I2S_SPEAKER_NRF52)
|
||||
// Play RTTTL over the I2S speaker (no piezo on this board).
|
||||
if (canBuzz() && buzzerShouldAlert) {
|
||||
if (nrf52RtttlPlayer.isPlaying()) {
|
||||
nrf52RtttlPlayer.play();
|
||||
} else if (isNagging && (nagCycleCutoff >= millis())) {
|
||||
nrf52RtttlPlayer.begin(rtttlConfig.ringtone);
|
||||
}
|
||||
delay = EXT_NOTIFICATION_FAST_THREAD_MS;
|
||||
}
|
||||
#endif
|
||||
// now let the PWM buzzer play
|
||||
if (moduleConfig.external_notification.use_pwm && config.device.buzzer_gpio && canBuzz() && buzzerShouldAlert) {
|
||||
@@ -264,6 +282,9 @@ void ExternalNotificationModule::stopNow()
|
||||
#ifdef HAS_I2S
|
||||
LOG_INFO("Stop audioThread playback");
|
||||
audioThread->stop();
|
||||
#endif
|
||||
#if defined(HAS_I2S_SPEAKER_NRF52)
|
||||
nrf52RtttlPlayer.stop();
|
||||
#endif
|
||||
// Turn off all outputs
|
||||
LOG_INFO("Turning off setExternalStates");
|
||||
|
||||
Reference in new issue
Block a user