@@ -103,7 +103,7 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id) | |||||
m_wavecomponent.setRecordingPosition(processor.getRecordingPositionPercent()); | m_wavecomponent.setRecordingPosition(processor.getRecordingPositionPercent()); | ||||
} else | } else | ||||
m_wavecomponent.setRecordingPosition(-1.0); | m_wavecomponent.setRecordingPosition(-1.0); | ||||
String infotext = String(processor.getPreBufferingPercent(), 1) + " " + String(processor.getStretchSource()->m_param_change_count); | |||||
String infotext = String(processor.getPreBufferingPercent(), 1) + " " + String(processor.getStretchSource()->m_param_change_count)+" "+m_last_err; | |||||
m_info_label.setText(infotext, dontSendNotification); | m_info_label.setText(infotext, dontSendNotification); | ||||
} | } | ||||
if (id == 2) | if (id == 2) | ||||
@@ -161,10 +161,17 @@ void PaulstretchpluginAudioProcessorEditor::chooseFile() | |||||
#endif | #endif | ||||
FileChooser myChooser("Please select audio file...", | FileChooser myChooser("Please select audio file...", | ||||
initialloc, | initialloc, | ||||
"*.wav"); | |||||
"*.wav",true); | |||||
if (myChooser.browseForFileToOpen()) | if (myChooser.browseForFileToOpen()) | ||||
{ | { | ||||
processor.setAudioFile(myChooser.getResult()); | |||||
File resu = myChooser.getResult(); | |||||
String pathname = resu.getFullPathName(); | |||||
if (pathname.startsWith("/localhost")) | |||||
{ | |||||
pathname = pathname.substring(10); | |||||
resu = File(pathname); | |||||
} | |||||
m_last_err = processor.setAudioFile(resu); | |||||
if (processor.getAudioFile() != File()) | if (processor.getAudioFile() != File()) | ||||
{ | { | ||||
m_wavecomponent.setAudioFile(processor.getAudioFile()); | m_wavecomponent.setAudioFile(processor.getAudioFile()); | ||||
@@ -330,7 +330,7 @@ private: | |||||
Label m_info_label; | Label m_info_label; | ||||
SpectralChainEditor m_spec_order_ed; | SpectralChainEditor m_spec_order_ed; | ||||
void chooseFile(); | void chooseFile(); | ||||
String m_last_err; | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessorEditor) | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PaulstretchpluginAudioProcessorEditor) | ||||
}; | }; | ||||
@@ -478,7 +478,11 @@ double PaulstretchpluginAudioProcessor::getRecordingPositionPercent() | |||||
String PaulstretchpluginAudioProcessor::setAudioFile(File f) | String PaulstretchpluginAudioProcessor::setAudioFile(File f) | ||||
{ | { | ||||
auto ai = unique_from_raw(m_afm->createReaderFor(f)); | |||||
//if (f==File()) | |||||
// return String(); | |||||
//if (f==m_current_file && f.getLastModificationTime()==m_current_file_date) | |||||
// return String(); | |||||
auto ai = unique_from_raw(m_afm->createReaderFor(f)); | |||||
if (ai != nullptr) | if (ai != nullptr) | ||||
{ | { | ||||
if (ai->numChannels > 32) | if (ai->numChannels > 32) | ||||
@@ -494,6 +498,7 @@ String PaulstretchpluginAudioProcessor::setAudioFile(File f) | |||||
ScopedLock locker(m_cs); | ScopedLock locker(m_cs); | ||||
m_stretch_source->setAudioFile(f); | m_stretch_source->setAudioFile(f); | ||||
m_current_file = f; | m_current_file = f; | ||||
m_current_file_date = m_current_file.getLastModificationTime(); | |||||
m_using_memory_buffer = false; | m_using_memory_buffer = false; | ||||
return String(); | return String(); | ||||
//MessageManager::callAsync([cb, file]() { cb(String()); }); | //MessageManager::callAsync([cb, file]() { cb(String()); }); | ||||
@@ -111,7 +111,7 @@ private: | |||||
int m_cur_num_out_chans = 2; | int m_cur_num_out_chans = 2; | ||||
CriticalSection m_cs; | CriticalSection m_cs; | ||||
File m_current_file; | File m_current_file; | ||||
Time m_current_file_date; | |||||
TimeSliceThread m_bufferingthread; | TimeSliceThread m_bufferingthread; | ||||
std::unique_ptr<StretchAudioSource> m_stretch_source; | std::unique_ptr<StretchAudioSource> m_stretch_source; | ||||