add 'audio.input-device' setting

This commit is contained in:
MihailRis 2025-11-21 22:32:19 +03:00
parent 8cfff09c0b
commit 0f0e00cdde
4 changed files with 8 additions and 1 deletions

View File

@ -54,7 +54,7 @@ function on_open()
create_setting("audio.volume-music", "Music", 0.01)
document.root:add("<label context='settings'>@Microphone</label>")
document.root:add("<select id='input_device_select' "..
"onselect='function(opt) audio.__set_input_device(opt) end'/>")
"onselect='function(opt) core.set_setting(\"audio.input-device\", opt) end'/>")
document.root:add("<container id='input_volume_outer' color='#000000' size='4'>"
.."<container id='input_volume_inner' color='#00FF00FF' pos='1' size='2'/>"
.."</container>")

View File

@ -175,6 +175,10 @@ void Engine::initialize(CoreParameters coreParameters) {
langs::setup(lang, paths->resPaths.collectRoots());
}, true));
keepAlive(settings.audio.inputDevice.observe([](auto name) {
audio::set_input_device(name == "auto" ? "" : name);
}, true));
project->loadProjectStartScript();
if (!params.headless) {
project->loadProjectClientScript();

View File

@ -43,6 +43,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
builder.add("volume-ui", &settings.audio.volumeUI);
builder.add("volume-ambient", &settings.audio.volumeAmbient);
builder.add("volume-music", &settings.audio.volumeMusic);
builder.add("input-device", &settings.audio.inputDevice);
builder.section("display");
builder.add("width", &settings.display.width);

View File

@ -16,6 +16,8 @@ struct AudioSettings {
NumberSetting volumeUI {1.0f, 0.0f, 1.0f, setting_format::percent};
NumberSetting volumeAmbient {1.0f, 0.0f, 1.0f, setting_format::percent};
NumberSetting volumeMusic {1.0f, 0.0f, 1.0f, setting_format::percent};
StringSetting inputDevice {"auto"};
};
struct DisplaySettings {