mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-06-27 19:06:23 +02:00
Fix Haptics on iPhones and make JoyCons use Device Motion.
This commit is contained in:
parent
056bcb6736
commit
43fb7e2e7f
4 changed files with 32 additions and 5 deletions
|
@ -770,6 +770,9 @@
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
GCC_OPTIMIZATION_LEVEL = z;
|
GCC_OPTIMIZATION_LEVEL = z;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
@ -1001,6 +1004,10 @@
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(VERSION)";
|
MARKETING_VERSION = "$(VERSION)";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
||||||
|
@ -1141,6 +1148,9 @@
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
GCC_OPTIMIZATION_LEVEL = z;
|
GCC_OPTIMIZATION_LEVEL = z;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
@ -1372,6 +1382,10 @@
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
|
"$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = "$(VERSION)";
|
MARKETING_VERSION = "$(VERSION)";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX;
|
||||||
|
|
Binary file not shown.
|
@ -13,6 +13,8 @@ class NativeController: Hashable, BaseController {
|
||||||
private var controller: OpaquePointer?
|
private var controller: OpaquePointer?
|
||||||
private var nativeController: GCController
|
private var nativeController: GCController
|
||||||
private var controllerMotionProvider: ControllerMotionProvider?
|
private var controllerMotionProvider: ControllerMotionProvider?
|
||||||
|
private var deviceMotionProvider: DeviceMotionProvider?
|
||||||
|
|
||||||
private let controllerHaptics: CHHapticEngine?
|
private let controllerHaptics: CHHapticEngine?
|
||||||
private let rumbleController: RumbleController?
|
private let rumbleController: RumbleController?
|
||||||
|
|
||||||
|
@ -48,14 +50,25 @@ class NativeController: Hashable, BaseController {
|
||||||
// Setup Motion
|
// Setup Motion
|
||||||
let dsuServer = DSUServer.shared
|
let dsuServer = DSUServer.shared
|
||||||
|
|
||||||
controllerMotionProvider = ControllerMotionProvider(controller: nativeController, slot: slot)
|
if nativeController.vendorName == "Joy-Con (l/R)" {
|
||||||
if let provider = controllerMotionProvider {
|
deviceMotionProvider = DeviceMotionProvider(slot: slot)
|
||||||
dsuServer.register(provider)
|
if let provider = deviceMotionProvider {
|
||||||
|
dsuServer.register(provider)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
controllerMotionProvider = ControllerMotionProvider(controller: nativeController, slot: slot)
|
||||||
|
if let provider = controllerMotionProvider {
|
||||||
|
dsuServer.register(provider)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal func tryGetMotionProvider() -> DSUMotionProvider? {
|
internal func tryGetMotionProvider() -> DSUMotionProvider? {
|
||||||
return controllerMotionProvider
|
if nativeController.vendorName == "Joy-Con (l/R)" {
|
||||||
|
return deviceMotionProvider
|
||||||
|
} else {
|
||||||
|
return controllerMotionProvider
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func setupHandheldController() {
|
private func setupHandheldController() {
|
||||||
|
|
|
@ -17,7 +17,7 @@ class RumbleController {
|
||||||
|
|
||||||
// The duration of each continuous haptic event.
|
// The duration of each continuous haptic event.
|
||||||
// We'll restart the players before this duration expires.
|
// We'll restart the players before this duration expires.
|
||||||
private let hapticEventDuration: TimeInterval = 7200
|
private let hapticEventDuration: TimeInterval = 20
|
||||||
|
|
||||||
// Timer to schedule player restarts
|
// Timer to schedule player restarts
|
||||||
private var playerRestartTimer: Timer?
|
private var playerRestartTimer: Timer?
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue