diff --git a/Audio/Output/OutputAVFoundation.m b/Audio/Output/OutputAVFoundation.m index d21b1af87..be61cbf64 100644 --- a/Audio/Output/OutputAVFoundation.m +++ b/Audio/Output/OutputAVFoundation.m @@ -306,6 +306,10 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons enableHrtf = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] boolForKey:@"enableHrtf"]; if(streamFormatStarted) [self updateStreamFormat]; + } else if([keyPath isEqualToString:@"values.enableFSurround"]) { + enableFSurround = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] boolForKey:@"enableFSurround"]; + if(streamFormatStarted) + [self updateStreamFormat]; } } @@ -613,7 +617,7 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons } else { fsurround = nil; } - + /* Apple's audio processor really only supports common 1-8 channel formats */ if(enableHrtf || channels > 8 || ((channelConfig & ~(AudioConfig6Point1|AudioConfig7Point1)) != 0)) { NSURL *presetUrl = [[NSBundle mainBundle] URLForResource:@"SADIE_D02-96000" withExtension:@"mhr"]; @@ -625,7 +629,7 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons } else { hrtf = nil; } - + streamFormat = realStreamFormat; streamFormat.mChannelsPerFrame = channels; streamFormat.mBytesPerFrame = sizeof(float) * channels; @@ -895,8 +899,6 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons audioFormatDescription = NULL; - enableFSurround = YES; - running = NO; stopping = NO; stopped = NO; @@ -997,6 +999,7 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.GraphicEQenable" options:0 context:kOutputAVFoundationContext]; [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.eqPreamp" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kOutputAVFoundationContext]; [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.enableHrtf" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kOutputAVFoundationContext]; + [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.enableFSurround" options:(NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew) context:kOutputAVFoundationContext]; observersapplied = YES; [renderSynchronizer addRenderer:audioRenderer]; @@ -1118,6 +1121,7 @@ current_device_listener(AudioObjectID inObjectID, UInt32 inNumberAddresses, cons [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.GraphicEQenable" context:kOutputAVFoundationContext]; [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.eqPreamp" context:kOutputAVFoundationContext]; [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.enableHrtf" context:kOutputAVFoundationContext]; + [[NSUserDefaultsController sharedUserDefaultsController] removeObserver:self forKeyPath:@"values.enableFSurround" context:kOutputAVFoundationContext]; observersapplied = NO; } stopping = YES; diff --git a/Preferences/Preferences/Base.lproj/Preferences.xib b/Preferences/Preferences/Base.lproj/Preferences.xib index db969a364..a78d79adc 100644 --- a/Preferences/Preferences/Base.lproj/Preferences.xib +++ b/Preferences/Preferences/Base.lproj/Preferences.xib @@ -207,11 +207,11 @@ - + - + @@ -232,7 +232,7 @@ - + @@ -241,7 +241,7 @@ - + @@ -262,7 +262,7 @@ - + @@ -271,7 +271,7 @@ + - + diff --git a/Preferences/Preferences/en.lproj/Preferences.strings b/Preferences/Preferences/en.lproj/Preferences.strings index b84a2b684..106f37ed1 100644 --- a/Preferences/Preferences/en.lproj/Preferences.strings +++ b/Preferences/Preferences/en.lproj/Preferences.strings @@ -232,3 +232,6 @@ /* Class = "NSButtonCell"; title = "Enable HRTF filter (Not needed with AirPods or Beats)"; ObjectID = "NGx-0c-WVR"; */ "NGx-0c-WVR.title" = "Enable HRTF filter (Not needed with AirPods or Beats)"; + +/* Class = "NSButtonCell"; title = "Enable FreeSurround stereo to surround upmixing"; ObjectID = "F0i-UK-6Nu"; */ +"F0i-UK-6Nu.title" = "Enable FreeSurround stereo to surround upmixing"; diff --git a/Preferences/Preferences/es.lproj/Preferences.strings b/Preferences/Preferences/es.lproj/Preferences.strings index 4aa1461b3..7f9313998 100644 --- a/Preferences/Preferences/es.lproj/Preferences.strings +++ b/Preferences/Preferences/es.lproj/Preferences.strings @@ -249,3 +249,6 @@ /* Class = "NSButtonCell"; title = "Automatically check for updates on startup"; ObjectID = "207"; */ "207.title" = "Buscar actualizaciones al abrir"; + +/* Class = "NSButtonCell"; title = "Enable FreeSurround stereo to surround upmixing"; ObjectID = "F0i-UK-6Nu"; */ +"F0i-UK-6Nu.title" = "Enable FreeSurround stereo to surround upmixing"; diff --git a/Preferences/Preferences/pl.lproj/Preferences.strings b/Preferences/Preferences/pl.lproj/Preferences.strings index 44af6a7fd..c685b261d 100644 --- a/Preferences/Preferences/pl.lproj/Preferences.strings +++ b/Preferences/Preferences/pl.lproj/Preferences.strings @@ -232,3 +232,6 @@ /* Class = "NSTextFieldCell"; title = "hh:mm:ss.ms"; ObjectID = "zaI-0m-tQf"; */ "zaI-0m-tQf.title" = "hh:mm:ss.ms"; + +/* Class = "NSButtonCell"; title = "Enable FreeSurround stereo to surround upmixing"; ObjectID = "F0i-UK-6Nu"; */ +"F0i-UK-6Nu.title" = "Enable FreeSurround stereo to surround upmixing"; diff --git a/Preferences/Preferences/ru.lproj/Preferences.strings b/Preferences/Preferences/ru.lproj/Preferences.strings index 57c74d612..63c9f3f72 100644 --- a/Preferences/Preferences/ru.lproj/Preferences.strings +++ b/Preferences/Preferences/ru.lproj/Preferences.strings @@ -232,3 +232,6 @@ /* Class = "NSTextFieldCell"; title = "hh:mm:ss.ms"; ObjectID = "zaI-0m-tQf"; */ "zaI-0m-tQf.title" = "hh:mm:ss.ms"; + +/* Class = "NSButtonCell"; title = "Enable FreeSurround stereo to surround upmixing"; ObjectID = "F0i-UK-6Nu"; */ +"F0i-UK-6Nu.title" = "Enable FreeSurround stereo to surround upmixing";