-
Notifications
You must be signed in to change notification settings - Fork 516
GameController macOS xcode15.3 b1
Alex Soto edited this page Jan 27, 2024
·
1 revision
#GameController.framework
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCAxis2DInput.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCAxis2DInput.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCAxis2DInput.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCAxis2DInput.h 2024-01-19 03:43:22
@@ -0,0 +1,89 @@
+//
+// GCAxis2DInput.h
+// GameController
+//
+// Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <GameController/GCTypes.h>
+
+@protocol GCPhysicalInputElement;
+@protocol GCPhysicalInputSource;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ An object conforming to \c GCAxis2DInput represents an input that produces a
+ pair of normalized values - between [-1, 1] - along two axes with fixed origin.
+ The origin - a value of 0 - corresponds the neutral state of the input.
+ */
+API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1))
+@protocol GCAxis2DInput <NSObject>
+
+/**
+ Set this block to be notified when the value of the axis input changes.
+
+ @param element the element that has been modified.
+ @param input the input that has been modified.
+ @param value the value the axis was set to at the time the valueChangedHandler fired.
+ */
+@property (atomic, copy, nullable) void (^valueDidChangeHandler)(__kindof id<GCPhysicalInputElement> element, id<GCAxis2DInput> input, GCPoint2 value);
+
+/**
+ A pair of x,y normalized values for the axis input, each between -1 and 1
+ (inclusive). The values are deadzoned and saturated before they are returned
+ so there is no value outside the range. Deadzoning does not remove values
+ from the range; the full 0 to 1 magnitude of values are possible from the input.
+
+ As an axis is often used in a digital sense, you can rely on a value of 0
+ meaning the axis is inside the deadzone. Any value greater than or less than
+ zero is not in the deadzone.
+ */
+@property (readonly) GCPoint2 value;
+
+/**
+ Check if the axis can support more than just digital values.
+
+ Defaults to \c YES for most axis inputs.
+ */
+@property (readonly, getter = isAnalog) BOOL analog;
+
+/**
+ Check if the axis input value "rolls over" when reaching either the extreme
+ high or low value. For example, some dials can be rotated past the position
+ that represents their maximum value causing the reported value to roll over.
+
+ Defaults to \c NO for most axis elements.
+ */
+@property (readonly) BOOL canWrap;
+
+/**
+ The timestamp of the last value.
+
+ This time interval is not relative to any specific point in time. You can
+ subtract a previous timestamp from the current timestamp to determine the time
+ (in seconds) between changes to the value.
+ */
+@property (readonly) NSTimeInterval lastValueTimestamp;
+
+/**
+ The interval (in seconds) between the timestamp of the last event and the
+ current time.
+
+ This should be treated as a lower bound of the event latency. It may not
+ include (wired or wireless) transmission latency, or latency accrued on
+ the device before the event was transmitted to the host.
+ */
+@property (readonly) NSTimeInterval lastValueLatency;
+
+/**
+ An object describing the physical action(s) the user performs to manipulate
+ this input.
+ */
+@property (copy, readonly) NSSet<id<GCPhysicalInputSource>> *sources;
+
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCDirectionPadElement.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCDirectionPadElement.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCDirectionPadElement.h 2023-11-12 04:29:13
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCDirectionPadElement.h 2024-01-19 03:43:23
@@ -8,6 +8,7 @@
#import <GameController/GCPhysicalInputElement.h>
#import <GameController/GCLinearInput.h>
#import <GameController/GCAxisInput.h>
+#import <GameController/GCAxis2DInput.h>
#import <GameController/GCPressedStateInput.h>
NS_ASSUME_NONNULL_BEGIN
@@ -23,6 +24,9 @@
*/
API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0))
@protocol GCDirectionPadElement <GCPhysicalInputElement>
+
+/** The x,y position of the dpad input. */
+@property (readonly) id<GCAxis2DInput> xyAxes API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1));
/** The horizontal/x-component of the dpad input. */
@property (readonly) id<GCAxisInput> xAxis;
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCInputNames.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCInputNames.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCInputNames.h 2023-10-28 18:03:52
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCInputNames.h 2024-01-19 03:43:23
@@ -54,12 +54,55 @@
GAMECONTROLLER_EXTERN GCInputDirectionPadName GCInputLeftThumbstick API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
GAMECONTROLLER_EXTERN GCInputDirectionPadName GCInputRightThumbstick API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputLeftThumbstickButton API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputRightThumbstickButton API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
+
+/*
+ * Shoulder Buttons
+ */
+
GAMECONTROLLER_EXTERN GCInputButtonName GCInputLeftShoulder API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
GAMECONTROLLER_EXTERN GCInputButtonName GCInputRightShoulder API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
+
+/**
+ * Identifies the button element located at the top-left/right of a gamepad,
+ * between the left/right shoulder button and the gamepad's horizontal center.
+ */
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputLeftBumper API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1));
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputRightBumper API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1));
+
GAMECONTROLLER_EXTERN GCInputButtonName GCInputLeftTrigger API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
GAMECONTROLLER_EXTERN GCInputButtonName GCInputRightTrigger API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
-GAMECONTROLLER_EXTERN GCInputButtonName GCInputLeftThumbstickButton API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
-GAMECONTROLLER_EXTERN GCInputButtonName GCInputRightThumbstickButton API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
+
+/*
+ * Back Buttons
+ *
+ * Some gamepads include additional buttons or triggers on their underside.
+ * Because the number and layout of bottom buttons can vary by controller, the
+ * Game Controller framework identifies them by their ease of operation. The
+ * back left and right buttons at the first position are located nearest the
+ * natural rest position of the user's fingers and are suitable for actions
+ * requiring repeated inputs. The buttons at the 'second' position may require
+ * the user to move their fingers to press and should be used for less frequent
+ * actions.
+ *
+ * Example view looking at the underside of a gamepad with four back buttons
+ * arranged horizontally:
+ *
+ * +---------------------------------------------------------------+
+ * | Controller top |
+ * +---------------------------------------------------------------+
+ * | |
+ * R | [(R) 0] [(R) 1] [(L) 1] [(L) 0] | L
+ * | |
+ * +---------------------------------------------------------------|
+ * | Controller bottom (nearest the user) |
+ * +---------------------------------------------------------------+
+ */
+
+/* Note: The `position` argument begins at index 0. */
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputBackLeftButton(NSInteger position) NS_REFINED_FOR_SWIFT API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1));
+GAMECONTROLLER_EXTERN GCInputButtonName GCInputBackRightButton(NSInteger position) NS_REFINED_FOR_SWIFT API_AVAILABLE(macos(14.4), ios(17.4), tvos(17.4), visionos(1.1));
GAMECONTROLLER_EXTERN GCInputButtonName GCInputButtonHome API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
GAMECONTROLLER_EXTERN GCInputButtonName GCInputButtonMenu API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0));
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboard.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboard.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboard.h 2023-11-12 04:29:13
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboard.h 2024-01-19 03:43:23
@@ -5,10 +5,13 @@
// Copyright © 2020 Apple Inc. All rights reserved.
//
-#import <GameController/GameController.h>
+#import <Foundation/Foundation.h>
+
#import <GameController/GCExtern.h>
+#import <GameController/GCDevice.h>
-#import <Foundation/Foundation.h>
+@class GCKeyboard;
+@class GCKeyboardInput;
NS_ASSUME_NONNULL_BEGIN
@@ -35,7 +38,7 @@
@note All connected keyboards are coalesced into one keyboard object, so notification about connection/disconnection will only be delivered once.
*/
API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0))
-@interface GCKeyboard : NSObject<GCDevice>
+@interface GCKeyboard : NSObject <GCDevice>
/**
Unlike GCController GCKeyboard only has one input profile.
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboardInput.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboardInput.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboardInput.h 2023-11-12 04:29:13
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCKeyboardInput.h 2024-01-19 03:43:23
@@ -5,9 +5,9 @@
// Copyright © 2020 Apple Inc. All rights reserved.
//
+#import <Foundation/Foundation.h>
#import <GameController/GCExtern.h>
#import <GameController/GCPhysicalInputProfile.h>
-#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCMouseInput.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCMouseInput.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCMouseInput.h 2023-11-12 04:29:13
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCMouseInput.h 2024-01-19 03:43:23
@@ -5,11 +5,11 @@
// Copyright © 2020 Apple Inc. All rights reserved.
//
+#import <Foundation/Foundation.h>
#import <GameController/GCExtern.h>
#import <GameController/GCPhysicalInputProfile.h>
@class GCDeviceCursor;
-#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCTypes.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCTypes.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCTypes.h 1969-12-31 19:00:00
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GCTypes.h 2024-01-19 03:43:22
@@ -0,0 +1,42 @@
+//
+// GCTypes.h
+// GameController
+//
+// Copyright © 2020 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+struct GCPoint2 {
+ float x;
+ float y;
+};
+typedef struct CF_BOXABLE GCPoint2 GCPoint2;
+
+/* The "zero" point -- equivalent to GCPoint2Make(0, 0). */
+GAMECONTROLLER_EXTERN const GCPoint2 GCPoint2Zero API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1));
+
+CF_INLINE GCPoint2
+GCPoint2Make(float x, float y) {
+ GCPoint2 p; p.x = x; p.y = y; return p;
+}
+
+CF_INLINE bool
+GCPoint2Equal(GCPoint2 point1, GCPoint2 point2) {
+ return point1.x == point2.x && point1.y == point2.y;
+}
+
+GAMECONTROLLER_EXTERN NSString* NSStringFromGCPoint2(GCPoint2 point) API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1));
+
+
+@interface NSValue (GCTypes)
+
++ (instancetype)valueWithGCPoint2:(GCPoint2)point API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1));
+
+@property(nonatomic, readonly) GCPoint2 GCPoint2Value API_AVAILABLE(macos(14.3), ios(17.4), tvos(17.4), visionos(1.1));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GameController.h /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GameController.h
--- /Applications/Xcode_15.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GameController.h 2023-11-12 04:29:12
+++ /Applications/Xcode_15.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/GameController.framework/Headers/GameController.h 2024-01-19 03:43:21
@@ -9,6 +9,7 @@
#import <TargetConditionals.h>
#import <GameController/GCExtern.h>
+#import <GameController/GCTypes.h>
#import <GameController/GCColor.h>
#import <GameController/GCDevice.h>
@@ -18,6 +19,7 @@
#import <GameController/GCPhysicalInputSource.h>
#import <GameController/GCLinearInput.h>
#import <GameController/GCAxisInput.h>
+#import <GameController/GCAxis2DInput.h>
#import <GameController/GCRelativeInput.h>
#import <GameController/GCPressedStateInput.h>
#import <GameController/GCTouchedStateInput.h>
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status