Attempt implementing seek while frozen, doesn't work too well like this...Don't use opengl stuff at all if the opengl module isn't set available.
This commit is contained in:
parent
ce30e2afd9
commit
890c568155
@ -246,13 +246,20 @@ void StretchAudioSource::getNextAudioBlock(const AudioSourceChannelInfo & buffer
|
|||||||
if (m_stretchoutringbuf.available() > 0)
|
if (m_stretchoutringbuf.available() > 0)
|
||||||
m_output_has_begun = true;
|
m_output_has_begun = true;
|
||||||
bool freezing = m_freezing;
|
bool freezing = m_freezing;
|
||||||
|
if (m_do_freeze_seek == true)
|
||||||
if (m_stretchers[0]->isFreezing() != freezing)
|
{
|
||||||
|
freezing = false;
|
||||||
|
m_stretchoutringbuf.clear();
|
||||||
|
m_firstbuffer = true;
|
||||||
|
}
|
||||||
|
if (m_stretchers[0]->isFreezing() != freezing)
|
||||||
{
|
{
|
||||||
if (freezing == true && m_inputfile!=nullptr)
|
if (freezing == true && m_inputfile!=nullptr)
|
||||||
m_freeze_pos = 1.0/m_inputfile->info.nsamples*m_inputfile->getCurrentPosition();
|
m_freeze_pos = 1.0/m_inputfile->info.nsamples*m_inputfile->getCurrentPosition();
|
||||||
for (auto& e : m_stretchers)
|
for (auto& e : m_stretchers)
|
||||||
e->set_freezing(m_freezing);
|
{
|
||||||
|
e->set_freezing(freezing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -381,6 +388,12 @@ void StretchAudioSource::getNextAudioBlock(const AudioSourceChannelInfo & buffer
|
|||||||
//Logger::writeToLog("Rerunning resampler task");
|
//Logger::writeToLog("Rerunning resampler task");
|
||||||
resamplertask();
|
resamplertask();
|
||||||
}
|
}
|
||||||
|
if (m_do_freeze_seek == true)
|
||||||
|
{
|
||||||
|
for (auto& e : m_stretchers)
|
||||||
|
e->set_freezing(true);
|
||||||
|
m_do_freeze_seek = false;
|
||||||
|
}
|
||||||
bool source_ended = m_inputfile->hasEnded();
|
bool source_ended = m_inputfile->hasEnded();
|
||||||
double samplelimit = 16384.0;
|
double samplelimit = 16384.0;
|
||||||
if (m_clip_output == true)
|
if (m_clip_output == true)
|
||||||
@ -666,6 +679,8 @@ bool StretchAudioSource::isPaused() const
|
|||||||
void StretchAudioSource::seekPercent(double pos)
|
void StretchAudioSource::seekPercent(double pos)
|
||||||
{
|
{
|
||||||
ScopedLock locker(m_cs);
|
ScopedLock locker(m_cs);
|
||||||
|
if (m_freezing == true)
|
||||||
|
m_do_freeze_seek = true;
|
||||||
m_seekpos = pos;
|
m_seekpos = pos;
|
||||||
//m_resampler->Reset();
|
//m_resampler->Reset();
|
||||||
m_inputfile->seek(pos);
|
m_inputfile->seek(pos);
|
||||||
|
@ -130,7 +130,7 @@ private:
|
|||||||
double m_seekpos = 0.0;
|
double m_seekpos = 0.0;
|
||||||
|
|
||||||
bool m_freezing = false;
|
bool m_freezing = false;
|
||||||
|
bool m_do_freeze_seek = false;
|
||||||
int m_pause_state = 0;
|
int m_pause_state = 0;
|
||||||
Range<double> m_playrange{ 0.0,1.0 };
|
Range<double> m_playrange{ 0.0,1.0 };
|
||||||
int64_t m_rand_count = 0;
|
int64_t m_rand_count = 0;
|
||||||
|
@ -505,8 +505,10 @@ void PaulstretchpluginAudioProcessorEditor::showSettingsMenu()
|
|||||||
WaveformComponent::WaveformComponent(AudioFormatManager* afm, AudioThumbnail* thumb)
|
WaveformComponent::WaveformComponent(AudioFormatManager* afm, AudioThumbnail* thumb)
|
||||||
{
|
{
|
||||||
TimeSelectionChangedCallback = [](Range<double>, int) {};
|
TimeSelectionChangedCallback = [](Range<double>, int) {};
|
||||||
|
#ifdef JUCE_MODULE_AVAILABLE_juce_opengl
|
||||||
if (m_use_opengl == true)
|
if (m_use_opengl == true)
|
||||||
m_ogl.attachTo(*this);
|
m_ogl.attachTo(*this);
|
||||||
|
#endif
|
||||||
m_thumbnail = thumb;
|
m_thumbnail = thumb;
|
||||||
m_thumbnail->addChangeListener(this);
|
m_thumbnail->addChangeListener(this);
|
||||||
setOpaque(true);
|
setOpaque(true);
|
||||||
@ -514,8 +516,10 @@ WaveformComponent::WaveformComponent(AudioFormatManager* afm, AudioThumbnail* th
|
|||||||
|
|
||||||
WaveformComponent::~WaveformComponent()
|
WaveformComponent::~WaveformComponent()
|
||||||
{
|
{
|
||||||
|
#ifdef JUCE_MODULE_AVAILABLE_juce_opengl
|
||||||
if (m_use_opengl == true)
|
if (m_use_opengl == true)
|
||||||
m_ogl.detach();
|
m_ogl.detach();
|
||||||
|
#endif
|
||||||
m_thumbnail->removeChangeListener(this);
|
m_thumbnail->removeChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,8 +165,10 @@ private:
|
|||||||
std::pair<Range<double>, Range<double>> m_file_cached;
|
std::pair<Range<double>, Range<double>> m_file_cached;
|
||||||
bool m_image_dirty = false;
|
bool m_image_dirty = false;
|
||||||
Image m_waveimage;
|
Image m_waveimage;
|
||||||
|
#ifdef JUCE_MODULE_AVAILABLE_juce_opengl
|
||||||
OpenGLContext m_ogl;
|
OpenGLContext m_ogl;
|
||||||
bool m_use_opengl = false;
|
bool m_use_opengl = false;
|
||||||
|
#endif
|
||||||
double m_rec_pos = 0.0;
|
double m_rec_pos = 0.0;
|
||||||
bool m_lock_timesel_set = false;
|
bool m_lock_timesel_set = false;
|
||||||
bool m_using_audio_buffer = false;
|
bool m_using_audio_buffer = false;
|
||||||
|
@ -69,7 +69,6 @@
|
|||||||
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_opengl" path="../JUCE/modules"/>
|
|
||||||
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
||||||
@ -99,7 +98,6 @@
|
|||||||
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_opengl" path="../JUCE/modules"/>
|
|
||||||
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
||||||
@ -123,7 +121,6 @@
|
|||||||
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_gui_extra" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_cryptography" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_opengl" path="../JUCE/modules"/>
|
|
||||||
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../JUCE/modules"/>
|
||||||
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
<MODULEPATH id="juce_audio_formats" path="../JUCE/modules"/>
|
||||||
@ -148,7 +145,6 @@
|
|||||||
<MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
<MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
||||||
<MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
<MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
||||||
<MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
<MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
||||||
<MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0" useGlobalPath="1"/>
|
|
||||||
</MODULES>
|
</MODULES>
|
||||||
<JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
|
<JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
|
||||||
</JUCERPROJECT>
|
</JUCERPROJECT>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user