diff --git a/Limelight/Database/TemporarySettings.m b/Limelight/Database/TemporarySettings.m
index dcef089f..4ed3f925 100644
--- a/Limelight/Database/TemporarySettings.m
+++ b/Limelight/Database/TemporarySettings.m
@@ -15,18 +15,57 @@
self.parent = settings;
+#if TARGET_OS_TV
+ NSInteger _bitrate = [[NSUserDefaults standardUserDefaults] integerForKey:@"bitrate"];
+ NSInteger _framerate = [[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"];
+
+ if (_bitrate) {
+ self.bitrate = [NSNumber numberWithInteger:_bitrate];
+ } else {
+ self.bitrate = [NSNumber numberWithInteger:20000];
+ }
+
+ if (_framerate) {
+ self.framerate = [NSNumber numberWithInteger:_framerate];
+ } else {
+ self.framerate = [NSNumber numberWithInteger:60];
+ }
+
+ self.useHevc = [[NSUserDefaults standardUserDefaults] boolForKey:@"useHevc"] || NO;
+ self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"] || NO;
+ self.enableHdr = [[NSUserDefaults standardUserDefaults] boolForKey:@"enableHdr"] || NO;
+ self.optimizeGames = [[NSUserDefaults standardUserDefaults] boolForKey:@"optimizeGames"] || YES;
+ self.multiController = YES;
+ NSInteger _screenSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"streamResolution"];
+ switch (_screenSize) {
+ case 0:
+ self.height = [NSNumber numberWithInteger:720];
+ self.width = [NSNumber numberWithInteger:1280];
+ break;
+ case 2:
+ self.height = [NSNumber numberWithInteger:2160];
+ self.width = [NSNumber numberWithInteger:3840];
+ break;
+ case 1:
+ default:
+ self.height = [NSNumber numberWithInteger:1080];
+ self.width = [NSNumber numberWithInteger:1920];
+ break;
+ }
+#else
self.bitrate = settings.bitrate;
self.framerate = settings.framerate;
self.height = settings.height;
self.width = settings.width;
- self.onscreenControls = settings.onscreenControls;
- self.uniqueId = settings.uniqueId;
- self.streamingRemotely = settings.streamingRemotely;
self.useHevc = settings.useHevc;
- self.multiController = settings.multiController;
self.playAudioOnPC = settings.playAudioOnPC;
self.enableHdr = settings.enableHdr;
self.optimizeGames = settings.optimizeGames;
+ self.multiController = settings.multiController;
+#endif
+ self.onscreenControls = settings.onscreenControls;
+ self.uniqueId = settings.uniqueId;
+ self.streamingRemotely = settings.streamingRemotely;
return self;
}
diff --git a/Moonlight TV/Settings.bundle/Root.plist b/Moonlight TV/Settings.bundle/Root.plist
new file mode 100644
index 00000000..1ca6b0d8
--- /dev/null
+++ b/Moonlight TV/Settings.bundle/Root.plist
@@ -0,0 +1,143 @@
+
+
+
+
+ StringsTable
+ Root
+ PreferenceSpecifiers
+
+
+ Type
+ PSGroupSpecifier
+ Title
+ Host Configuration
+
+
+ Type
+ PSToggleSwitchSpecifier
+ DefaultValue
+
+ Title
+ Play Audio on Host PC
+ Key
+ audioOnPC
+
+
+ TrueValue
+ Optimize Games
+ FalseValue
+ Off
+ Type
+ PSToggleSwitchSpecifier
+ Title
+ Optimize Games
+ Key
+ optimizeGames
+ DefaultValue
+
+
+
+ Type
+ PSToggleSwitchSpecifier
+ Title
+ HEVC Video
+ Key
+ useHevc
+ DefaultValue
+
+
+
+ Type
+ PSToggleSwitchSpecifier
+ Title
+ Enable HDR
+ Key
+ enableHdr
+ DefaultValue
+
+
+
+ Type
+ PSGroupSpecifier
+ Title
+ Stream Configuration
+
+
+ Type
+ PSMultiValueSpecifier
+ Title
+ Stream Resolution
+ Key
+ streamResolution
+ DefaultValue
+ 1
+ Values
+
+ 0
+ 1
+ 2
+
+ Titles
+
+ 720p
+ 1080p
+ 4K
+
+
+
+ Type
+ PSMultiValueSpecifier
+ Title
+ Frame Rate
+ Key
+ framerate
+ DefaultValue
+ 60
+ Values
+
+ 30
+ 60
+
+ Titles
+
+ 30 FPS
+ 60 FPS
+
+
+
+ Type
+ PSMultiValueSpecifier
+ Title
+ Bitrate
+ Key
+ bitrate
+ DefaultValue
+ 10000
+ Titles
+
+ 0.5 Mbps
+ 1 Mbps
+ 2 Mbps
+ 5 Mbps
+ 10 Mbps
+ 20 Mbps
+ 25 Mbps
+ 50 Mbps
+ 100 Mbps
+
+ Values
+
+ 500
+ 1000
+ 2000
+ 5000
+ 10000
+ 20000
+ 25000
+ 50000
+ 100000
+
+
+
+
+
diff --git a/Moonlight TV/Settings.bundle/en.lproj/Root.strings b/Moonlight TV/Settings.bundle/en.lproj/Root.strings
new file mode 100644
index 00000000..8cd87b9d
Binary files /dev/null and b/Moonlight TV/Settings.bundle/en.lproj/Root.strings differ
diff --git a/Moonlight.xcodeproj/project.pbxproj b/Moonlight.xcodeproj/project.pbxproj
index dc484dd6..82ebeef1 100644
--- a/Moonlight.xcodeproj/project.pbxproj
+++ b/Moonlight.xcodeproj/project.pbxproj
@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
+ 693B3A9B218638CD00982F7B /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 693B3A9A218638CD00982F7B /* Settings.bundle */; };
9832D1361BBCD5C50036EF48 /* TemporaryApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 9832D1351BBCD5C50036EF48 /* TemporaryApp.m */; };
9865DC30213260B40005B9B9 /* libmoonlight-common-tv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FB1A68152132509400507771 /* libmoonlight-common-tv.a */; };
9865DC31213260F10005B9B9 /* mkcert.c in Sources */ = {isa = PBXBuildFile; fileRef = FB89460719F646E200339C8A /* mkcert.c */; };
@@ -160,6 +161,7 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
+ 693B3A9A218638CD00982F7B /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; };
98132E8C20BC9A62007A053F /* Moonlight v1.1.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Moonlight v1.1.xcdatamodel"; sourceTree = ""; };
9832D1341BBCD5C50036EF48 /* TemporaryApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TemporaryApp.h; path = Database/TemporaryApp.h; sourceTree = ""; };
9832D1351BBCD5C50036EF48 /* TemporaryApp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TemporaryApp.m; path = Database/TemporaryApp.m; sourceTree = ""; };
@@ -440,6 +442,7 @@
FB1A67612132419A00507771 /* Assets.xcassets */,
FB1A67632132419A00507771 /* Info.plist */,
FB1A67642132419A00507771 /* main.m */,
+ 693B3A9A218638CD00982F7B /* Settings.bundle */,
);
path = "Moonlight TV";
sourceTree = "";
@@ -968,6 +971,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 693B3A9B218638CD00982F7B /* Settings.bundle in Resources */,
FB1A681E21328A1B00507771 /* Images.xcassets in Resources */,
FB1A67622132419A00507771 /* Assets.xcassets in Resources */,
FB1A67602132419700507771 /* Main.storyboard in Resources */,