diff --git a/CMakeLists.txt b/CMakeLists.txt index 11174ba3..3d9234f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,6 +221,8 @@ if (WITH_PORTAUDIO) message(STATUS "Using system-installed PortAudio") else() set(PA_BUILD_SHARED_LIBS OFF CACHE BOOL "Build dynamic library" FORCE) + # don't - Furnace has its own implementation + set(PA_USE_JACK OFF CACHE BOOL "Enable support for JACK Audio Connection Kit" FORCE) add_subdirectory(extern/portaudio EXCLUDE_FROM_ALL) list(APPEND DEPENDENCIES_LIBRARIES PortAudio) message(STATUS "Using vendored PortAudio") diff --git a/src/gui/chanOsc.cpp b/src/gui/chanOsc.cpp index c5ccb4f3..4371d6fd 100644 --- a/src/gui/chanOsc.cpp +++ b/src/gui/chanOsc.cpp @@ -478,8 +478,6 @@ void FurnaceGUI::drawChanOsc() { needlePos-=phase; } chanOscPitch[ch]=(float)point/32.0f; - - needlePos-=displaySize; for (unsigned short i=0; i":settings.audioDevice; - if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) { - if (ImGui::Selectable("",settings.audioDevice.empty())) { - settings.audioDevice=""; - } - for (String& i: e->getAudioDevices()) { - if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) { - settings.audioDevice=i; + if (audioEngineChanged) { + ImGui::BeginDisabled(); + if (ImGui::BeginCombo("##AudioDevice","")) { + ImGui::Text("ALERT - TRESPASSER DETECTED"); + if (ImGui::IsItemHovered()) { + showError("you have been arrested for trying to engage with a disabled combo box."); + ImGui::CloseCurrentPopup(); } + ImGui::EndCombo(); + } + ImGui::EndDisabled(); + } else { + String audioDevName=settings.audioDevice.empty()?"":settings.audioDevice; + if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) { + if (ImGui::Selectable("",settings.audioDevice.empty())) { + settings.audioDevice=""; + } + for (String& i: e->getAudioDevices()) { + if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) { + settings.audioDevice=i; + } + } + ImGui::EndCombo(); } - ImGui::EndCombo(); } ImGui::TableNextRow(); @@ -3031,6 +3045,7 @@ void FurnaceGUI::drawSettings() { ImGui::SameLine(); if (ImGui::Button("Cancel##SettingsCancel")) { settingsOpen=false; + audioEngineChanged=false; syncSettings(); } ImGui::SameLine(); @@ -3057,7 +3072,7 @@ void FurnaceGUI::syncSettings() { settings.patFontSize=e->getConfInt("patFontSize",18); settings.iconSize=e->getConfInt("iconSize",16); settings.audioEngine=(e->getConfString("audioEngine","SDL")=="SDL")?1:0; - if (e->getConfString("audioEngine","SDL")=="PortAudio") { + if (e->getConfString("audioEngine","SDL")=="JACK") { settings.audioEngine=DIV_AUDIO_JACK; } else if (e->getConfString("audioEngine","SDL")=="PortAudio") { settings.audioEngine=DIV_AUDIO_PORTAUDIO; @@ -3690,6 +3705,8 @@ void FurnaceGUI::commitSettings() { } else { rend->createFontsTexture(); } + + audioEngineChanged=false; } bool FurnaceGUI::importColors(String path) {