Add menu actions and logic to deal with playing only when the host plays. Also seek to stretch source active time range beginning when starting play.
This commit is contained in:
parent
b6e46bd293
commit
7d8616ec70
@ -223,9 +223,17 @@ void PaulstretchpluginAudioProcessorEditor::chooseFile()
|
|||||||
void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
||||||
{
|
{
|
||||||
PopupMenu menu;
|
PopupMenu menu;
|
||||||
menu.addItem(1, "Foo 1", true, false);
|
menu.addItem(1, "Play when host transport running", true, processor.m_play_when_host_plays);
|
||||||
menu.addItem(2, "Foo 2", true, false);
|
menu.addItem(2, "Capture when host transport running", true, processor.m_capture_when_host_plays);
|
||||||
int r = menu.show();
|
int r = menu.show();
|
||||||
|
if (r == 1)
|
||||||
|
{
|
||||||
|
processor.m_play_when_host_plays = !processor.m_play_when_host_plays;
|
||||||
|
}
|
||||||
|
if (r == 2)
|
||||||
|
{
|
||||||
|
processor.m_capture_when_host_plays = !processor.m_capture_when_host_plays;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WaveformComponent::WaveformComponent(AudioFormatManager* afm)
|
WaveformComponent::WaveformComponent(AudioFormatManager* afm)
|
||||||
|
@ -381,6 +381,17 @@ void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, M
|
|||||||
}
|
}
|
||||||
jassert(m_buffering_source != nullptr);
|
jassert(m_buffering_source != nullptr);
|
||||||
jassert(m_bufferingthread.isThreadRunning());
|
jassert(m_bufferingthread.isThreadRunning());
|
||||||
|
if (m_last_host_playing == false && m_playposinfo.isPlaying)
|
||||||
|
{
|
||||||
|
m_stretch_source->seekPercent(*getFloatParameter(cpi_soundstart));
|
||||||
|
m_last_host_playing = true;
|
||||||
|
}
|
||||||
|
else if (m_last_host_playing == true && m_playposinfo.isPlaying == false)
|
||||||
|
{
|
||||||
|
m_last_host_playing = false;
|
||||||
|
}
|
||||||
|
if (m_play_when_host_plays == true && m_playposinfo.isPlaying == false)
|
||||||
|
return;
|
||||||
m_stretch_source->setMainVolume(*getFloatParameter(cpi_main_volume));
|
m_stretch_source->setMainVolume(*getFloatParameter(cpi_main_volume));
|
||||||
m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount));
|
m_stretch_source->setRate(*getFloatParameter(cpi_stretchamount));
|
||||||
|
|
||||||
|
@ -136,6 +136,8 @@ public:
|
|||||||
double getSampleRateChecked();
|
double getSampleRateChecked();
|
||||||
int m_abnormal_output_samples = 0;
|
int m_abnormal_output_samples = 0;
|
||||||
AudioPlayHead::CurrentPositionInfo m_playposinfo;
|
AudioPlayHead::CurrentPositionInfo m_playposinfo;
|
||||||
|
bool m_play_when_host_plays = false;
|
||||||
|
bool m_capture_when_host_plays = false;
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
@ -169,7 +171,7 @@ private:
|
|||||||
AudioParameterInt* m_outchansparam = nullptr;
|
AudioParameterInt* m_outchansparam = nullptr;
|
||||||
int m_curmaxblocksize = 0;
|
int m_curmaxblocksize = 0;
|
||||||
double m_cur_sr = 0.0;
|
double m_cur_sr = 0.0;
|
||||||
|
bool m_last_host_playing = false;
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessor)
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user