improve audio settings
This commit is contained in:
parent
89921b1ff3
commit
b993d4b58d
|
@ -720,10 +720,15 @@ void FurnaceGUI::drawSettings() {
|
||||||
CONFIG_SECTION("Audio") {
|
CONFIG_SECTION("Audio") {
|
||||||
// SUBSECTION OUTPUT
|
// SUBSECTION OUTPUT
|
||||||
CONFIG_SUBSECTION("Output");
|
CONFIG_SUBSECTION("Output");
|
||||||
|
if (ImGui::BeginTable("##Output",2)) {
|
||||||
|
ImGui::TableSetupColumn("##Label",ImGuiTableColumnFlags_WidthFixed);
|
||||||
|
ImGui::TableSetupColumn("##Combo",ImGuiTableColumnFlags_WidthStretch);
|
||||||
#ifdef HAVE_JACK
|
#ifdef HAVE_JACK
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Backend");
|
ImGui::Text("Backend");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
int prevAudioEngine=settings.audioEngine;
|
int prevAudioEngine=settings.audioEngine;
|
||||||
if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) {
|
if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) {
|
||||||
if (settings.audioEngine!=prevAudioEngine) {
|
if (settings.audioEngine!=prevAudioEngine) {
|
||||||
|
@ -732,10 +737,12 @@ void FurnaceGUI::drawSettings() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
if (settings.audioEngine==DIV_AUDIO_SDL) {
|
if (settings.audioEngine==DIV_AUDIO_SDL) {
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Driver");
|
ImGui::Text("Driver");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) {
|
if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) {
|
||||||
if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) {
|
if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) {
|
||||||
settings.sdlAudioDriver="";
|
settings.sdlAudioDriver="";
|
||||||
|
@ -752,9 +759,11 @@ void FurnaceGUI::drawSettings() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Device");
|
ImGui::Text("Device");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
String audioDevName=settings.audioDevice.empty()?"<System default>":settings.audioDevice;
|
String audioDevName=settings.audioDevice.empty()?"<System default>":settings.audioDevice;
|
||||||
if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) {
|
if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) {
|
||||||
if (ImGui::Selectable("<System default>",settings.audioDevice.empty())) {
|
if (ImGui::Selectable("<System default>",settings.audioDevice.empty())) {
|
||||||
|
@ -768,9 +777,11 @@ void FurnaceGUI::drawSettings() {
|
||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Sample rate");
|
ImGui::Text("Sample rate");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
String sr=fmt::sprintf("%d",settings.audioRate);
|
String sr=fmt::sprintf("%d",settings.audioRate);
|
||||||
if (ImGui::BeginCombo("##SampleRate",sr.c_str())) {
|
if (ImGui::BeginCombo("##SampleRate",sr.c_str())) {
|
||||||
SAMPLE_RATE_SELECTABLE(8000);
|
SAMPLE_RATE_SELECTABLE(8000);
|
||||||
|
@ -785,9 +796,12 @@ void FurnaceGUI::drawSettings() {
|
||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
if (isProAudio[settings.audioEngine]) {
|
if (isProAudio[settings.audioEngine]) {
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Outputs");
|
ImGui::Text("Outputs");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) {
|
if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) {
|
||||||
if (settings.audioChans<1) settings.audioChans=1;
|
if (settings.audioChans<1) settings.audioChans=1;
|
||||||
if (settings.audioChans>16) settings.audioChans=16;
|
if (settings.audioChans>16) settings.audioChans=16;
|
||||||
|
@ -795,7 +809,7 @@ void FurnaceGUI::drawSettings() {
|
||||||
} else {
|
} else {
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Channels");
|
ImGui::Text("Channels");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1];
|
String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1];
|
||||||
if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) {
|
if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) {
|
||||||
CHANS_SELECTABLE(1);
|
CHANS_SELECTABLE(1);
|
||||||
|
@ -807,9 +821,11 @@ void FurnaceGUI::drawSettings() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
ImGui::AlignTextToFramePadding();
|
ImGui::AlignTextToFramePadding();
|
||||||
ImGui::Text("Buffer size");
|
ImGui::Text("Buffer size");
|
||||||
ImGui::SameLine();
|
ImGui::TableNextColumn();
|
||||||
String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate));
|
String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate));
|
||||||
if (ImGui::BeginCombo("##BufferSize",bs.c_str())) {
|
if (ImGui::BeginCombo("##BufferSize",bs.c_str())) {
|
||||||
BUFFER_SIZE_SELECTABLE(64);
|
BUFFER_SIZE_SELECTABLE(64);
|
||||||
|
@ -820,6 +836,8 @@ void FurnaceGUI::drawSettings() {
|
||||||
BUFFER_SIZE_SELECTABLE(2048);
|
BUFFER_SIZE_SELECTABLE(2048);
|
||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
|
ImGui::EndTable();
|
||||||
|
}
|
||||||
|
|
||||||
bool lowLatencyB=settings.lowLatency;
|
bool lowLatencyB=settings.lowLatency;
|
||||||
if (ImGui::Checkbox("Low-latency mode (experimental!)",&lowLatencyB)) {
|
if (ImGui::Checkbox("Low-latency mode (experimental!)",&lowLatencyB)) {
|
||||||
|
|
Loading…
Reference in a new issue