| @@ -279,10 +279,11 @@ void PaulstretchpluginAudioProcessorEditor::chooseFile() | |||||
| void PaulstretchpluginAudioProcessorEditor::showSettingsMenu() | void PaulstretchpluginAudioProcessorEditor::showSettingsMenu() | ||||
| { | { | ||||
| PopupMenu menu; | PopupMenu menu; | ||||
| menu.addItem(4, "Reset parameters", true, false); | |||||
| menu.addItem(1, "Play when host transport running", true, processor.m_play_when_host_plays); | menu.addItem(1, "Play when host transport running", true, processor.m_play_when_host_plays); | ||||
| menu.addItem(2, "Capture when host transport running", true, processor.m_capture_when_host_plays); | menu.addItem(2, "Capture when host transport running", true, processor.m_capture_when_host_plays); | ||||
| //menu.addItem(3, "Prebuffering", true, processor.m_use_backgroundbuffering); | |||||
| PopupMenu bufferingmenu; | PopupMenu bufferingmenu; | ||||
| int curbufamount = processor.getPreBufferAmount(); | int curbufamount = processor.getPreBufferAmount(); | ||||
| bufferingmenu.addItem(100,"None",true,curbufamount == -1); | bufferingmenu.addItem(100,"None",true,curbufamount == -1); | ||||
| @@ -302,6 +303,10 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu() | |||||
| { | { | ||||
| processor.m_capture_when_host_plays = !processor.m_capture_when_host_plays; | processor.m_capture_when_host_plays = !processor.m_capture_when_host_plays; | ||||
| } | } | ||||
| if (r == 4) | |||||
| { | |||||
| processor.resetParameters(); | |||||
| } | |||||
| if (r == 3) | if (r == 3) | ||||
| { | { | ||||
| String fftlib = fftwf_version; | String fftlib = fftwf_version; | ||||
| @@ -160,6 +160,9 @@ PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() | |||||
| addParameter(new AudioParameterBool("pause_enabled0", "Pause", false)); // 28 | addParameter(new AudioParameterBool("pause_enabled0", "Pause", false)); // 28 | ||||
| addParameter(new AudioParameterFloat("maxcapturelen_0", "Max capture length", 1.0f, 120.0f, 10.0f)); // 29 | addParameter(new AudioParameterFloat("maxcapturelen_0", "Max capture length", 1.0f, 120.0f, 10.0f)); // 29 | ||||
| addParameter(new AudioParameterBool("passthrough0", "Pass input through", false)); // 30 | addParameter(new AudioParameterBool("passthrough0", "Pass input through", false)); // 30 | ||||
| auto& pars = getParameters(); | |||||
| for (const auto& p : pars) | |||||
| m_reset_pars.push_back(p->getValue()); | |||||
| setPreBufferAmount(2); | setPreBufferAmount(2); | ||||
| startTimer(1, 50); | startTimer(1, 50); | ||||
| } | } | ||||
| @@ -170,6 +173,16 @@ PaulstretchpluginAudioProcessor::~PaulstretchpluginAudioProcessor() | |||||
| m_bufferingthread.stopThread(1000); | m_bufferingthread.stopThread(1000); | ||||
| } | } | ||||
| void PaulstretchpluginAudioProcessor::resetParameters() | |||||
| { | |||||
| ScopedLock locker(m_cs); | |||||
| for (int i = 0; i < m_reset_pars.size(); ++i) | |||||
| { | |||||
| if (i!=cpi_main_volume && i!=cpi_passthrough) | |||||
| setParameter(i, m_reset_pars[i]); | |||||
| } | |||||
| } | |||||
| void PaulstretchpluginAudioProcessor::setPreBufferAmount(int x) | void PaulstretchpluginAudioProcessor::setPreBufferAmount(int x) | ||||
| { | { | ||||
| int temp = jlimit(0, 5, x); | int temp = jlimit(0, 5, x); | ||||
| @@ -80,10 +80,11 @@ public: | |||||
| std::unique_ptr<PropertiesFile> m_props_file; | std::unique_ptr<PropertiesFile> m_props_file; | ||||
| }; | }; | ||||
| class PaulstretchpluginAudioProcessor : public AudioProcessor, public MultiTimer | |||||
| class PaulstretchpluginAudioProcessor : public AudioProcessor, | |||||
| public MultiTimer | |||||
| { | { | ||||
| public: | public: | ||||
| //============================================================================== | |||||
| PaulstretchpluginAudioProcessor(); | PaulstretchpluginAudioProcessor(); | ||||
| ~PaulstretchpluginAudioProcessor(); | ~PaulstretchpluginAudioProcessor(); | ||||
| @@ -140,7 +141,7 @@ public: | |||||
| bool m_play_when_host_plays = false; | bool m_play_when_host_plays = false; | ||||
| bool m_capture_when_host_plays = false; | bool m_capture_when_host_plays = false; | ||||
| bool m_use_backgroundbuffering = true; | bool m_use_backgroundbuffering = true; | ||||
| void resetParameters(); | |||||
| void setPreBufferAmount(int x); | void setPreBufferAmount(int x); | ||||
| int getPreBufferAmount(); | int getPreBufferAmount(); | ||||
| private: | private: | ||||
| @@ -178,6 +179,7 @@ private: | |||||
| double m_cur_sr = 0.0; | double m_cur_sr = 0.0; | ||||
| bool m_last_host_playing = false; | bool m_last_host_playing = false; | ||||
| AudioBuffer<float> m_input_buffer; | AudioBuffer<float> m_input_buffer; | ||||
| std::vector<float> m_reset_pars; | |||||
| //============================================================================== | //============================================================================== | ||||
| JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor) | ||||
| }; | }; | ||||