From 6f28298e4cba81ef15b2f0ce2d6103520e95d88f Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 17 Jul 2007 08:47:33 +0000 Subject: [PATCH] --- .../platform_specific_code/juce_linux_Audio.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/build/linux/platform_specific_code/juce_linux_Audio.cpp b/build/linux/platform_specific_code/juce_linux_Audio.cpp index 4c465c6529..3a276061a2 100644 --- a/build/linux/platform_specific_code/juce_linux_Audio.cpp +++ b/build/linux/platform_specific_code/juce_linux_Audio.cpp @@ -366,11 +366,11 @@ public: : Thread ("Juce ALSA"), sampleRate (0), bufferSize (0), + callback (0), deviceName (deviceName_), outputDevice (0), inputDevice (0), numCallbacks (0), - callback (0), totalNumInputChannels (0), totalNumOutputChannels (0) { @@ -604,6 +604,7 @@ public: Array sampleRates; StringArray channelNamesOut, channelNamesIn; + AudioIODeviceCallback* callback; private: //============================================================================== @@ -612,7 +613,6 @@ private: ALSADevice* inputDevice; int numCallbacks; - AudioIODeviceCallback* callback; CriticalSection callbackLock; float* outputChannelData [maxNumChans]; @@ -791,12 +791,22 @@ public: callback = 0; internal->setCallback (callback); + + if (callback != 0) + callback->audioDeviceAboutToStart (internal->sampleRate, + internal->bufferSize); + isStarted = (callback != 0); } void stop() { + AudioIODeviceCallback* const oldCallback = internal->callback; + start (0); + + if (oldCallback != 0) + oldCallback->audioDeviceStopped(); } bool isPlaying()