diff --git a/Audio/Output/OutputCoreAudio.h b/Audio/Output/OutputCoreAudio.h index 5aef23443..f02c12020 100644 --- a/Audio/Output/OutputCoreAudio.h +++ b/Audio/Output/OutputCoreAudio.h @@ -51,6 +51,7 @@ using std::atomic_long; BOOL restarted; BOOL eqEnabled; + BOOL eqInitialized; BOOL streamFormatStarted; diff --git a/Audio/Output/OutputCoreAudio.m b/Audio/Output/OutputCoreAudio.m index 92c2fb20e..b82d9d812 100644 --- a/Audio/Output/OutputCoreAudio.m +++ b/Audio/Output/OutputCoreAudio.m @@ -764,6 +764,8 @@ default_device_changed(AudioObjectID inObjectID, UInt32 inNumberAddresses, const if(_err) return NO; + eqInitialized = YES; + [self setEqualizerEnabled:[[[[NSUserDefaultsController sharedUserDefaultsController] defaults] objectForKey:@"GraphicEQenable"] boolValue]]; [outputController beginEqualizer:_eq]; @@ -851,7 +853,10 @@ default_device_changed(AudioObjectID inObjectID, UInt32 inNumberAddresses, const } if(_eq) { [outputController endEqualizer:_eq]; - AudioUnitUninitialize(_eq); + if(eqInitialized) { + AudioUnitUninitialize(_eq); + eqInitialized = NO; + } AudioComponentInstanceDispose(_eq); _eq = NULL; }