From 4f96ec47cd95aa89d19c35a177e10d41498d51cd Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 21 Nov 2025 19:14:04 +0300 Subject: [PATCH 1/6] fix warnings --- src/audio/AL/ALAudio.cpp | 3 +-- src/audio/AL/ALAudio.hpp | 1 - src/logic/LevelController.cpp | 3 +-- src/logic/LevelController.hpp | 1 - 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/audio/AL/ALAudio.cpp b/src/audio/AL/ALAudio.cpp index e38c0f16..048a8630 100644 --- a/src/audio/AL/ALAudio.cpp +++ b/src/audio/AL/ALAudio.cpp @@ -74,8 +74,7 @@ ALInputDevice::ALInputDevice( uint bitsPerSample, uint sampleRate ) - : al(al), - device(device), + : device(device), channels(channels), bitsPerSample(bitsPerSample), sampleRate(sampleRate) { diff --git a/src/audio/AL/ALAudio.hpp b/src/audio/AL/ALAudio.hpp index f154741f..5642f222 100644 --- a/src/audio/AL/ALAudio.hpp +++ b/src/audio/AL/ALAudio.hpp @@ -108,7 +108,6 @@ namespace audio { size_t read(char* buffer, size_t bufferSize) override; private: - ALAudio* al; ALCdevice* device; uint channels; uint bitsPerSample; diff --git a/src/logic/LevelController.cpp b/src/logic/LevelController.cpp index c8bf1a24..5851fada 100644 --- a/src/logic/LevelController.cpp +++ b/src/logic/LevelController.cpp @@ -27,8 +27,7 @@ LevelController::LevelController( : settings(engine->getSettings()), level(std::move(levelPtr)), chunks(std::make_unique(*level)), - playerTickClock(20, 3), - localPlayer(clientPlayer) { + playerTickClock(20, 3) { level->events->listen(LevelEventType::CHUNK_PRESENT, [](auto, Chunk* chunk) { scripting::on_chunk_present(*chunk, chunk->flags.loaded); diff --git a/src/logic/LevelController.hpp b/src/logic/LevelController.hpp index c7b98623..60f50bf2 100644 --- a/src/logic/LevelController.hpp +++ b/src/logic/LevelController.hpp @@ -20,7 +20,6 @@ class LevelController { std::unique_ptr chunks; util::Clock playerTickClock; - Player* localPlayer; public: LevelController(Engine* engine, std::unique_ptr level, Player* clientPlayer); From 96bc395561727d0f6f5c446ca5249a8fdb9b125a Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 21 Nov 2025 20:34:33 +0300 Subject: [PATCH 2/6] update audio lib --- res/layouts/pages/settings_audio.xml.lua | 8 ++++---- res/scripts/stdlib.lua | 1 + src/logic/scripting/lua/libs/libaudio.cpp | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/res/layouts/pages/settings_audio.xml.lua b/res/layouts/pages/settings_audio.xml.lua index 29859819..95166930 100644 --- a/res/layouts/pages/settings_audio.xml.lua +++ b/res/layouts/pages/settings_audio.xml.lua @@ -29,7 +29,7 @@ local initialized = false function on_open() if not initialized then initialized = true - local token = audio.input.__get_core_token() + local token = core.get_core_token() document.root:add("") local prev_amplitude = 0.0 document.tm:setInterval(16, function() @@ -54,16 +54,16 @@ function on_open() create_setting("audio.volume-music", "Music", 0.01) document.root:add("") document.root:add("") + "onselect='function(opt) core.set_setting(\"audio.input-device\", opt) end'/>") document.root:add("" .."" .."") diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index 67ff6797..4239531e 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -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(); diff --git a/src/io/settings_io.cpp b/src/io/settings_io.cpp index 6e94db9f..e0e423b0 100644 --- a/src/io/settings_io.cpp +++ b/src/io/settings_io.cpp @@ -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); diff --git a/src/settings.hpp b/src/settings.hpp index 9b3fa363..b47c47aa 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -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 { From 2f01db8e8b1ecd7e9fa307890e744d1f33b28ed5 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 21 Nov 2025 22:33:51 +0300 Subject: [PATCH 5/6] rename --- src/io/settings_io.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/io/settings_io.cpp b/src/io/settings_io.cpp index e0e423b0..bc9d3c0a 100644 --- a/src/io/settings_io.cpp +++ b/src/io/settings_io.cpp @@ -22,7 +22,7 @@ struct SectionsBuilder { : map(map), sections(sections) { } - void section(std::string name) { + void addSection(std::string name) { sections.push_back(Section {std::move(name), {}}); } @@ -36,7 +36,7 @@ struct SectionsBuilder { SettingsHandler::SettingsHandler(EngineSettings& settings) { SectionsBuilder builder(map, sections); - builder.section("audio"); + builder.addSection("audio"); builder.add("enabled", &settings.audio.enabled, false); builder.add("volume-master", &settings.audio.volumeMaster); builder.add("volume-regular", &settings.audio.volumeRegular); @@ -45,7 +45,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) { builder.add("volume-music", &settings.audio.volumeMusic); builder.add("input-device", &settings.audio.inputDevice); - builder.section("display"); + builder.addSection("display"); builder.add("width", &settings.display.width); builder.add("height", &settings.display.height); builder.add("samples", &settings.display.samples); @@ -54,19 +54,19 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) { builder.add("window-mode", &settings.display.windowMode); builder.add("adaptive-menu-fps", &settings.display.adaptiveFpsInMenu); - builder.section("camera"); + builder.addSection("camera"); builder.add("sensitivity", &settings.camera.sensitivity); builder.add("fov", &settings.camera.fov); builder.add("fov-effects", &settings.camera.fovEffects); builder.add("shaking", &settings.camera.shaking); builder.add("inertia", &settings.camera.inertia); - builder.section("chunks"); + builder.addSection("chunks"); builder.add("load-distance", &settings.chunks.loadDistance); builder.add("load-speed", &settings.chunks.loadSpeed); builder.add("padding", &settings.chunks.padding); - builder.section("graphics"); + builder.addSection("graphics"); builder.add("fog-curve", &settings.graphics.fogCurve); builder.add("backlight", &settings.graphics.backlight); builder.add("dense-render", &settings.graphics.denseRender); @@ -82,14 +82,14 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) { builder.add("dense-render-distance", &settings.graphics.denseRenderDistance); builder.add("soft-lighting", &settings.graphics.softLighting); - builder.section("ui"); + builder.addSection("ui"); builder.add("language", &settings.ui.language); builder.add("world-preview-size", &settings.ui.worldPreviewSize); - builder.section("pathfinding"); + builder.addSection("pathfinding"); builder.add("steps-per-async-agent", &settings.pathfinding.stepsPerAsyncAgent); - builder.section("debug"); + builder.addSection("debug"); builder.add("generator-test-mode", &settings.debug.generatorTestMode); builder.add("do-write-lights", &settings.debug.doWriteLights); builder.add("do-trace-shaders", &settings.debug.doTraceShaders); From 6cee20ed8677c27051df8b864231ebe360af6000 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 21 Nov 2025 22:34:39 +0300 Subject: [PATCH 6/6] remove audio.__set_input_device --- src/logic/scripting/lua/libs/libaudio.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/logic/scripting/lua/libs/libaudio.cpp b/src/logic/scripting/lua/libs/libaudio.cpp index 9a67c913..ba8595af 100644 --- a/src/logic/scripting/lua/libs/libaudio.cpp +++ b/src/logic/scripting/lua/libs/libaudio.cpp @@ -431,12 +431,6 @@ static int l_audio_get_output_devices_names(lua::State* L) { return 1; } -static int l_audio_set_input_device(lua::State* L) { - auto device_name = lua::tostring(L, 1); - audio::set_input_device(device_name); - return 0; -} - static int l_audio_get_input_info(lua::State* L) { auto device = audio::get_input_device(); if (device == nullptr) { @@ -482,7 +476,6 @@ const luaL_Reg audiolib[] = { {"__fetch_input", lua::wrap}, {"__get_input_devices_names", lua::wrap}, {"__get_output_devices_names", lua::wrap}, - {"__set_input_device", lua::wrap}, {"__get_input_info", lua::wrap}, {nullptr, nullptr} };