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