audio settings

This commit is contained in:
MihailRis 2024-03-12 23:13:54 +03:00
parent fb109e0ce2
commit 9150af19ea
3 changed files with 22 additions and 1 deletions

View File

@ -56,7 +56,7 @@ Engine::Engine(EngineSettings& settings, EnginePaths* paths)
if (Window::initialize(settings.display)){
throw initialize_error("could not initialize window");
}
audio::initialize(true);
audio::initialize(settings.audio.enabled);
audio::create_channel("regular");
audio::create_channel("music");
audio::create_channel("ambient");

View File

@ -13,6 +13,15 @@
toml::Wrapper* create_wrapper(EngineSettings& settings) {
std::unique_ptr<toml::Wrapper> wrapper (new toml::Wrapper());
toml::Section& audio = wrapper->add("audio");
audio.add("enabled", &settings.audio.enabled);
audio.add("volume-master", &settings.audio.volumeMaster);
audio.add("volume-regular", &settings.audio.volumeRegular);
audio.add("volume-ui", &settings.audio.volumeUI);
audio.add("volume-ambient", &settings.audio.volumeAmbient);
audio.add("volume-music", &settings.audio.volumeMusic);
toml::Section& display = wrapper->add("display");
display.add("fullscreen", &settings.display.fullscreen);
display.add("width", &settings.display.width);

View File

@ -6,6 +6,17 @@
#include "constants.h"
#include "typedefs.h"
struct AudioSettings {
/// @brief try to initialize AL backend
bool enabled = true;
float volumeMaster = 1.0f;
float volumeRegular = 1.0f;
float volumeUI = 1.0f;
float volumeAmbient = 1.0f;
float volumeMusic = 1.0f;
};
struct DisplaySettings {
/// @brief Is window in full screen mode
bool fullscreen = false;
@ -67,6 +78,7 @@ struct UiSettings {
};
struct EngineSettings {
AudioSettings audio;
DisplaySettings display;
ChunksSettings chunks;
CameraSettings camera;