From 7c4374e20d526cc6dfef643385ae48a2f39d61e4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 6 Apr 2010 18:16:35 +0000 Subject: [PATCH] bug fix --- src/vstmain.cpp | 11 +++++------ src/vstsound.h | 9 ++++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/vstmain.cpp b/src/vstmain.cpp index fef50e58..790d0bfe 100755 --- a/src/vstmain.cpp +++ b/src/vstmain.cpp @@ -98,18 +98,17 @@ void CLlconVST::processReplacing ( float** pvIn, // copy input data for ( i = 0, j = 0; i < iNumSamples; i++, j += 2 ) { - (*Client.GetSound()->GetBuffer())[j] = pfIn0[i]; - (*Client.GetSound()->GetBuffer())[j + 1] = pfIn1[i]; + Client.GetSound()->vecsTmpAudioSndCrdStereo[j] = pfIn0[i]; + Client.GetSound()->vecsTmpAudioSndCrdStereo[j + 1] = pfIn1[i]; } // call processing callback function - Client.GetSound()->VSTProcessCallback ( - *Client.GetSound()->GetBuffer() ); + Client.GetSound()->VSTProcessCallback(); // copy output data for ( i = 0, j = 0; i < iNumSamples; i++, j += 2 ) { - pfOut0[i] = (*Client.GetSound()->GetBuffer())[j]; - pfOut1[i] = (*Client.GetSound()->GetBuffer())[j + 1]; + pfOut0[i] = Client.GetSound()->vecsTmpAudioSndCrdStereo[j]; + pfOut1[i] = Client.GetSound()->vecsTmpAudioSndCrdStereo[j + 1]; } } diff --git a/src/vstsound.h b/src/vstsound.h index f2af3a04..b7429064 100755 --- a/src/vstsound.h +++ b/src/vstsound.h @@ -41,19 +41,22 @@ public: // special VST functions void SetMonoBufferSize ( const int iNVBS ) { iVSTMonoBufferSize = iNVBS; } - CVector* GetBuffer() { return &vecsAudioSndCrdStereo; } - void VSTProcessCallback ( CVector& psData ) + void VSTProcessCallback() { - CSoundBase::ProcessCallback ( psData ); + CSoundBase::ProcessCallback ( vecsTmpAudioSndCrdStereo ); } virtual int Init ( const int ) { // init base class CSoundBase::Init ( iVSTMonoBufferSize ); + vecsTmpAudioSndCrdStereo.Init ( 2 * iVSTMonoBufferSize /* stereo */); return iVSTMonoBufferSize; } + // this vector must be accessible from the outside (quick hack solution) + CVector vecsTmpAudioSndCrdStereo; + protected: int iVSTMonoBufferSize; };