22
33import DOM
44import ECMAScript
5+ import JavaScriptBigIntSupport
56import JavaScriptKit
67import WebAPIBase
78
@@ -33,17 +34,17 @@ public class Gamepad: JSBridgedClass {
3334
3435 @inlinable public var buttons : [ GamepadButton ] { jsObject [ Strings . buttons] . fromJSValue ( ) ! }
3536
37+ @inlinable public var touches : [ GamepadTouch ] { jsObject [ Strings . touches] . fromJSValue ( ) ! }
38+
39+ @inlinable public var vibrationActuator : GamepadHapticActuator {
40+ jsObject [ Strings . vibrationActuator] . fromJSValue ( ) !
41+ }
42+
3643 @inlinable public var hand : GamepadHand { jsObject [ Strings . hand] . fromJSValue ( ) ! }
3744
3845 @inlinable public var hapticActuators : [ GamepadHapticActuator ] { jsObject [ Strings . hapticActuators] . fromJSValue ( ) ! }
3946
4047 @inlinable public var pose : GamepadPose ? { jsObject [ Strings . pose] . fromJSValue ( ) }
41-
42- @inlinable public var touchEvents : [ GamepadTouch ] ? { jsObject [ Strings . touchEvents] . fromJSValue ( ) }
43-
44- @inlinable public var vibrationActuator : GamepadHapticActuator ? {
45- jsObject [ Strings . vibrationActuator] . fromJSValue ( )
46- }
4748}
4849
4950public class GamepadButton : JSBridgedClass {
@@ -64,27 +65,31 @@ open class GamepadEffectParameters: JSDictionaryCompatible {
6465 public let jsObject : JSObject
6566
6667 public convenience init (
67- duration: Double ? = nil ,
68- startDelay: Double ? = nil ,
68+ duration: UInt64 ? = nil ,
69+ startDelay: UInt64 ? = nil ,
6970 strongMagnitude: Double ? = nil ,
70- weakMagnitude: Double ? = nil
71+ weakMagnitude: Double ? = nil ,
72+ leftTrigger: Double ? = nil ,
73+ rightTrigger: Double ? = nil
7174 ) {
7275 let object = JSObject . global [ Strings . Object] . function!. new ( )
7376 object [ Strings . duration] = _toJSValue ( duration)
7477 object [ Strings . startDelay] = _toJSValue ( startDelay)
7578 object [ Strings . strongMagnitude] = _toJSValue ( strongMagnitude)
7679 object [ Strings . weakMagnitude] = _toJSValue ( weakMagnitude)
80+ object [ Strings . leftTrigger] = _toJSValue ( leftTrigger)
81+ object [ Strings . rightTrigger] = _toJSValue ( rightTrigger)
7782
7883 self . init ( unsafelyWrapping: object)
7984 }
8085
8186 public required init ( unsafelyWrapping object: JSObject ) { self . jsObject = object }
8287
83- @inlinable public var duration : Double {
88+ @inlinable public var duration : UInt64 {
8489 get { jsObject [ Strings . duration] . fromJSValue ( ) ! }
8590 set { jsObject [ Strings . duration] = _toJSValue ( newValue) }
8691 }
87- @inlinable public var startDelay : Double {
92+ @inlinable public var startDelay : UInt64 {
8893 get { jsObject [ Strings . startDelay] . fromJSValue ( ) ! }
8994 set { jsObject [ Strings . startDelay] = _toJSValue ( newValue) }
9095 }
@@ -96,6 +101,14 @@ open class GamepadEffectParameters: JSDictionaryCompatible {
96101 get { jsObject [ Strings . weakMagnitude] . fromJSValue ( ) ! }
97102 set { jsObject [ Strings . weakMagnitude] = _toJSValue ( newValue) }
98103 }
104+ @inlinable public var leftTrigger : Double {
105+ get { jsObject [ Strings . leftTrigger] . fromJSValue ( ) ! }
106+ set { jsObject [ Strings . leftTrigger] = _toJSValue ( newValue) }
107+ }
108+ @inlinable public var rightTrigger : Double {
109+ get { jsObject [ Strings . rightTrigger] . fromJSValue ( ) ! }
110+ set { jsObject [ Strings . rightTrigger] = _toJSValue ( newValue) }
111+ }
99112}
100113public class GamepadEvent : Event {
101114 @inlinable public override class var constructor : JSFunction ? { JSObject . global [ Strings . GamepadEvent] . function }
@@ -146,12 +159,7 @@ public class GamepadHapticActuator: JSBridgedClass {
146159
147160 public required init ( unsafelyWrapping jsObject: JSObject ) { self . jsObject = jsObject }
148161
149- @inlinable public var type : GamepadHapticActuatorType { jsObject [ Strings . type] . fromJSValue ( ) ! }
150-
151- @inlinable final public func canPlayEffectType( type: GamepadHapticEffectType ) -> Bool {
152- let this = jsObject
153- return this [ Strings . canPlayEffectType] . function!( this: this, arguments: [ _toJSValue ( type) ] ) . fromJSValue ( ) !
154- }
162+ @inlinable public var effects : [ GamepadHapticEffectType ] { jsObject [ Strings . effects] . fromJSValue ( ) ! }
155163
156164 @inlinable final public func playEffect(
157165 type: GamepadHapticEffectType ,
@@ -176,6 +184,21 @@ public class GamepadHapticActuator: JSBridgedClass {
176184 }
177185 #endif
178186
187+ @inlinable final public func reset( ) -> JSPromise {
188+ let this = jsObject
189+ return this [ Strings . reset] . function!( this: this, arguments: [ ] ) . fromJSValue ( ) !
190+ }
191+
192+ #if canImport(JavaScriptEventLoop)
193+ @available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * ) @inlinable final public func reset( )
194+ async throws ( JSException) -> GamepadHapticsResult
195+ {
196+ let this = jsObject
197+ let _promise : JSPromise = this [ Strings . reset] . function!( this: this, arguments: [ ] ) . fromJSValue ( ) !
198+ return try await _promise. value. fromJSValue ( ) !
199+ }
200+ #endif
201+
179202 @inlinable final public func pulse( value: Double , duration: Double ) -> JSPromise {
180203 let this = jsObject
181204 return this [ Strings . pulse] . function!( this: this, arguments: [ _toJSValue ( value) , _toJSValue ( duration) ] )
@@ -195,38 +218,11 @@ public class GamepadHapticActuator: JSBridgedClass {
195218 return try await _promise. value. fromJSValue ( ) !
196219 }
197220 #endif
198-
199- @inlinable final public func reset( ) -> JSPromise {
200- let this = jsObject
201- return this [ Strings . reset] . function!( this: this, arguments: [ ] ) . fromJSValue ( ) !
202- }
203-
204- #if canImport(JavaScriptEventLoop)
205- @available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * ) @inlinable final public func reset( )
206- async throws ( JSException) -> GamepadHapticsResult
207- {
208- let this = jsObject
209- let _promise : JSPromise = this [ Strings . reset] . function!( this: this, arguments: [ ] ) . fromJSValue ( ) !
210- return try await _promise. value. fromJSValue ( ) !
211- }
212- #endif
213221}
214222
215- public enum GamepadHapticActuatorType : JSString , JSValueCompatible {
216- case vibration = " vibration "
217- case dualRumble = " dual-rumble "
218-
219- @inlinable public static func construct( from jsValue: JSValue ) -> Self ? {
220- if let string = jsValue. jsString { return Self ( rawValue: string) }
221- return nil
222- }
223-
224- @inlinable public init ? ( string: String ) { self . init ( rawValue: JSString ( string) ) }
225-
226- @inlinable public var jsValue : JSValue { rawValue. jsValue }
227- }
228223public enum GamepadHapticEffectType : JSString , JSValueCompatible {
229224 case dualRumble = " dual-rumble "
225+ case triggerRumble = " trigger-rumble "
230226
231227 @inlinable public static func construct( from jsValue: JSValue ) -> Self ? {
232228 if let string = jsValue. jsString { return Self ( rawValue: string) }
@@ -288,22 +284,43 @@ public class GamepadPose: JSBridgedClass {
288284 @inlinable public var angularAcceleration : Float32Array ? { jsObject [ Strings . angularAcceleration] . fromJSValue ( ) }
289285}
290286
291- public class GamepadTouch : JSBridgedClass {
292- @inlinable public class var constructor : JSFunction ? { JSObject . global [ Strings . GamepadTouch] . function }
293-
287+ open class GamepadTouch : JSDictionaryCompatible {
294288 public let jsObject : JSObject
295289
296- public required init ( unsafelyWrapping jsObject: JSObject ) { self . jsObject = jsObject }
297-
298- @inlinable public var touchId : UInt32 { jsObject [ Strings . touchId] . fromJSValue ( ) ! }
290+ public convenience init (
291+ touchId: UInt32 ? = nil ,
292+ surfaceId: UInt8 ? = nil ,
293+ position: DOMPointReadOnly ? = nil ,
294+ surfaceDimensions: DOMRectReadOnly ?
295+ ) {
296+ let object = JSObject . global [ Strings . Object] . function!. new ( )
297+ object [ Strings . touchId] = _toJSValue ( touchId)
298+ object [ Strings . surfaceId] = _toJSValue ( surfaceId)
299+ object [ Strings . position] = _toJSValue ( position)
300+ object [ Strings . surfaceDimensions] = _toJSValue ( surfaceDimensions)
299301
300- @inlinable public var surfaceId : UInt8 { jsObject [ Strings . surfaceId] . fromJSValue ( ) ! }
302+ self . init ( unsafelyWrapping: object)
303+ }
301304
302- @ inlinable public var position : Float32Array { jsObject [ Strings . position ] . fromJSValue ( ) ! }
305+ public required init ( unsafelyWrapping object : JSObject ) { self . jsObject = object }
303306
304- @inlinable public var surfaceDimensions : Uint32Array ? { jsObject [ Strings . surfaceDimensions] . fromJSValue ( ) }
307+ @inlinable public var touchId : UInt32 {
308+ get { jsObject [ Strings . touchId] . fromJSValue ( ) ! }
309+ set { jsObject [ Strings . touchId] = _toJSValue ( newValue) }
310+ }
311+ @inlinable public var surfaceId : UInt8 {
312+ get { jsObject [ Strings . surfaceId] . fromJSValue ( ) ! }
313+ set { jsObject [ Strings . surfaceId] = _toJSValue ( newValue) }
314+ }
315+ @inlinable public var position : DOMPointReadOnly {
316+ get { jsObject [ Strings . position] . fromJSValue ( ) ! }
317+ set { jsObject [ Strings . position] = _toJSValue ( newValue) }
318+ }
319+ @inlinable public var surfaceDimensions : DOMRectReadOnly ? {
320+ get { jsObject [ Strings . surfaceDimensions] . fromJSValue ( ) }
321+ set { jsObject [ Strings . surfaceDimensions] = _toJSValue ( newValue) }
322+ }
305323}
306-
307324extension Navigator {
308325
309326 @inlinable final public func getGamepads( ) -> [ Gamepad ? ] {
@@ -349,16 +366,15 @@ extension WindowEventHandlers {
349366 @usableFromInline static let `GamepadEvent` : JSString = " GamepadEvent "
350367 @usableFromInline static let `GamepadHapticActuator` : JSString = " GamepadHapticActuator "
351368 @usableFromInline static let `GamepadPose` : JSString = " GamepadPose "
352- @usableFromInline static let `GamepadTouch` : JSString = " GamepadTouch "
353369 @usableFromInline static let `Navigator` : JSString = " Navigator "
354370 @usableFromInline static let `Object` : JSString = " Object "
355371 @usableFromInline static let `angularAcceleration` : JSString = " angularAcceleration "
356372 @usableFromInline static let `angularVelocity` : JSString = " angularVelocity "
357373 @usableFromInline static let `axes` : JSString = " axes "
358374 @usableFromInline static let `buttons` : JSString = " buttons "
359- @usableFromInline static let `canPlayEffectType` : JSString = " canPlayEffectType "
360375 @usableFromInline static let `connected` : JSString = " connected "
361376 @usableFromInline static let `duration` : JSString = " duration "
377+ @usableFromInline static let `effects` : JSString = " effects "
362378 @usableFromInline static let `gamepad` : JSString = " gamepad "
363379 @usableFromInline static let `getGamepads` : JSString = " getGamepads "
364380 @usableFromInline static let `hand` : JSString = " hand "
@@ -367,6 +383,7 @@ extension WindowEventHandlers {
367383 @usableFromInline static let `hasPosition` : JSString = " hasPosition "
368384 @usableFromInline static let `id` : JSString = " id "
369385 @usableFromInline static let `index` : JSString = " index "
386+ @usableFromInline static let `leftTrigger` : JSString = " leftTrigger "
370387 @usableFromInline static let `linearAcceleration` : JSString = " linearAcceleration "
371388 @usableFromInline static let `linearVelocity` : JSString = " linearVelocity "
372389 @usableFromInline static let `mapping` : JSString = " mapping "
@@ -379,16 +396,16 @@ extension WindowEventHandlers {
379396 @usableFromInline static let `pressed` : JSString = " pressed "
380397 @usableFromInline static let `pulse` : JSString = " pulse "
381398 @usableFromInline static let `reset` : JSString = " reset "
399+ @usableFromInline static let `rightTrigger` : JSString = " rightTrigger "
382400 @usableFromInline static let `startDelay` : JSString = " startDelay "
383401 @usableFromInline static let `strongMagnitude` : JSString = " strongMagnitude "
384402 @usableFromInline static let `surfaceDimensions` : JSString = " surfaceDimensions "
385403 @usableFromInline static let `surfaceId` : JSString = " surfaceId "
386404 @usableFromInline static let `timestamp` : JSString = " timestamp "
387405 @usableFromInline static let `toString` : JSString = " toString "
388- @usableFromInline static let `touchEvents` : JSString = " touchEvents "
389406 @usableFromInline static let `touchId` : JSString = " touchId "
390407 @usableFromInline static let `touched` : JSString = " touched "
391- @usableFromInline static let `type ` : JSString = " type "
408+ @usableFromInline static let `touches ` : JSString = " touches "
392409 @usableFromInline static let `value` : JSString = " value "
393410 @usableFromInline static let `vibrationActuator` : JSString = " vibrationActuator "
394411 @usableFromInline static let `weakMagnitude` : JSString = " weakMagnitude "
0 commit comments