Attempt to provide extra data for a special host, not working like this

This commit is contained in:
xenakios 2018-03-24 01:01:40 +02:00
parent d5f6a99261
commit 52ebb38415
3 changed files with 22 additions and 2 deletions

View File

@ -328,7 +328,8 @@ void PaulstretchpluginAudioProcessorEditor::timerCallback(int id)
} }
infotext += m_last_err + " [FFT size " + infotext += m_last_err + " [FFT size " +
String(processor.getStretchSource()->getFFTSize())+"]"; String(processor.getStretchSource()->getFFTSize())+"]";
double outlen = processor.getStretchSource()->getOutputDurationSecondsForRange(processor.getStretchSource()->getPlayRange(), processor.getStretchSource()->getFFTSize()); double outlen = processor.getStretchSource()->getOutputDurationSecondsForRange(processor.getStretchSource()->getPlayRange(),
processor.getStretchSource()->getFFTSize());
infotext += " [Output length " + secondsToString2(outlen)+"]"; infotext += " [Output length " + secondsToString2(outlen)+"]";
if (processor.m_abnormal_output_samples > 0) if (processor.m_abnormal_output_samples > 0)
infotext += " " + String(processor.m_abnormal_output_samples) + " invalid sample values"; infotext += " " + String(processor.m_abnormal_output_samples) + " invalid sample values";

View File

@ -67,6 +67,7 @@ inline AudioParameterFloat* make_floatpar(String id, String name, float minv, fl
PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor() PaulstretchpluginAudioProcessor::PaulstretchpluginAudioProcessor()
: m_bufferingthread("pspluginprebufferthread") : m_bufferingthread("pspluginprebufferthread")
{ {
getProperties().set("isgenerator", true);
g_activeprocessors.insert(this); g_activeprocessors.insert(this);
m_playposinfo.timeInSeconds = 0.0; m_playposinfo.timeInSeconds = 0.0;
@ -579,6 +580,16 @@ void copyAudioBufferWrappingPosition(const AudioBuffer<float>& src, AudioBuffer<
} }
} }
pointer_sized_int PaulstretchpluginAudioProcessor::handleVstManufacturerSpecific(int32 index, pointer_sized_int value, void * ptr, float opt)
{
if (index == 10000)
{
*((double*)(ptr)) = 6.66;
return 1;
}
return pointer_sized_int();
}
void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages) void PaulstretchpluginAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
{ {
ScopedLock locker(m_cs); ScopedLock locker(m_cs);
@ -783,6 +794,9 @@ void PaulstretchpluginAudioProcessor::timerCallback(int id)
{ {
if (id == 1) if (id == 1)
{ {
double outlen = m_stretch_source->getOutputDurationSecondsForRange(m_stretch_source->getPlayRange(),
m_stretch_source->getFFTSize());
getProperties().set("outputlength", outlen);
bool capture = getParameter(cpi_capture_enabled); bool capture = getParameter(cpi_capture_enabled);
if (capture == false && m_max_reclen != *getFloatParameter(cpi_max_capture_len)) if (capture == false && m_max_reclen != *getFloatParameter(cpi_max_capture_len))
{ {

View File

@ -104,7 +104,7 @@ public:
class PaulstretchpluginAudioProcessorEditor; class PaulstretchpluginAudioProcessorEditor;
class PaulstretchpluginAudioProcessor : public AudioProcessor, class PaulstretchpluginAudioProcessor : public AudioProcessor,
public MultiTimer public MultiTimer, public VSTCallbackHandler
{ {
public: public:
using EditorType = PaulstretchpluginAudioProcessorEditor; using EditorType = PaulstretchpluginAudioProcessorEditor;
@ -119,6 +119,11 @@ public:
bool isBusesLayoutSupported (const BusesLayout& layouts) const override; bool isBusesLayoutSupported (const BusesLayout& layouts) const override;
#endif #endif
pointer_sized_int handleVstManufacturerSpecific(int32 index,
pointer_sized_int value,
void* ptr,
float opt) override;
void processBlock (AudioSampleBuffer&, MidiBuffer&) override; void processBlock (AudioSampleBuffer&, MidiBuffer&) override;
//============================================================================== //==============================================================================