mirror of
https://github.com/moonlight-stream/moonlight-ios.git
synced 2026-04-21 16:00:17 +00:00
Fix for: Surround sound audio on Apple TV #371
Added audio configuration option to the settings menu to allow users to select their speaker setup.
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
framerate:(NSInteger)framerate
|
framerate:(NSInteger)framerate
|
||||||
height:(NSInteger)height
|
height:(NSInteger)height
|
||||||
width:(NSInteger)width
|
width:(NSInteger)width
|
||||||
|
audioConfig:(NSInteger)audioConfig
|
||||||
onscreenControls:(NSInteger)onscreenControls
|
onscreenControls:(NSInteger)onscreenControls
|
||||||
optimizeGames:(BOOL)optimizeGames
|
optimizeGames:(BOOL)optimizeGames
|
||||||
multiController:(BOOL)multiController
|
multiController:(BOOL)multiController
|
||||||
|
|||||||
@@ -56,6 +56,7 @@
|
|||||||
framerate:(NSInteger)framerate
|
framerate:(NSInteger)framerate
|
||||||
height:(NSInteger)height
|
height:(NSInteger)height
|
||||||
width:(NSInteger)width
|
width:(NSInteger)width
|
||||||
|
audioConfig:(NSInteger)audioConfig
|
||||||
onscreenControls:(NSInteger)onscreenControls
|
onscreenControls:(NSInteger)onscreenControls
|
||||||
optimizeGames:(BOOL)optimizeGames
|
optimizeGames:(BOOL)optimizeGames
|
||||||
multiController:(BOOL)multiController
|
multiController:(BOOL)multiController
|
||||||
@@ -73,6 +74,7 @@
|
|||||||
settingsToSave.bitrate = [NSNumber numberWithInteger:bitrate];
|
settingsToSave.bitrate = [NSNumber numberWithInteger:bitrate];
|
||||||
settingsToSave.height = [NSNumber numberWithInteger:height];
|
settingsToSave.height = [NSNumber numberWithInteger:height];
|
||||||
settingsToSave.width = [NSNumber numberWithInteger:width];
|
settingsToSave.width = [NSNumber numberWithInteger:width];
|
||||||
|
settingsToSave.audioConfig = [NSNumber numberWithInteger:audioConfig];
|
||||||
settingsToSave.onscreenControls = [NSNumber numberWithInteger:onscreenControls];
|
settingsToSave.onscreenControls = [NSNumber numberWithInteger:onscreenControls];
|
||||||
settingsToSave.optimizeGames = optimizeGames;
|
settingsToSave.optimizeGames = optimizeGames;
|
||||||
settingsToSave.multiController = multiController;
|
settingsToSave.multiController = multiController;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
@property (nonatomic, retain) NSNumber * framerate;
|
@property (nonatomic, retain) NSNumber * framerate;
|
||||||
@property (nonatomic, retain) NSNumber * height;
|
@property (nonatomic, retain) NSNumber * height;
|
||||||
@property (nonatomic, retain) NSNumber * width;
|
@property (nonatomic, retain) NSNumber * width;
|
||||||
|
@property (nonatomic, retain) NSNumber * audioConfig;
|
||||||
@property (nonatomic, retain) NSNumber * onscreenControls;
|
@property (nonatomic, retain) NSNumber * onscreenControls;
|
||||||
@property (nonatomic, retain) NSString * uniqueId;
|
@property (nonatomic, retain) NSString * uniqueId;
|
||||||
@property (nonatomic) BOOL useHevc;
|
@property (nonatomic) BOOL useHevc;
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
assert([self.bitrate intValue] != 0);
|
assert([self.bitrate intValue] != 0);
|
||||||
self.framerate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"]];
|
self.framerate = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"framerate"]];
|
||||||
assert([self.framerate intValue] != 0);
|
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.useHevc = [[NSUserDefaults standardUserDefaults] boolForKey:@"useHevc"];
|
||||||
self.useFramePacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"useFramePacing"] != 0;
|
self.useFramePacing = [[NSUserDefaults standardUserDefaults] integerForKey:@"useFramePacing"] != 0;
|
||||||
self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"];
|
self.playAudioOnPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"audioOnPC"];
|
||||||
@@ -66,6 +68,7 @@
|
|||||||
self.framerate = settings.framerate;
|
self.framerate = settings.framerate;
|
||||||
self.height = settings.height;
|
self.height = settings.height;
|
||||||
self.width = settings.width;
|
self.width = settings.width;
|
||||||
|
self.audioConfig = settings.audioConfig;
|
||||||
self.useHevc = settings.useHevc;
|
self.useHevc = settings.useHevc;
|
||||||
self.useFramePacing = settings.useFramePacing;
|
self.useFramePacing = settings.useFramePacing;
|
||||||
self.playAudioOnPC = settings.playAudioOnPC;
|
self.playAudioOnPC = settings.playAudioOnPC;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
</entity>
|
</entity>
|
||||||
<entity name="Settings" representedClassName="Settings" syncable="YES" codeGenerationType="class">
|
<entity name="Settings" representedClassName="Settings" syncable="YES" codeGenerationType="class">
|
||||||
<attribute name="absoluteTouchMode" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
<attribute name="absoluteTouchMode" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
||||||
|
<attribute name="audioConfig" attributeType="Integer 32" defaultValueString="2" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="bitrate" attributeType="Integer 32" defaultValueString="10000" usesScalarValueType="NO" syncable="YES"/>
|
<attribute name="bitrate" attributeType="Integer 32" defaultValueString="10000" usesScalarValueType="NO" syncable="YES"/>
|
||||||
<attribute name="btMouseSupport" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
<attribute name="btMouseSupport" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
||||||
<attribute name="enableHdr" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
<attribute name="enableHdr" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES" syncable="YES"/>
|
||||||
|
|||||||
@@ -631,15 +631,13 @@ static NSMutableSet* hostList;
|
|||||||
// multiController must be set before calling getConnectedGamepadMask
|
// multiController must be set before calling getConnectedGamepadMask
|
||||||
_streamConfig.multiController = streamSettings.multiController;
|
_streamConfig.multiController = streamSettings.multiController;
|
||||||
_streamConfig.gamepadMask = [ControllerSupport getConnectedGamepadMask:_streamConfig];
|
_streamConfig.gamepadMask = [ControllerSupport getConnectedGamepadMask:_streamConfig];
|
||||||
|
|
||||||
|
|
||||||
// Probe for supported channel configurations
|
int numberOfChannels = [streamSettings.audioConfig intValue];
|
||||||
long outputChannels = [AVAudioSession sharedInstance].maximumOutputNumberOfChannels;
|
Log(LOG_I, @"Number of audio channels %d", numberOfChannels);
|
||||||
Log(LOG_I, @"Audio device supports %d channels", outputChannels);
|
if (numberOfChannels >= 8) {
|
||||||
if (outputChannels >= 8) {
|
|
||||||
_streamConfig.audioConfiguration = AUDIO_CONFIGURATION_71_SURROUND;
|
_streamConfig.audioConfiguration = AUDIO_CONFIGURATION_71_SURROUND;
|
||||||
}
|
}
|
||||||
else if (outputChannels >= 6) {
|
else if (numberOfChannels >= 6) {
|
||||||
_streamConfig.audioConfiguration = AUDIO_CONFIGURATION_51_SURROUND;
|
_streamConfig.audioConfiguration = AUDIO_CONFIGURATION_51_SURROUND;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -90,6 +90,28 @@
|
|||||||
<string>150000</string>
|
<string>150000</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSMultiValueSpecifier</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Audio Configuration</string>
|
||||||
|
<key>Key</key>
|
||||||
|
<string>audioConfig</string>
|
||||||
|
<key>DefaultValue</key>
|
||||||
|
<string>2</string>
|
||||||
|
<key>Titles</key>
|
||||||
|
<array>
|
||||||
|
<string>Stereo</string>
|
||||||
|
<string>5.1</string>
|
||||||
|
<string>7.1</string>
|
||||||
|
</array>
|
||||||
|
<key>Values</key>
|
||||||
|
<array>
|
||||||
|
<string>2</string>
|
||||||
|
<string>6</string>
|
||||||
|
<string>8</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Type</key>
|
<key>Type</key>
|
||||||
<string>PSGroupSpecifier</string>
|
<string>PSGroupSpecifier</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user