diff --git a/Limelight/Input/CommandManager.swift b/Limelight/Input/CommandManager.swift index fc733d28..01f99250 100644 --- a/Limelight/Input/CommandManager.swift +++ b/Limelight/Input/CommandManager.swift @@ -63,9 +63,10 @@ import UIKit @objc public static let oscButtonMappings: [String: Int32] = [ - "YSRT1" : 0, // RT button & RsvPad in GenshinImpact - "YSRB1" : RB_FLAG, // RB button & RsvPad in GenshinImpact - "YSB1" : B_FLAG, // B button & RsvPad in GenshinImpact + "YSLT" : 0, + "YSRT" : 0, // RT button & RsvPad in GenshinImpact + "YSRB" : RB_FLAG, // RB button & RsvPad in GenshinImpact + "YSB" : B_FLAG, // B button & RsvPad in GenshinImpact "OSCA" : A_FLAG, "OSCB" : B_FLAG, "OSCX" : X_FLAG, @@ -96,8 +97,8 @@ import UIKit @objc public static let nonVectorStickPads: [String] = ["LSPAD", "RSPAD"] @objc public static let specialOverlayButtonCmds: [String] = ["SETTINGS"] - @objc public static let specialGameWidgets: [String] = ["YSRT1", "YSRB1", "YSB1", "YSRT2", "YSRB2", "YSB2", "YSEM", "YSML", "YSMR", "YSWASD"] - @objc public static let yuanshenRsvButtonCmds: [String] = ["YSRT1", "YSRB1", "YSB1"] + @objc public static let specialGameWidgets: [String] = ["YSLT", "YSRT", "YSRB", "YSB", "YSRT2", "YSRB2", "YSB2", "YSEM", "YSML", "YSMR", "YSWASD"] + @objc public static let yuanshenStickPadButtonCmds: [String] = ["YSLT", "YSRT", "YSRB", "YSB"] @objc public static let yuanshenMouseMoveButtonCmds: [String] = ["YSEM", "YSML", "YSMR"] static let keyboardButtonMappings: [String: Int16] = [ diff --git a/Limelight/Input/OnScreenWidgetView.swift b/Limelight/Input/OnScreenWidgetView.swift index b3b7af08..3ad737f5 100644 --- a/Limelight/Input/OnScreenWidgetView.swift +++ b/Limelight/Input/OnScreenWidgetView.swift @@ -778,17 +778,19 @@ import UIKit private func sendOscButtonDownEvent(keyString: String){ let buttonFlag = CommandManager.oscButtonMappings[keyString] if buttonFlag != 0 {self.onScreenControls.pressDownControllerButton(buttonFlag!)} - if keyString == "OSCL2" { + if keyString == "OSCL2" || keyString == "YSLT" { self.onScreenControls.updateLeftTrigger(0xFF) } - if keyString == "OSCR2" || keyString == "YSRT1" {self.onScreenControls.updateRightTrigger(0xFF)} + if keyString == "OSCR2" || keyString == "YSRT" {self.onScreenControls.updateRightTrigger(0xFF)} } private func sendOscButtonUpEvent(keyString: String){ let buttonFlag = CommandManager.oscButtonMappings[keyString] if buttonFlag != 0 {self.onScreenControls.releaseControllerButton(buttonFlag!)} - if keyString == "OSCL2" {self.onScreenControls.updateLeftTrigger(0x00)} - if keyString == "OSCR2" || keyString == "YSRT1" {self.onScreenControls.updateRightTrigger(0x00)} + if keyString == "OSCL2" || keyString == "YSLT" { + self.onScreenControls.updateLeftTrigger(0x00) + } + if keyString == "OSCR2" || keyString == "YSRT" {self.onScreenControls.updateRightTrigger(0x00)} } //============================================================================== @@ -1003,7 +1005,7 @@ import UIKit case "MOUSEPAD","YSEM","YSML","YSMR": LiSendMouseMoveEvent(Int16(truncatingIfNeeded: Int(deltaX * 1.7 * sensitivityFactor)), Int16(truncatingIfNeeded: Int(deltaY * 1.7 * sensitivityFactor))) break - case "LSPAD": + case "LSPAD", "YSLT": self.sendLeftStickTouchPadEvent(inputX: offSetX * sensitivityFactor, inputY: offSetY*sensitivityFactor) updateStickIndicator() case "RSPAD": @@ -1011,7 +1013,7 @@ import UIKit updateStickIndicator() case "LSVPAD": self.sendLeftStickTouchPadEvent(inputX: deltaX*1.5167*sensitivityFactor, inputY: deltaY*1.5167*sensitivityFactor) - case "RSVPAD", "YSB1", "YSRT1", "YSRB1": + case "RSVPAD", "YSB", "YSRT", "YSRB": self.sendRightStickTouchPadEvent(inputX: deltaX*1.5167*sensitivityFactor, inputY: deltaY*1.5167*sensitivityFactor); case "DPAD", "WASDPAD", "ARROWPAD", "YSWASD": handleLrudTouchMove() @@ -1048,17 +1050,19 @@ import UIKit } // then other types of pads - if !OnScreenWidgetView.editMode && (CommandManager.touchPadCmds.contains(self.keyString) || CommandManager.yuanshenRsvButtonCmds.contains(self.keyString)) { + if !OnScreenWidgetView.editMode && (CommandManager.touchPadCmds.contains(self.keyString) || CommandManager.yuanshenStickPadButtonCmds.contains(self.keyString)) { switch self.keyString{ case "LSPAD": self.onScreenControls.clearLeftStickTouchPadFlag() self.resetStickBallPositionAndRemoveIndicator() + case "YSLT": + self.onScreenControls.clearLeftStickTouchPadFlag() case "RSPAD": self.onScreenControls.clearRightStickTouchPadFlag() self.resetStickBallPositionAndRemoveIndicator() case "LSVPAD": self.onScreenControls.clearLeftStickTouchPadFlag() - case "RSVPAD", "YSB1", "YSRT1", "YSRB1": + case "RSVPAD", "YSB", "YSRT", "YSRB": self.onScreenControls.clearRightStickTouchPadFlag() case "WASDPAD","YSWASD": LiSendKeyboardEvent(CommandManager.keyboardButtonMappings["W"]!,Int8(KEY_ACTION_UP), 0) diff --git a/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m b/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m index 52233d1d..b1a048da 100644 --- a/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m +++ b/Limelight/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.m @@ -438,7 +438,7 @@ [self.widgetAlphaSlider setValue: self->selectedWidgetView.backgroundAlpha]; [self.widgetBorderWidthSlider setValue:self->selectedWidgetView.borderWidth]; - NSSet *stickAndMouseTouchpads = [NSSet setWithObjects:@"YSB1", @"YSRT1", @"YSRB1",@"YSB2", @"YSRT2", @"YSRB2", @"YSEM", @"YSML", @"YSMR", @"LSPAD", @"RSPAD", @"LSVPAD", @"RSVPAD", @"MOUSEPAD", nil]; + NSSet *stickAndMouseTouchpads = [NSSet setWithObjects:@"YSB", @"YSLT", @"YSRT", @"YSRB",@"YSB2", @"YSRT2", @"YSRB2", @"YSEM", @"YSML", @"YSMR", @"LSPAD", @"RSPAD", @"LSVPAD", @"RSVPAD", @"MOUSEPAD", nil]; NSSet *nonVectorStickPads = [NSSet setWithObjects: @"LSPAD", @"RSPAD", nil];