Plugin initialization bug existed also on Windows, fixed for now...Make the GUI poll for some state changes from the AudioProcessor, instead of the processor calling the GUI. When using memory buffer in input source, copy all channels to xfade buffer. Some other tweaks.

This commit is contained in:
xenakios
2017-11-16 16:58:04 +02:00
parent 84e564b393
commit 43be82edc8
6 changed files with 30 additions and 14 deletions

View File

@ -46,6 +46,7 @@ PaulstretchpluginAudioProcessorEditor::PaulstretchpluginAudioProcessorEditor (Pa
};
m_wavecomponent.ShowFileCacheRange = true;
startTimer(1, 100);
startTimer(2, 1000);
m_wavecomponent.startTimer(100);
}
@ -113,6 +114,14 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id)
double prebufavail=processor.m_control->getPreBufferingPercent();
m_info_label.setText(String(prebufavail,1), dontSendNotification);
}
if (id == 2)
{
if (processor.getAudioFile() != File() && processor.getAudioFile() != m_wavecomponent.getAudioFile())
{
m_wavecomponent.setAudioFile(processor.getAudioFile());
}
m_wavecomponent.setTimeSelection(processor.getTimeSelection());
}
}
void PaulstretchpluginAudioProcessorEditor::setAudioFile(File f)
@ -264,6 +273,7 @@ void WaveformComponent::setAudioFile(File f)
else
{
m_thumb->setSource(nullptr);
m_curfile = File();
}
repaint();
}
@ -318,6 +328,7 @@ void WaveformComponent::setViewRange(Range<double> rng)
void WaveformComponent::mouseDown(const MouseEvent & e)
{
m_mousedown = true;
m_lock_timesel_set = true;
double pos = jmap<double>(e.x, 0, getWidth(), m_view_range.getStart(), m_view_range.getEnd());
if (e.y < m_topmargin)
{
@ -341,6 +352,7 @@ void WaveformComponent::mouseDown(const MouseEvent & e)
void WaveformComponent::mouseUp(const MouseEvent & /*e*/)
{
m_lock_timesel_set = false;
m_mousedown = false;
m_didseek = false;
if (m_didchangetimeselection)