Equalizer: Instances of GraphicEQ AU are now relinquished to the main thread for destruction instead of being destroyed by the Core Audio Output shutdown
parent
d8b16e44c7
commit
ec7009f3fc
|
@ -576,7 +576,7 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe)
|
||||||
[[NSUserDefaults standardUserDefaults] setDouble:[audioPlayer volume] forKey:@"volume"];
|
[[NSUserDefaults standardUserDefaults] setDouble:[audioPlayer volume] forKey:@"volume"];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)showStubEq
|
- (void)eqAlloc
|
||||||
{
|
{
|
||||||
// Show a stopped equalizer as a stub
|
// Show a stopped equalizer as a stub
|
||||||
OSStatus err;
|
OSStatus err;
|
||||||
|
@ -602,15 +602,13 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AudioUnitInitialize(_eq);
|
AudioUnitInitialize(_eq);
|
||||||
|
|
||||||
_eqStubbed = YES;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)hideStubEq
|
- (void)eqDealloc
|
||||||
{
|
{
|
||||||
AudioUnitUninitialize(_eq);
|
AudioUnitUninitialize(_eq);
|
||||||
AudioComponentInstanceDispose(_eq);
|
AudioComponentInstanceDispose(_eq);
|
||||||
_eq = NULL;
|
_eq = nil;
|
||||||
_eqStubbed = NO;
|
_eqStubbed = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -625,7 +623,7 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
[self showStubEq];
|
[self eqAlloc];
|
||||||
_eqWasOpen = YES;
|
_eqWasOpen = YES;
|
||||||
[self audioPlayer:nil displayEqualizer:_eq];
|
[self audioPlayer:nil displayEqualizer:_eq];
|
||||||
[_equi bringToFront];
|
[_equi bringToFront];
|
||||||
|
@ -655,10 +653,8 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe)
|
||||||
|
|
||||||
CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
|
CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
|
||||||
|
|
||||||
if (_eqStubbed)
|
// Caller relinquishes EQ to us
|
||||||
{
|
[self eqDealloc];
|
||||||
[self hideStubEq];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_eq = eq;
|
_eq = eq;
|
||||||
|
@ -728,9 +724,9 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe)
|
||||||
{
|
{
|
||||||
_eqWasOpen = [_equi isOpen];
|
_eqWasOpen = [_equi isOpen];
|
||||||
}
|
}
|
||||||
|
|
||||||
_equi = nil;
|
_equi = nil;
|
||||||
_eq = nil;
|
[self eqDealloc];
|
||||||
|
|
||||||
if (_eqWasOpen)
|
if (_eqWasOpen)
|
||||||
{
|
{
|
||||||
|
|
|
@ -767,9 +767,8 @@ default_device_changed(AudioObjectID inObjectID, UInt32 inNumberAddresses, const
|
||||||
}
|
}
|
||||||
if (_eq)
|
if (_eq)
|
||||||
{
|
{
|
||||||
|
// This takes the EQ and frees it after disposing of any present UIs
|
||||||
[outputController endEqualizer:_eq];
|
[outputController endEqualizer:_eq];
|
||||||
AudioUnitUninitialize(_eq);
|
|
||||||
AudioComponentInstanceDispose(_eq);
|
|
||||||
_eq = NULL;
|
_eq = NULL;
|
||||||
}
|
}
|
||||||
#ifdef OUTPUT_LOG
|
#ifdef OUTPUT_LOG
|
||||||
|
|
Loading…
Reference in New Issue