diff --git a/include/BufferManager.h b/include/BufferManager.h index f605e38b8..b9964bbfc 100644 --- a/include/BufferManager.h +++ b/include/BufferManager.h @@ -37,7 +37,7 @@ const int BM_INITIAL_BUFFERS = 512; //const int BM_INCREMENT = 64; -class BufferManager +class EXPORT BufferManager { public: static void init(); diff --git a/src/core/PlayHandle.cpp b/src/core/PlayHandle.cpp index b32a19c94..1e3666c08 100644 --- a/src/core/PlayHandle.cpp +++ b/src/core/PlayHandle.cpp @@ -50,13 +50,13 @@ void PlayHandle::doProcessing() } else { - play( m_playHandleBuffer ); + play( NULL ); } } void PlayHandle::releaseBuffer() { - BufferManager::release( m_playHandleBuffer ); + if( m_playHandleBuffer ) BufferManager::release( m_playHandleBuffer ); m_playHandleBuffer = NULL; } diff --git a/src/core/SamplePlayHandle.cpp b/src/core/SamplePlayHandle.cpp index 188002ed2..88fdd1dda 100644 --- a/src/core/SamplePlayHandle.cpp +++ b/src/core/SamplePlayHandle.cpp @@ -122,8 +122,11 @@ void SamplePlayHandle::play( sampleFrame * buffer ) /* stereoVolumeVector v = { { m_volumeModel->value() / DefaultVolume, m_volumeModel->value() / DefaultVolume } };*/ - m_sampleBuffer->play( workingBuffer, &m_state, frames, - BaseFreq ); + if( ! m_sampleBuffer->play( workingBuffer, &m_state, frames, + BaseFreq ) ) + { + memset( workingBuffer, 0, frames * sizeof( sampleFrame ) ); + } } m_frame += frames;