diff --git a/ChangeLog b/ChangeLog index ebe7f583..ad33ce2c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,24 +10,24 @@ -3.3.10 +3.3.10 (2015-10-20) - changed the default central server URL - added support for server disconnection -3.3.9 +3.3.9 (2015-07-12) - another improvement of auto jitter buffer detection in very bad network conditions -- support client operation without using a GUI frontend +- support client operation without using a GUI front end - bug fix: fixed a crash in the MacOS audio interface -3.3.8 +3.3.8 (2015-03-15) - improved audio quality in bad network conditions @@ -38,7 +38,7 @@ - show info about sound card buffer size if not one of the standard sizes -3.3.7 +3.3.7 (2015-02-05) - added a musician profile dialog (some settings in the main window were removed) @@ -50,7 +50,7 @@ - added new instrument picture for "Guitar+Vocal" -3.3.6 +3.3.6 (2015-01-25) - support for a country flag icon on the fader tag diff --git a/mac/sound.cpp b/mac/sound.cpp index 161eaa46..51bb53e3 100755 --- a/mac/sound.cpp +++ b/mac/sound.cpp @@ -530,12 +530,12 @@ void CSound::SetRightOutputChannel ( const int iNewChan ) void CSound::Start() { - // setup callback for xruns (only for input is enough) AudioObjectPropertyAddress stPropertyAddress; stPropertyAddress.mElement = kAudioObjectPropertyElementMaster; stPropertyAddress.mScope = kAudioObjectPropertyScopeGlobal; + // setup callback for xruns (only for input is enough) stPropertyAddress.mSelector = kAudioDeviceProcessorOverload; AudioObjectAddPropertyListener ( audioInputDevice[lCurDev], @@ -543,6 +543,7 @@ void CSound::Start() deviceNotification, this ); + // setup callbacks for device property changes stPropertyAddress.mSelector = kAudioDevicePropertyDeviceHasChanged; AudioObjectAddPropertyListener ( audioInputDevice[lCurDev], @@ -584,12 +585,12 @@ void CSound::Stop() AudioDeviceDestroyIOProcID ( audioInputDevice[lCurDev], audioInputProcID ); AudioDeviceDestroyIOProcID ( audioOutputDevice[lCurDev], audioOutputProcID ); - // unregister the callback function for xruns AudioObjectPropertyAddress stPropertyAddress; stPropertyAddress.mElement = kAudioObjectPropertyElementMaster; stPropertyAddress.mScope = kAudioObjectPropertyScopeGlobal; + // unregister callback functions for device property changes stPropertyAddress.mSelector = kAudioDevicePropertyDeviceHasChanged; AudioObjectRemovePropertyListener( audioOutputDevice[lCurDev], @@ -602,6 +603,7 @@ void CSound::Stop() deviceNotification, this ); + // unregister the callback function for xruns stPropertyAddress.mSelector = kAudioDeviceProcessorOverload; AudioObjectRemovePropertyListener( audioInputDevice[lCurDev], @@ -712,7 +714,7 @@ OSStatus CSound::deviceNotification ( AudioDeviceID, if ( inAddresses->mSelector == kAudioDevicePropertyDeviceHasChanged ) { - // if any property of the device has changed, to a full reload + // if any property of the device has changed, do a full reload pSound->EmitReinitRequestSignal ( RS_RELOAD_RESTART_AND_INIT ); }