Add option to choose between low latency and stable audio
Some checks failed
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:linux32 flags:32 name:Linux GCC 32 os:ubuntu-latest]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:linux64 flags:64 name:Linux GCC x64 os:ubuntu-latest]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:linuxarm32 flags:arm32 name:Linux GCC ARM 32 os:ubuntu-latest]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:linuxarm64 flags:arm64 name:Linux GCC ARM 64 os:ubuntu-latest]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:macos name:macOS Apple Silicon os:macos-14]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:win32 flags:-A Win32 name:Windows VS2022 Win32 os:windows-2022]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:win64 flags:-A x64 name:Windows VS2022 x64 os:windows-2022]) (push) Has been cancelled
CD / ${{ matrix.platform.name }} ${{ matrix.config.name }} (map[flags:-DBUILD_SHARED_LIBS=FALSE name:Static], map[artifact_name:winarm64 flags:-A ARM64 name:Windows VS2022 ARM os:windows-2022]) (push) Has been cancelled
CD / Create Pi Mono Setup (push) Has been cancelled
CD / Publishing (push) Has been cancelled

This commit is contained in:
Lorenzooone
2025-03-15 22:51:37 +01:00
parent c7e253211d
commit 82698d3376
6 changed files with 93 additions and 15 deletions

View File

@@ -15,6 +15,7 @@ void AudioData::reset() {
this->mute = false;
this->max_audio_latency = 2;
this->output_type = AUDIO_OUTPUT_STEREO;
this->mode_output = AUDIO_MODE_LOW_LATENCY;
this->restart_request = false;
this->text_updated = false;
this->output_device.preference_requested = false;
@@ -38,7 +39,17 @@ void AudioData::change_audio_output_type(bool is_change_positive) {
AudioOutputType initial_audio_output_type = this->output_type;
this->set_audio_output_type(this->output_type + change);
if(this->output_type != initial_audio_output_type)
this->update_text("Audio Output: " + this->get_audio_output_name());
this->update_text("Sound: " + this->get_audio_output_name());
}
void AudioData::change_audio_mode_output(bool is_change_positive) {
int change = 1;
if(!is_change_positive)
change = -1;
AudioMode initial_audio_mode_output = this->mode_output;
this->set_audio_mode_output(this->mode_output + change);
if(this->mode_output != initial_audio_mode_output)
this->update_text("Audio Priority: " + this->get_audio_mode_name());
}
void AudioData::change_audio_volume(bool is_change_positive) {
@@ -110,6 +121,10 @@ AudioOutputType AudioData::get_audio_output_type() {
return this->output_type;
}
AudioMode AudioData::get_audio_mode_output() {
return this->mode_output;
}
std::string AudioData::get_audio_output_name() {
std::string chosen_str = "";
switch(this->output_type) {
@@ -127,6 +142,23 @@ std::string AudioData::get_audio_output_name() {
return chosen_str;
}
std::string AudioData::get_audio_mode_name() {
std::string chosen_str = "";
switch(this->mode_output) {
case AUDIO_MODE_LOW_LATENCY:
chosen_str = "Low Latency";
break;
case AUDIO_MODE_STABLE:
chosen_str = "Stability";
break;
default:
this->mode_output = AUDIO_MODE_LOW_LATENCY;
chosen_str = "Low Latency";
break;
}
return chosen_str;
}
int AudioData::get_max_audio_latency() {
return this->max_audio_latency;
}
@@ -172,6 +204,10 @@ bool AudioData::load_audio_data(std::string key, std::string value) {
this->set_audio_output_type(std::stoi(value));
return true;
}
if (key == this->audio_mode_output_str) {
this->set_audio_mode_output(std::stoi(value));
return true;
}
if (key == this->device_request_str) {
this->output_device.preference_requested = std::stoi(value);
return true;
@@ -189,6 +225,7 @@ std::string AudioData::save_audio_data() {
out_str += this->volume_str + "=" + std::to_string(this->volume) + "\n";
out_str += this->max_audio_latency_str + "=" + std::to_string(this->max_audio_latency) + "\n";
out_str += this->output_type_str + "=" + std::to_string(this->output_type) + "\n";
out_str += this->audio_mode_output_str + "=" + std::to_string(this->mode_output) + "\n";
out_str += this->device_request_str + "=" + std::to_string(this->output_device.preference_requested) + "\n";
out_str += this->device_name_str + "=" + this->output_device.preferred + "\n";
return out_str;
@@ -210,6 +247,14 @@ void AudioData::set_audio_output_type(int new_value) {
this->output_type = static_cast<AudioOutputType>(new_value);
}
void AudioData::set_audio_mode_output(int new_value) {
if(new_value >= AUDIO_MODE_END)
new_value = 0;
if(new_value < 0)
new_value = AUDIO_MODE_END - 1;
this->mode_output = static_cast<AudioMode>(new_value);
}
void AudioData::set_audio_volume(int new_volume) {
if(new_volume < 0)
new_volume = 0;