Skip to content

Commit 43025b8

Browse files
AudioManager: apply device change without reboot
1 parent 05bbdec commit 43025b8

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

  • internal_filesystem/builtin/apps/com.micropythonos.settings.audio/assets

internal_filesystem/builtin/apps/com.micropythonos.settings.audio/assets/audio_settings.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,24 @@
11
from mpos import AudioManager, Intent, SettingsActivity, SharedPreferences
22

33

4+
def _apply_input_device(name):
5+
if not name:
6+
return
7+
for device in AudioManager.get_inputs():
8+
if device.name == name:
9+
AudioManager.set_default_input(device)
10+
return
11+
12+
13+
def _apply_output_device(name):
14+
if not name:
15+
return
16+
for device in AudioManager.get_outputs():
17+
if device.name == name:
18+
AudioManager.set_default_output(device)
19+
return
20+
21+
422
class AudioSettings(SettingsActivity):
523
PREFS_NAMESPACE = "com.micropythonos.settings.audio"
624

@@ -32,13 +50,15 @@ def getIntent(self):
3250
"ui": "radiobuttons",
3351
"ui_options": input_options,
3452
"default_value": default_input.name if default_input else "",
53+
"changed_callback": _apply_input_device,
3554
},
3655
{
3756
"title": "Output Device",
3857
"key": "output_device",
3958
"ui": "radiobuttons",
4059
"ui_options": output_options,
4160
"default_value": default_output.name if default_output else "",
61+
"changed_callback": _apply_output_device,
4262
},
4363
],
4464
)

0 commit comments

Comments
 (0)