feat: audio - add concurrent mixing, output switching, and device-aware UI

This commit is contained in:
2026-07-29 20:03:35 +01:00
parent d99dab45e5
commit 86de3400a9
25 changed files with 688 additions and 209 deletions
+12
View File
@@ -401,6 +401,8 @@ void gui::desktop_init(DesktopState* ds) {
ds->vol_dragging = false;
ds->vol_last_poll = montauk::get_milliseconds();
ds->vol_serial = montauk::audio_wait(0, 0);
ds->vol_output = montauk::audio_get_output(-1);
ds->vol_bt_status = montauk::audio_bt_status(-1);
ds->closing_ext_count = 0;
@@ -491,6 +493,8 @@ static bool desktop_refresh_panel_state(DesktopState* ds, uint64_t now) {
ds->vol_serial = serial;
int v = montauk::audio_get_master_volume();
bool muted = montauk::audio_get_master_mute() == 1;
int output = montauk::audio_get_output(-1);
int btStatus = montauk::audio_bt_status(-1);
if (v >= 0 && v != ds->vol_level) {
ds->vol_level = v;
changed = true;
@@ -499,6 +503,14 @@ static bool desktop_refresh_panel_state(DesktopState* ds, uint64_t now) {
ds->vol_muted = muted;
changed = true;
}
if (output >= 0 && output != ds->vol_output) {
ds->vol_output = output;
changed = true;
}
if (btStatus != ds->vol_bt_status) {
ds->vol_bt_status = btStatus;
changed = true;
}
}
ds->vol_last_poll = now;
}