| @@ -65,8 +65,7 @@ LIB32=link.exe -lib | |||
| # PROP Intermediate_Dir "../../../bin/intermediate_win32/staticdebug" | |||
| # PROP Target_Dir "" | |||
| # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c | |||
| # ADD CPP /nologo /G6 /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /FD /GZ /c | |||
| # SUBTRACT CPP /YX | |||
| # ADD CPP /nologo /G6 /MDd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_UNICODE" /D "UNICODE" /D "_LIB" /FR /FD /GZ /Zm1024 /c | |||
| # ADD BASE RSC /l 0x809 /d "_DEBUG" | |||
| # ADD RSC /l 0x809 /d "_DEBUG" | |||
| BSC32=bscmake.exe | |||
| @@ -99,6 +99,11 @@ void AudioFilterStreamer::audioDeviceAboutToStart (AudioIODevice* device) | |||
| { | |||
| sampleRate = device->getCurrentSampleRate(); | |||
| filter.setPlayConfigDetails (device->getActiveInputChannels().countNumberOfSetBits(), | |||
| device->getActiveOutputChannels().countNumberOfSetBits(), | |||
| device->getCurrentSampleRate(), | |||
| device->getCurrentBufferSizeSamples()); | |||
| isPlaying = true; | |||
| emptyBuffer.setSize (1 + filter.getNumOutputChannels(), | |||
| @@ -83556,7 +83556,10 @@ private: | |||
| } | |||
| if (lastCommandChar == 'M' || lastCommandChar == 'm') | |||
| { | |||
| path.startNewSubPath (x, y); | |||
| lastCommandChar = 'l'; | |||
| } | |||
| else | |||
| path.lineTo (x, y); | |||
| @@ -211484,8 +211487,8 @@ void CriticalSection::exit() const throw() | |||
| LeaveCriticalSection ((CRITICAL_SECTION*) internal); | |||
| } | |||
| WaitableEvent::WaitableEvent() throw() | |||
| : internal (CreateEvent (0, FALSE, FALSE, 0)) | |||
| WaitableEvent::WaitableEvent (const bool manualReset) throw() | |||
| : internal (CreateEvent (0, manualReset ? TRUE : FALSE, FALSE, 0)) | |||
| { | |||
| } | |||
| @@ -227548,8 +227551,9 @@ void CriticalSection::exit() const throw() | |||
| class WaitableEventImpl | |||
| { | |||
| public: | |||
| WaitableEventImpl() | |||
| : triggered (false) | |||
| WaitableEventImpl (const bool manualReset_) | |||
| : triggered (false), | |||
| manualReset (manualReset_) | |||
| { | |||
| pthread_cond_init (&condition, 0); | |||
| pthread_mutex_init (&mutex, 0); | |||
| @@ -227602,7 +227606,9 @@ public: | |||
| } | |||
| } | |||
| triggered = false; | |||
| if (! manualReset) | |||
| triggered = false; | |||
| pthread_mutex_unlock (&mutex); | |||
| return true; | |||
| } | |||
| @@ -227626,13 +227632,14 @@ private: | |||
| pthread_cond_t condition; | |||
| pthread_mutex_t mutex; | |||
| bool triggered; | |||
| const bool manualReset; | |||
| WaitableEventImpl (const WaitableEventImpl&); | |||
| WaitableEventImpl& operator= (const WaitableEventImpl&); | |||
| }; | |||
| WaitableEvent::WaitableEvent() throw() | |||
| : internal (new WaitableEventImpl()) | |||
| WaitableEvent::WaitableEvent (const bool manualReset) throw() | |||
| : internal (new WaitableEventImpl (manualReset)) | |||
| { | |||
| } | |||
| @@ -237595,8 +237602,9 @@ void CriticalSection::exit() const throw() | |||
| class WaitableEventImpl | |||
| { | |||
| public: | |||
| WaitableEventImpl() | |||
| : triggered (false) | |||
| WaitableEventImpl (const bool manualReset_) | |||
| : triggered (false), | |||
| manualReset (manualReset_) | |||
| { | |||
| pthread_cond_init (&condition, 0); | |||
| pthread_mutex_init (&mutex, 0); | |||
| @@ -237649,7 +237657,9 @@ public: | |||
| } | |||
| } | |||
| triggered = false; | |||
| if (! manualReset) | |||
| triggered = false; | |||
| pthread_mutex_unlock (&mutex); | |||
| return true; | |||
| } | |||
| @@ -237673,13 +237683,14 @@ private: | |||
| pthread_cond_t condition; | |||
| pthread_mutex_t mutex; | |||
| bool triggered; | |||
| const bool manualReset; | |||
| WaitableEventImpl (const WaitableEventImpl&); | |||
| WaitableEventImpl& operator= (const WaitableEventImpl&); | |||
| }; | |||
| WaitableEvent::WaitableEvent() throw() | |||
| : internal (new WaitableEventImpl()) | |||
| WaitableEvent::WaitableEvent (const bool manualReset) throw() | |||
| : internal (new WaitableEventImpl (manualReset)) | |||
| { | |||
| } | |||
| @@ -8811,7 +8811,7 @@ class JUCE_API WaitableEvent | |||
| { | |||
| public: | |||
| WaitableEvent() throw(); | |||
| WaitableEvent (bool manualReset = false) throw(); | |||
| ~WaitableEvent() throw(); | |||
| @@ -250,7 +250,10 @@ private: | |||
| } | |||
| if (lastCommandChar == 'M' || lastCommandChar == 'm') | |||
| { | |||
| path.startNewSubPath (x, y); | |||
| lastCommandChar = 'l'; | |||
| } | |||
| else | |||
| path.lineTo (x, y); | |||
| @@ -64,8 +64,9 @@ void CriticalSection::exit() const throw() | |||
| class WaitableEventImpl | |||
| { | |||
| public: | |||
| WaitableEventImpl() | |||
| : triggered (false) | |||
| WaitableEventImpl (const bool manualReset_) | |||
| : triggered (false), | |||
| manualReset (manualReset_) | |||
| { | |||
| pthread_cond_init (&condition, 0); | |||
| pthread_mutex_init (&mutex, 0); | |||
| @@ -118,7 +119,9 @@ public: | |||
| } | |||
| } | |||
| triggered = false; | |||
| if (! manualReset) | |||
| triggered = false; | |||
| pthread_mutex_unlock (&mutex); | |||
| return true; | |||
| } | |||
| @@ -142,13 +145,14 @@ private: | |||
| pthread_cond_t condition; | |||
| pthread_mutex_t mutex; | |||
| bool triggered; | |||
| const bool manualReset; | |||
| WaitableEventImpl (const WaitableEventImpl&); | |||
| WaitableEventImpl& operator= (const WaitableEventImpl&); | |||
| }; | |||
| WaitableEvent::WaitableEvent() throw() | |||
| : internal (new WaitableEventImpl()) | |||
| WaitableEvent::WaitableEvent (const bool manualReset) throw() | |||
| : internal (new WaitableEventImpl (manualReset)) | |||
| { | |||
| } | |||
| @@ -79,8 +79,8 @@ void CriticalSection::exit() const throw() | |||
| } | |||
| //============================================================================== | |||
| WaitableEvent::WaitableEvent() throw() | |||
| : internal (CreateEvent (0, FALSE, FALSE, 0)) | |||
| WaitableEvent::WaitableEvent (const bool manualReset) throw() | |||
| : internal (CreateEvent (0, manualReset ? TRUE : FALSE, FALSE, 0)) | |||
| { | |||
| } | |||
| @@ -41,8 +41,13 @@ class JUCE_API WaitableEvent | |||
| { | |||
| public: | |||
| //============================================================================== | |||
| /** Creates a WaitableEvent object. */ | |||
| WaitableEvent() throw(); | |||
| /** Creates a WaitableEvent object. | |||
| @param manualReset If this is false, the event will be reset automatically when the wait() | |||
| method is called. If manualReset is true, then once the event is signalled, | |||
| the only way to reset it will be by calling the reset() method. | |||
| */ | |||
| WaitableEvent (bool manualReset = false) throw(); | |||
| /** Destructor. | |||
| @@ -57,8 +62,8 @@ public: | |||
| This will wait until the object's signal() method is called by another thread, | |||
| or until the timeout expires. | |||
| After the event has been signalled, this method will return true and reset | |||
| the event. | |||
| After the event has been signalled, this method will return true and if manualReset | |||
| was set to false in the WaitableEvent's constructor, then the event will be reset. | |||
| @param timeOutMilliseconds the maximum time to wait, in milliseconds. A negative | |||
| value will cause it to wait forever. | |||