diff --git a/Limelight/Database/DataManager.h b/Limelight/Database/DataManager.h index d630165..24aeb03 100644 --- a/Limelight/Database/DataManager.h +++ b/Limelight/Database/DataManager.h @@ -17,6 +17,7 @@ framerate:(NSInteger)framerate height:(NSInteger)height width:(NSInteger)width + audioConfig:(NSInteger)audioConfig onscreenControls:(NSInteger)onscreenControls optimizeGames:(BOOL)optimizeGames multiController:(BOOL)multiController diff --git a/Limelight/Database/DataManager.m b/Limelight/Database/DataManager.m index 4402a87..57f3e63 100644 --- a/Limelight/Database/DataManager.m +++ b/Limelight/Database/DataManager.m @@ -56,6 +56,7 @@ framerate:(NSInteger)framerate height:(NSInteger)height width:(NSInteger)width + audioConfig:(NSInteger)audioConfig onscreenControls:(NSInteger)onscreenControls optimizeGames:(BOOL)optimizeGames multiController:(BOOL)multiController @@ -73,6 +74,7 @@ settingsToSave.bitrate = [NSNumber numberWithInteger:bitrate]; settingsToSave.height = [NSNumber numberWithInteger:height]; settingsToSave.width = [NSNumber numberWithInteger:width]; + settingsToSave.audioConfig = [NSNumber numberWithInteger:audioConfig]; settingsToSave.onscreenControls = [NSNumber numberWithInteger:onscreenControls]; settingsToSave.optimizeGames = optimizeGames; settingsToSave.multiController = multiController; diff --git a/Limelight/Database/TemporarySettings.h b/Limelight/Database/TemporarySettings.h index 822f30f..bb38a65 100644 --- a/Limelight/Database/TemporarySettings.h +++ b/Limelight/Database/TemporarySettings.h @@ -16,6 +16,7 @@ @property (nonatomic, retain) NSNumber * framerate; @property (nonatomic, retain) NSNumber * height; @property (nonatomic, retain) NSNumber * width; +@property (nonatomic, retain) NSNumber * audioConfig; @property (nonatomic, retain) NSNumber * onscreenControls; @property (nonatomic, retain) NSString * uniqueId; @property (nonatomic) BOOL useHevc; diff --git a/Limelight/Database/TemporarySettings.m b/Limelight/Database/TemporarySettings.m index 2c54fe0..90720fe 100644 --- a/Limelight/Database/TemporarySettings.m +++ b/Limelight/Database/TemporarySettings.m @@ -34,6 +34,8 @@ assert([self.bitrate intValue] != 0); self.framerate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"]]; assert([self.framerate intValue] != 0); + self.audioConfig = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"audioConfig"]]; + assert([self.audioConfig intValue] != 0); self.useHevc = [[NSUserDefaults standardUserDefaults] boolForKey:@"useHevc"]; self.useFramePacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"useFramePacing"] != 0; self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"]; @@ -66,6 +68,7 @@ self.framerate = settings.framerate; self.height = settings.height; self.width = settings.width; + self.audioConfig = settings.audioConfig; self.useHevc = settings.useHevc; self.useFramePacing = settings.useFramePacing; self.playAudioOnPC = settings.playAudioOnPC; diff --git a/Limelight/Limelight.xcdatamodeld/Moonlight v1.7.xcdatamodel/contents b/Limelight/Limelight.xcdatamodeld/Moonlight v1.7.xcdatamodel/contents index 4ab0e55..712c76a 100644 --- a/Limelight/Limelight.xcdatamodeld/Moonlight v1.7.xcdatamodel/contents +++ b/Limelight/Limelight.xcdatamodeld/Moonlight v1.7.xcdatamodel/contents @@ -22,6 +22,7 @@ + diff --git a/Limelight/ViewControllers/MainFrameViewController.m b/Limelight/ViewControllers/MainFrameViewController.m index 222e62e..508ce44 100644 --- a/Limelight/ViewControllers/MainFrameViewController.m +++ b/Limelight/ViewControllers/MainFrameViewController.m @@ -631,15 +631,13 @@ static NSMutableSet* hostList; // multiController must be set before calling getConnectedGamepadMask _streamConfig.multiController = streamSettings.multiController; _streamConfig.gamepadMask = [ControllerSupport getConnectedGamepadMask:_streamConfig]; - - // Probe for supported channel configurations - long outputChannels = [AVAudioSession sharedInstance].maximumOutputNumberOfChannels; - Log(LOG_I, @"Audio device supports %d channels", outputChannels); - if (outputChannels >= 8) { + int numberOfChannels = [streamSettings.audioConfig intValue]; + Log(LOG_I, @"Number of audio channels %d", numberOfChannels); + if (numberOfChannels >= 8) { _streamConfig.audioConfiguration = AUDIO_CONFIGURATION_71_SURROUND; } - else if (outputChannels >= 6) { + else if (numberOfChannels >= 6) { _streamConfig.audioConfiguration = AUDIO_CONFIGURATION_51_SURROUND; } else { diff --git a/Moonlight TV/Settings.bundle/Root.plist b/Moonlight TV/Settings.bundle/Root.plist index 91bad4b..c31795f 100644 --- a/Moonlight TV/Settings.bundle/Root.plist +++ b/Moonlight TV/Settings.bundle/Root.plist @@ -90,6 +90,28 @@ 150000 + + Type + PSMultiValueSpecifier + Title + Audio Configuration + Key + audioConfig + DefaultValue + 2 + Titles + + Stereo + 5.1 + 7.1 + + Values + + 2 + 6 + 8 + + Type PSGroupSpecifier