Fix default resolution not taking effect on tvOS

This commit is contained in:
Cameron Gutman
2019-10-12 18:10:12 -07:00
parent 09ac6cc057
commit fb2d58da6a
+26 -23
View File
@@ -17,26 +17,28 @@
self.parent = settings; self.parent = settings;
#if TARGET_OS_TV #if TARGET_OS_TV
NSInteger _bitrate = [[NSUserDefaults standardUserDefaults] integerForKey:@"bitrate"]; // Apply default values from our Root.plist
NSInteger _framerate = [[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"]; NSString* settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
NSDictionary* settingsData = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]];
if (_bitrate) { NSArray* preferences = [settingsData objectForKey:@"PreferenceSpecifiers"];
self.bitrate = [NSNumber numberWithInteger:_bitrate]; NSMutableDictionary* defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
} else { for (NSDictionary* prefSpecification in preferences) {
self.bitrate = [NSNumber numberWithInteger:20000]; NSString* key = [prefSpecification objectForKey:@"Key"];
if (key != nil) {
[defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key];
}
} }
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
if (_framerate) {
self.framerate = [NSNumber numberWithInteger:_framerate]; self.bitrate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"bitrate"]];
} else { assert(self.bitrate);
self.framerate = [NSNumber numberWithInteger:60]; self.framerate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"]];
} assert(self.framerate);
self.useHevc = [[NSUserDefaults standardUserDefaults] boolForKey:@"useHevc"];
self.useHevc = [[NSUserDefaults standardUserDefaults] boolForKey:@"useHevc"] || NO; self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"];
self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"] || NO; self.enableHdr = [[NSUserDefaults standardUserDefaults] boolForKey:@"enableHdr"];
self.enableHdr = [[NSUserDefaults standardUserDefaults] boolForKey:@"enableHdr"] || NO; self.optimizeGames = [[NSUserDefaults standardUserDefaults] boolForKey:@"optimizeGames"];
self.optimizeGames = [[NSUserDefaults standardUserDefaults] boolForKey:@"optimizeGames"] || YES; self.multiController = [[NSUserDefaults standardUserDefaults] boolForKey:@"multipleControllers"];
self.multiController = [[NSUserDefaults standardUserDefaults] boolForKey:@"multipleControllers"] || YES;
NSInteger _screenSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"streamResolution"]; NSInteger _screenSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"streamResolution"];
switch (_screenSize) { switch (_screenSize) {
@@ -44,15 +46,16 @@
self.height = [NSNumber numberWithInteger:720]; self.height = [NSNumber numberWithInteger:720];
self.width = [NSNumber numberWithInteger:1280]; self.width = [NSNumber numberWithInteger:1280];
break; break;
case 1:
self.height = [NSNumber numberWithInteger:1080];
self.width = [NSNumber numberWithInteger:1920];
break;
case 2: case 2:
self.height = [NSNumber numberWithInteger:2160]; self.height = [NSNumber numberWithInteger:2160];
self.width = [NSNumber numberWithInteger:3840]; self.width = [NSNumber numberWithInteger:3840];
break; break;
case 1:
default: default:
self.height = [NSNumber numberWithInteger:1080]; abort();
self.width = [NSNumber numberWithInteger:1920];
break;
} }
self.onscreenControls = [NSNumber numberWithInteger:OnScreenControlsLevelOff]; self.onscreenControls = [NSNumber numberWithInteger:OnScreenControlsLevelOff];
#else #else