mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-08-02 18:26:11 +00:00
feat: melody assignment per channel/DM, dual ringtone slots, volume cleanup
Add second ringtone slot (ringtone2_*) to NodePrefs and DataStore. Add per-channel and per-DM melody assignment (built-in / melody 1 / 2) stored in NodePrefs bitmasks and DmMelodyEntry table. Settings screen exposes DM/CH sound items; RingtoneEditorScreen supports switching between slots. notify() uses buildMelodyFromPrefs() to select the correct RTTTL string per contact. Remove broken nRF52 volume control from buzzer.cpp: tone() uses NRF_PWM2 with DECODER.MODE=Auto so TASKS_NEXTSTEP has no effect and duty cannot be changed before the first DMA read without patching the Arduino core. applyVolume() is now a no-op on nRF52. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
39731bb7fa
commit
b3c6416874
@@ -62,4 +62,18 @@ struct NodePrefs { // persisted to file
|
||||
DmNotifEntry dm_notif[DM_NOTIF_TABLE_MAX]; // 16*5 = 80 bytes
|
||||
uint8_t dashboard_fields[3]; // 0=None,1=Batt,2=Temp,3=Hum,4=Pres,5=GPS,6=Alt,7=Lux,8=CO2,9=Nodes
|
||||
uint32_t advert_auto_interval_sec; // periodic 0-hop advert with GPS: 0=off, else seconds
|
||||
// Second melody slot (same packing as ringtone_*)
|
||||
uint8_t ringtone2_bpm_idx;
|
||||
uint8_t ringtone2_len;
|
||||
uint8_t ringtone2_notes[32];
|
||||
// Global melody for notifications: 0=built-in, 1=melody1, 2=melody2
|
||||
uint8_t notif_melody_dm;
|
||||
uint8_t notif_melody_ch;
|
||||
// Per-channel melody override (2 bitmasks, 1 bit per channel)
|
||||
uint64_t ch_notif_melody_set; // bit i = channel i has explicit melody
|
||||
uint64_t ch_notif_melody_2; // bit i = use melody 2 (else melody 1, when set bit is set)
|
||||
// Per-DM melody table
|
||||
struct DmMelodyEntry { uint8_t prefix[4]; uint8_t slot; }; // slot: 0=global,1=melody1,2=melody2
|
||||
static const int DM_MELODY_TABLE_MAX = 16;
|
||||
DmMelodyEntry dm_melody[DM_MELODY_TABLE_MAX];
|
||||
};
|
||||
Reference in New Issue
Block a user