This commit is contained in:
bluesea 2024-06-17 09:41:43 +08:00
parent 21d7414406
commit 3ca24e1749
8 changed files with 27 additions and 27 deletions

View File

@ -40,7 +40,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate
self.configureAppearance() self.configureAppearance()
// Controllers // Controllers
ExternalGameControllerManager.shared.startMonitoring() ELUxGameControllerManager.shared.startMonitoring()
// JIT // JIT
ServerManager.shared.prepare() ServerManager.shared.prepare()

View File

@ -607,14 +607,14 @@ private extension GameViewController
{ {
@objc func updateControllers() @objc func updateControllers()
{ {
let isExternalGameControllerConnected = ExternalGameControllerManager.shared.connectedControllers.contains(where: { $0.playerIndex != nil }) let isExternalGameControllerConnected = ELUxGameControllerManager.shared.connectedControllers.contains(where: { $0.playerIndex != nil })
if !isExternalGameControllerConnected && Settings.localControllerPlayerIndex == nil if !isExternalGameControllerConnected && Settings.localControllerPlayerIndex == nil
{ {
Settings.localControllerPlayerIndex = 0 Settings.localControllerPlayerIndex = 0
} }
// If Settings.localControllerPlayerIndex is non-nil, and there isn't a connected controller with same playerIndex, show controller view. // If Settings.localControllerPlayerIndex is non-nil, and there isn't a connected controller with same playerIndex, show controller view.
if let index = Settings.localControllerPlayerIndex, !ExternalGameControllerManager.shared.connectedControllers.contains(where: { $0.playerIndex == index }) if let index = Settings.localControllerPlayerIndex, !ELUxGameControllerManager.shared.connectedControllers.contains(where: { $0.playerIndex == index })
{ {
self.controllerView.playerIndex = index self.controllerView.playerIndex = index
self.controllerView.isHidden = false self.controllerView.isHidden = false
@ -644,7 +644,7 @@ private extension GameViewController
// Roundabout way of combining arrays to prevent rare runtime crash in + operator :( // Roundabout way of combining arrays to prevent rare runtime crash in + operator :(
var controllers = [GameController]() var controllers = [GameController]()
controllers.append(self.controllerView) controllers.append(self.controllerView)
controllers.append(contentsOf: ExternalGameControllerManager.shared.connectedControllers) controllers.append(contentsOf: ELUxGameControllerManager.shared.connectedControllers)
if let emulatorCore = self.emulatorCore, let game = self.game if let emulatorCore = self.emulatorCore, let game = self.game
{ {

View File

@ -57,7 +57,7 @@ class ControllersSettingsViewController: UITableViewController
else else
{ {
// Ensure it's still a discovered controller, or else it might crash when setting player index. // Ensure it's still a discovered controller, or else it might crash when setting player index.
if ExternalGameControllerManager.shared.connectedControllers.contains(where: { $0 === oldValue }) if ELUxGameControllerManager.shared.connectedControllers.contains(where: { $0 === oldValue })
{ {
oldValue?.playerIndex = nil oldValue?.playerIndex = nil
} }
@ -67,7 +67,7 @@ class ControllersSettingsViewController: UITableViewController
} }
} }
private var connectedControllers = ExternalGameControllerManager.shared.connectedControllers.sorted(by: { $0.playerIndex ?? NSIntegerMax < $1.playerIndex ?? NSIntegerMax }) private var connectedControllers = ELUxGameControllerManager.shared.connectedControllers.sorted(by: { $0.playerIndex ?? NSIntegerMax < $1.playerIndex ?? NSIntegerMax })
private lazy var localDeviceController: LocalDeviceController = { private lazy var localDeviceController: LocalDeviceController = {
let device = LocalDeviceController() let device = LocalDeviceController()

View File

@ -431,9 +431,9 @@ extension SettingsViewController
// { // {
// cell.detailTextLabel?.text = UIDevice.current.name // cell.detailTextLabel?.text = UIDevice.current.name
// } // }
// else if let index = ExternalGameControllerManager.shared.connectedControllers.firstIndex(where: { $0.playerIndex == indexPath.row }) // else if let index = ELUxGameControllerManager.shared.connectedControllers.firstIndex(where: { $0.playerIndex == indexPath.row })
// { // {
// let controller = ExternalGameControllerManager.shared.connectedControllers[index] // let controller = ELUxGameControllerManager.shared.connectedControllers[index]
// cell.detailTextLabel?.text = controller.name // cell.detailTextLabel?.text = controller.name
// } // }
// else // else

View File

@ -1,5 +1,5 @@
// //
// ExternalGameControllerManager.swift // ELUxGameControllerManager.swift
// HthikCore // HthikCore
// //
// Created by Hthik on 8/20/15. // Created by Hthik on 8/20/15.
@ -12,7 +12,7 @@ import GameController
private let ExternalKeyboardStatusDidChange: @convention(c) (CFNotificationCenter?, UnsafeMutableRawPointer?, CFNotificationName?, UnsafeRawPointer?, CFDictionary?) -> Void = { private let ExternalKeyboardStatusDidChange: @convention(c) (CFNotificationCenter?, UnsafeMutableRawPointer?, CFNotificationName?, UnsafeRawPointer?, CFDictionary?) -> Void = {
(notificationCenter, observer, name, object, userInfo) in (notificationCenter, observer, name, object, userInfo) in
if ExternalGameControllerManager.shared.isKeyboardConnected if ELUxGameControllerManager.shared.isKeyboardConnected
{ {
NotificationCenter.default.post(name: .externalKeyboardDidConnect, object: nil) NotificationCenter.default.post(name: .externalKeyboardDidConnect, object: nil)
} }
@ -33,9 +33,9 @@ public extension Notification.Name
static let externalKeyboardDidDisconnect = Notification.Name("ExternalKeyboardDidDisconnect") static let externalKeyboardDidDisconnect = Notification.Name("ExternalKeyboardDidDisconnect")
} }
public class ExternalGameControllerManager: UIResponder public class ELUxGameControllerManager: UIResponder
{ {
public static let shared = ExternalGameControllerManager() public static let shared = ELUxGameControllerManager()
//MARK: - Properties - //MARK: - Properties -
/** Properties **/ /** Properties **/
@ -86,7 +86,7 @@ public class ExternalGameControllerManager: UIResponder
//MARK: - Discovery - //MARK: - Discovery -
/** Discovery **/ /** Discovery **/
public extension ExternalGameControllerManager public extension ELUxGameControllerManager
{ {
// //
func startMonitoring() func startMonitoring()
@ -105,20 +105,20 @@ public extension ExternalGameControllerManager
} }
// //
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.mfiGameControllerDidConnect(_:)), name: .GCControllerDidConnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.mfiGameControllerDidConnect(_:)), name: .GCControllerDidConnect, object: nil)
// //
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.mfiGameControllerDidDisconnect(_:)), name: .GCControllerDidDisconnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.mfiGameControllerDidDisconnect(_:)), name: .GCControllerDidDisconnect, object: nil)
// //
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.keyboardDidConnect(_:)), name: .externalKeyboardDidConnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.keyboardDidConnect(_:)), name: .externalKeyboardDidConnect, object: nil)
// //
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.keyboardDidDisconnect(_:)), name: .externalKeyboardDidDisconnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.keyboardDidDisconnect(_:)), name: .externalKeyboardDidDisconnect, object: nil)
if #available(iOS 14, *) if #available(iOS 14, *)
{ {
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.gcKeyboardDidConnect(_:)), name: .GCKeyboardDidConnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.gcKeyboardDidConnect(_:)), name: .GCKeyboardDidConnect, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(ExternalGameControllerManager.gcKeyboardDidDisconnect(_:)), name: .GCKeyboardDidDisconnect, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(ELUxGameControllerManager.gcKeyboardDidDisconnect(_:)), name: .GCKeyboardDidDisconnect, object: nil)
} }
else else
{ {
@ -153,7 +153,7 @@ public extension ExternalGameControllerManager
} }
//MARK: - External Keyboard - //MARK: - External Keyboard -
public extension ExternalGameControllerManager public extension ELUxGameControllerManager
{ {
// Implementation based on Ian McDowell's tweet: https://twitter.com/ian_mcdowell/status/844572113759547392 // Implementation based on Ian McDowell's tweet: https://twitter.com/ian_mcdowell/status/844572113759547392
// Ian McDowell // Ian McDowell
@ -200,7 +200,7 @@ public extension ExternalGameControllerManager
} }
//MARK: - Managing Controllers - //MARK: - Managing Controllers -
private extension ExternalGameControllerManager private extension ELUxGameControllerManager
{ {
func add(_ controller: GameController) func add(_ controller: GameController)
{ {
@ -226,7 +226,7 @@ private extension ExternalGameControllerManager
} }
//MARK: - MFi Game Controllers - //MARK: - MFi Game Controllers -
private extension ExternalGameControllerManager private extension ELUxGameControllerManager
{ {
@objc func mfiGameControllerDidConnect(_ notification: Notification) @objc func mfiGameControllerDidConnect(_ notification: Notification)
{ {
@ -265,7 +265,7 @@ private extension ExternalGameControllerManager
} }
//MARK: - Keyboard Game Controllers - //MARK: - Keyboard Game Controllers -
private extension ExternalGameControllerManager private extension ELUxGameControllerManager
{ {
@objc func keyboardDidConnect(_ notification: Notification) @objc func keyboardDidConnect(_ notification: Notification)
{ {

View File

@ -149,12 +149,12 @@ extension KeyboardResponder
KeyboardResponder.activeKeyPresses[keyCode] = keyPress KeyboardResponder.activeKeyPresses[keyCode] = keyPress
UIResponder.firstResponder?.keyPressesBegan([keyPress], with: event) UIResponder.firstResponder?.keyPressesBegan([keyPress], with: event)
ExternalGameControllerManager.shared.keyPressesBegan([keyPress], with: event) ELUxGameControllerManager.shared.keyPressesBegan([keyPress], with: event)
} }
else else
{ {
UIResponder.firstResponder?.keyPressesEnded([keyPress], with: event) UIResponder.firstResponder?.keyPressesEnded([keyPress], with: event)
ExternalGameControllerManager.shared.keyPressesEnded([keyPress], with: event) ELUxGameControllerManager.shared.keyPressesEnded([keyPress], with: event)
KeyboardResponder.activeKeyPresses[keyCode] = nil KeyboardResponder.activeKeyPresses[keyCode] = nil
} }

View File

@ -335,7 +335,7 @@ extension ControllerView
// nil inputView // nil inputView
guard let controllerSkin = self.controllerSkin, let traits = self.controllerSkinTraits else { return false } guard let controllerSkin = self.controllerSkin, let traits = self.controllerSkinTraits else { return false }
if let keyboardController = ExternalGameControllerManager.shared.keyboardController, keyboardController.playerIndex != nil if let keyboardController = ELUxGameControllerManager.shared.keyboardController, keyboardController.playerIndex != nil
{ {
// Keyboard is connected and has non-nil player index, so return true to receive keyboard presses. // Keyboard is connected and has non-nil player index, so return true to receive keyboard presses.
// true // true
@ -374,7 +374,7 @@ extension ControllerView
} }
public override var inputView: UIView? { public override var inputView: UIView? {
if let keyboardController = ExternalGameControllerManager.shared.keyboardController, keyboardController.playerIndex != nil if let keyboardController = ELUxGameControllerManager.shared.keyboardController, keyboardController.playerIndex != nil
{ {
// Don't display any inputView if keyboard is connected and has non-nil player index. // Don't display any inputView if keyboard is connected and has non-nil player index.
// inputView // inputView