mirror of
https://github.com/moonlight-stream/moonlight-ios.git
synced 2025-07-01 07:15:44 +00:00
95 lines
4.2 KiB
Objective-C
95 lines
4.2 KiB
Objective-C
//
|
|
// TemporarySettings.m
|
|
// Moonlight
|
|
//
|
|
// Created by Cameron Gutman on 12/1/15.
|
|
// Copyright © 2015 Moonlight Stream. All rights reserved.
|
|
//
|
|
|
|
#import "TemporarySettings.h"
|
|
#import "OnScreenControls.h"
|
|
|
|
@implementation TemporarySettings
|
|
|
|
- (id) initFromSettings:(Settings*)settings {
|
|
self = [self init];
|
|
|
|
self.parent = settings;
|
|
|
|
#if TARGET_OS_TV
|
|
// Apply default values from our Root.plist
|
|
NSString* settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
|
|
NSDictionary* settingsData = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]];
|
|
NSArray* preferences = [settingsData objectForKey:@"PreferenceSpecifiers"];
|
|
NSMutableDictionary* defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
|
|
for (NSDictionary* prefSpecification in preferences) {
|
|
NSString* key = [prefSpecification objectForKey:@"Key"];
|
|
if (key != nil) {
|
|
[defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key];
|
|
}
|
|
}
|
|
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
|
|
|
|
self.bitrate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"bitrate"]];
|
|
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.preferredCodec = [[NSUserDefaults standardUserDefaults] integerForKey:@"preferredCodec"];
|
|
self.useFramePacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"useFramePacing"] != 0;
|
|
self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"];
|
|
self.enableHdr = [[NSUserDefaults standardUserDefaults] boolForKey:@"enableHdr"];
|
|
self.optimizeGames = [[NSUserDefaults standardUserDefaults] boolForKey:@"optimizeGames"];
|
|
self.multiController = [[NSUserDefaults standardUserDefaults] boolForKey:@"multipleControllers"];
|
|
self.swapABXYButtons = [[NSUserDefaults standardUserDefaults] boolForKey:@"swapABXYButtons"];
|
|
self.btMouseSupport = [[NSUserDefaults standardUserDefaults] boolForKey:@"btMouseSupport"];
|
|
self.statsOverlay = [[NSUserDefaults standardUserDefaults] boolForKey:@"statsOverlay"];
|
|
|
|
NSInteger _screenSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"streamResolution"];
|
|
switch (_screenSize) {
|
|
case 0:
|
|
self.height = [NSNumber numberWithInteger:720];
|
|
self.width = [NSNumber numberWithInteger:1280];
|
|
break;
|
|
case 1:
|
|
self.height = [NSNumber numberWithInteger:1080];
|
|
self.width = [NSNumber numberWithInteger:1920];
|
|
break;
|
|
case 2:
|
|
self.height = [NSNumber numberWithInteger:2160];
|
|
self.width = [NSNumber numberWithInteger:3840];
|
|
break;
|
|
case 3:
|
|
self.height = [NSNumber numberWithInteger:1440];
|
|
self.width = [NSNumber numberWithInteger:2560];
|
|
break;
|
|
default:
|
|
abort();
|
|
}
|
|
self.onscreenControls = [NSNumber numberWithInteger:OnScreenControlsLevelOff];
|
|
#else
|
|
self.bitrate = settings.bitrate;
|
|
self.framerate = settings.framerate;
|
|
self.height = settings.height;
|
|
self.width = settings.width;
|
|
self.audioConfig = settings.audioConfig;
|
|
self.preferredCodec = settings.preferredCodec;
|
|
self.useFramePacing = settings.useFramePacing;
|
|
self.playAudioOnPC = settings.playAudioOnPC;
|
|
self.enableHdr = settings.enableHdr;
|
|
self.optimizeGames = settings.optimizeGames;
|
|
self.multiController = settings.multiController;
|
|
self.swapABXYButtons = settings.swapABXYButtons;
|
|
self.onscreenControls = settings.onscreenControls;
|
|
self.btMouseSupport = settings.btMouseSupport;
|
|
self.absoluteTouchMode = settings.absoluteTouchMode;
|
|
self.statsOverlay = settings.statsOverlay;
|
|
#endif
|
|
self.uniqueId = settings.uniqueId;
|
|
|
|
return self;
|
|
}
|
|
|
|
@end
|