Added support for dropping audio files into the plugin GUI

This commit is contained in:
xenakios 2017-12-27 16:56:37 +02:00
parent 21b06b8353
commit f9cce79f49
2 changed files with 26 additions and 1 deletions

View File

@ -249,6 +249,28 @@ void PaulstretchpluginAudioProcessorEditor::addAudioBlock(AudioBuffer<float>& bu
m_wavecomponent.addAudioBlock(buf, samplerate, pos); m_wavecomponent.addAudioBlock(buf, samplerate, pos);
} }
bool PaulstretchpluginAudioProcessorEditor::isInterestedInFileDrag(const StringArray & files)
{
if (files.size() == 0)
return false;
File f(files[0]);
String extension = f.getFileExtension().toLowerCase();
if (processor.m_afm->getWildcardForAllFormats().containsIgnoreCase(extension))
return true;
return false;
}
void PaulstretchpluginAudioProcessorEditor::filesDropped(const StringArray & files, int x, int y)
{
if (files.size() > 0)
{
File f(files[0]);
processor.setAudioFile(f);
toFront(true);
}
}
void PaulstretchpluginAudioProcessorEditor::chooseFile() void PaulstretchpluginAudioProcessorEditor::chooseFile()
{ {
String initiallocfn = processor.m_propsfile->m_props_file->getValue("importfilefolder", String initiallocfn = processor.m_propsfile->m_props_file->getValue("importfilefolder",

View File

@ -239,7 +239,7 @@ public:
}; };
class PaulstretchpluginAudioProcessorEditor : public AudioProcessorEditor, class PaulstretchpluginAudioProcessorEditor : public AudioProcessorEditor,
public MultiTimer public MultiTimer, public FileDragAndDropTarget, public DragAndDropContainer
{ {
public: public:
PaulstretchpluginAudioProcessorEditor (PaulstretchpluginAudioProcessor&); PaulstretchpluginAudioProcessorEditor (PaulstretchpluginAudioProcessor&);
@ -251,6 +251,9 @@ public:
void setAudioBuffer(AudioBuffer<float>* buf, int samplerate, int len); void setAudioBuffer(AudioBuffer<float>* buf, int samplerate, int len);
void beginAddingAudioBlocks(int channels, int samplerate, int totalllen); void beginAddingAudioBlocks(int channels, int samplerate, int totalllen);
void addAudioBlock(AudioBuffer<float>& buf, int samplerate, int pos); void addAudioBlock(AudioBuffer<float>& buf, int samplerate, int pos);
bool isInterestedInFileDrag(const StringArray &files) override;
void filesDropped(const StringArray &files, int x, int y) override;
WaveformComponent m_wavecomponent; WaveformComponent m_wavecomponent;
private: private:
PaulstretchpluginAudioProcessor& processor; PaulstretchpluginAudioProcessor& processor;