package vendor:windows/GameInput
⌘K
Ctrl+K
or
/
Index
Types (108)
- APP_LOCAL_DEVICE_ID
- ArcadeStickButtons
- ArcadeStickButtonsFlag
- ArcadeStickInfo
- ArcadeStickState
- BatteryState
- BatteryStatus
- CallbackToken
- ControllerAxisInfo
- ControllerButtonInfo
- ControllerSwitchInfo
- DeviceCallback
- DeviceCapabilities
- DeviceCapabilitiesFlag
- DeviceFamily
- DeviceInfo
- DeviceStatus
- DeviceStatusFlag
- EnumerationKind
- FeedbackAxes
- FeedbackAxesFlag
- FeedbackEffectState
- FlightStickButtons
- FlightStickButtonsFlag
- FlightStickInfo
- FlightStickState
- FocusPolicy
- FocusPolicyFlag
- ForceFeedbackConditionParams
- ForceFeedbackConstantParams
- ForceFeedbackEffectKind
- ForceFeedbackEnvelope
- ForceFeedbackMagnitude
- ForceFeedbackMotorInfo
- ForceFeedbackParams
- ForceFeedbackPeriodicParams
- ForceFeedbackRampParams
- GamepadButtons
- GamepadButtonsFlag
- GamepadInfo
- GamepadState
- GuideButtonCallback
- HANDLE
- HRESULT
- HapticFeedbackMotorInfo
- HapticFeedbackParams
- HapticWaveformInfo
- IGameInput
- IGameInputDevice
- IGameInputDevice_Vtable
- IGameInputDispatcher
- IGameInputDispatcher_Vtable
- IGameInputForceFeedbackEffect
- IGameInputForceFeedbackEffect_Vtable
- IGameInputRawDeviceReport
- IGameInputRawDeviceReport_Vtable
- IGameInputReading
- IGameInputReading_VTable
- IGameInput_VTable
- IID
- IUnknown
- IUnknown_VTable
- KeyState
- KeyboardInfo
- KeyboardKind
- KeyboardLayoutCallback
- Kind
- KindFlag
- Label
- Location
- MotionAccuracy
- MotionInfo
- MotionState
- MouseButtons
- MouseButtonsFlag
- MouseInfo
- MouseState
- RacingWheelButtons
- RacingWheelButtonsFlag
- RacingWheelInfo
- RacingWheelState
- RawDeviceItemCollectionInfo
- RawDeviceItemCollectionKind
- RawDevicePhysicalUnitKind
- RawDeviceReportInfo
- RawDeviceReportItemFlag
- RawDeviceReportItemFlags
- RawDeviceReportItemInfo
- RawDeviceReportKind
- ReadingCallback
- RumbleMotors
- RumbleMotorsFlag
- RumbleParams
- String
- SwitchKind
- SwitchPosition
- SystemButtonCallback
- SystemButtons
- SystemButtonsFlag
- TouchSensorInfo
- TouchShape
- TouchState
- UiNavigationButtons
- UiNavigationButtonsFlag
- UiNavigationInfo
- UiNavigationState
- Usage
- Version
Constants (15)
- CURRENT_CALLBACK_TOKEN_VALUE
- DEVICE_DISCONNECTED
- DEVICE_NOT_FOUND
- IGameInputDevice_UUID_STRING
- IGameInputDispatcher_UUID_STRING
- IGameInputForceFeedbackEffect_UUID_STRING
- IGameInputRawDeviceReport_UUID_STRING
- IGameInputReading_UUID_STRING
- IGameInput_UUID_STRING
- INSUFFICIENT_FORCE_FEEDBACK_RESOURCES
- INVALID_CALLBACK_TOKEN_VALUE
- Kind_Controller
- READING_NOT_FOUND
- REFERENCE_READING_TOO_OLD
- TIMESTAMP_OUT_OF_RANGE
Procedures (1)
Procedure Groups (0)
This section is empty.
Types
APP_LOCAL_DEVICE_ID ¶
APP_LOCAL_DEVICE_ID :: distinct [32]u8
ArcadeStickButtons ¶
ArcadeStickButtons :: distinct bit_set[ArcadeStickButtonsFlag; i32]
ArcadeStickButtonsFlag ¶
ArcadeStickButtonsFlag :: enum i32 { Menu = 0, View = 1, Up = 2, Down = 3, Left = 4, Right = 5, Action1 = 6, Action2 = 7, Action3 = 8, Action4 = 9, Action5 = 10, Action6 = 11, Special1 = 12, Special2 = 13, }
Enums
ArcadeStickInfo ¶
ArcadeStickInfo :: struct { menuButtonLabel: Label, viewButtonLabel: Label, stickUpLabel: Label, stickDownLabel: Label, stickLeftLabel: Label, stickRightLabel: Label, actionButton1Label: Label, actionButton2Label: Label, actionButton3Label: Label, actionButton4Label: Label, actionButton5Label: Label, actionButton6Label: Label, specialButton1Label: Label, specialButton2Label: Label, }
ArcadeStickState ¶
ArcadeStickState :: struct { buttons: ArcadeStickButtons, }
BatteryState ¶
BatteryState :: struct { chargeRate: f32, maxChargeRate: f32, remainingCapacity: f32, fullChargeCapacity: f32, status: BatteryStatus, }
BatteryStatus ¶
BatteryStatus :: enum i32 { Unknown = -1, NotPresent = 0, Discharging = 1, Idle = 2, Charging = 3, }
ControllerAxisInfo ¶
ControllerAxisInfo :: struct { mappedInputKinds: Kind, label: Label, isContinuous: bool, isNonlinear: bool, isQuantized: bool, hasRestValue: bool, restValue: f32, resolution: u64, legacyDInputIndex: u16, legacyHidIndex: u16, rawReportIndex: u32, inputReport: ^RawDeviceReportInfo, inputReportItem: ^RawDeviceReportItemInfo, }
ControllerButtonInfo ¶
ControllerButtonInfo :: struct { mappedInputKinds: Kind, label: Label, legacyDInputIndex: u16, legacyHidIndex: u16, rawReportIndex: u32, inputReport: ^RawDeviceReportInfo, inputReportItem: ^RawDeviceReportItemInfo, }
ControllerSwitchInfo ¶
ControllerSwitchInfo :: struct { mappedInputKinds: Kind, label: Label, positionLabels: [9]Label, kind: SwitchKind, legacyDInputIndex: u16, legacyHidIndex: u16, rawReportIndex: u32, inputReport: ^RawDeviceReportInfo, inputReportItem: ^RawDeviceReportItemInfo, }
DeviceCallback ¶
DeviceCallback :: proc "stdcall" (callbackToken: CallbackToken, ctx: rawptr, device: ^IGameInputDevice, timestamp: u64, currentState: DeviceStatus, previousState: DeviceStatus)
DeviceCapabilities ¶
DeviceCapabilities :: distinct bit_set[DeviceCapabilitiesFlag; i32]
DeviceCapabilitiesFlag ¶
DeviceCapabilitiesFlag :: enum i32 { Audio = 0, PluginModule = 1, PowerOff = 2, Synchronization = 3, Wireless = 4, }
DeviceFamily ¶
DeviceFamily :: enum i32 { Virtual = -1, Aggregate = 0, XboxOne = 1, Xbox360 = 2, Hid = 3, I8042 = 4, }
DeviceInfo ¶
DeviceInfo :: struct { infoSize: u32, vendorId: u16, productId: u16, revisionNumber: u16, interfaceNumber: u8, collectionNumber: u8, usage: Usage, hardwareVersion: Version, firmwareVersion: Version, deviceId: APP_LOCAL_DEVICE_ID, deviceRootId: APP_LOCAL_DEVICE_ID, deviceFamily: DeviceFamily, capabilities: DeviceCapabilities, supportedInput: Kind, supportedRumbleMotors: RumbleMotors, inputReportCount: u32, outputReportCount: u32, featureReportCount: u32, controllerAxisCount: u32, controllerButtonCount: u32, controllerSwitchCount: u32, touchPointCount: u32, touchSensorCount: u32, forceFeedbackMotorCount: u32, hapticFeedbackMotorCount: u32, deviceStringCount: u32, deviceDescriptorSize: u32, inputReportInfo: ^RawDeviceReportInfo, outputReportInfo: ^RawDeviceReportInfo, featureReportInfo: ^RawDeviceReportInfo, controllerAxisInfo: ^ControllerAxisInfo, controllerButtonInfo: ^ControllerButtonInfo, controllerSwitchInfo: ^ControllerSwitchInfo, keyboardInfo: ^KeyboardInfo, mouseInfo: ^MouseInfo, touchSensorInfo: ^TouchSensorInfo, motionInfo: ^MotionInfo, arcadeStickInfo: ^ArcadeStickInfo, flightStickInfo: ^FlightStickInfo, gamepadInfo: ^GamepadInfo, racingWheelInfo: ^RacingWheelInfo, uiNavigationInfo: ^UiNavigationInfo, forceFeedbackMotorInfo: ^ForceFeedbackMotorInfo, hapticFeedbackMotorInfo: ^HapticFeedbackMotorInfo, displayName: ^String, deviceStrings: ^String, deviceDescriptorData: rawptr, }
DeviceStatus ¶
DeviceStatus :: distinct bit_set[DeviceStatusFlag; i32]
DeviceStatusFlag ¶
DeviceStatusFlag :: enum i32 { Connected = 0, InputEnabled = 1, OutputEnabled = 2, RawIoEnabled = 3, AudioCapture = 4, AudioRender = 5, Synchronized = 6, Wireless = 7, UserIdle = 20, }
EnumerationKind ¶
EnumerationKind :: enum i32 { NoEnumeration = 0, AsyncEnumeration = 1, BlockingEnumeration = 2, }
FeedbackAxes ¶
FeedbackAxes :: distinct bit_set[FeedbackAxesFlag; i32]
FeedbackAxesFlag ¶
FeedbackAxesFlag :: enum i32 { LinearX = 0, LinearY = 1, LinearZ = 2, AngularX = 3, AngularY = 4, AngularZ = 5, Normal = 6, }
FeedbackEffectState ¶
FeedbackEffectState :: enum i32 { Stopped = 0, Running = 1, Paused = 2, }
FlightStickButtons ¶
FlightStickButtons :: distinct bit_set[FlightStickButtonsFlag; i32]
FlightStickButtonsFlag ¶
FlightStickButtonsFlag :: enum i32 { None = 0, Menu = 1, View = 2, FirePrimary = 3, FireSecondary = 4, }
FlightStickInfo ¶
FlightStickInfo :: struct { menuButtonLabel: Label, viewButtonLabel: Label, firePrimaryButtonLabel: Label, fireSecondaryButtonLabel: Label, hatSwitchKind: SwitchKind, }
FlightStickState ¶
FlightStickState :: struct { buttons: FlightStickButtons, hatSwitch: SwitchPosition, roll: f32, pitch: f32, yaw: f32, throttle: f32, }
FocusPolicy ¶
FocusPolicy :: distinct bit_set[FocusPolicyFlag; i32]
FocusPolicyFlag ¶
FocusPolicyFlag :: enum i32 { DisableBackgroundInput = 0, ExclusiveForegroundInput = 1, DisableBackgroundGuideButton = 2, ExclusiveForegroundGuideButton = 3, DisableBackgroundShareButton = 4, ExclusiveForegroundShareButton = 5, }
ForceFeedbackConstantParams ¶
ForceFeedbackConstantParams :: struct { envelope: ForceFeedbackEnvelope, magnitude: ForceFeedbackMagnitude, }
ForceFeedbackEffectKind ¶
ForceFeedbackEffectKind :: enum i32 { Constant = 0, Ramp = 1, SineWave = 2, SquareWave = 3, TriangleWave = 4, SawtoothUpWave = 5, SawtoothDownWave = 6, Spring = 7, Friction = 8, Damper = 9, Inertia = 10, }
ForceFeedbackMotorInfo ¶
ForceFeedbackMotorInfo :: struct { supportedAxes: FeedbackAxes, location: Location, locationId: u32, maxSimultaneousEffects: u32, isConstantEffectSupported: bool, isRampEffectSupported: bool, isSineWaveEffectSupported: bool, isSquareWaveEffectSupported: bool, isTriangleWaveEffectSupported: bool, isSawtoothUpWaveEffectSupported: bool, isSawtoothDownWaveEffectSupported: bool, isSpringEffectSupported: bool, isFrictionEffectSupported: bool, isDamperEffectSupported: bool, isInertiaEffectSupported: bool, }
ForceFeedbackParams ¶
ForceFeedbackParams :: struct { kind: ForceFeedbackEffectKind, using _: struct #raw_union { constant: ForceFeedbackConstantParams, ramp: ForceFeedbackRampParams, sineWave: ForceFeedbackPeriodicParams, squareWave: ForceFeedbackPeriodicParams, triangleWave: ForceFeedbackPeriodicParams, sawtoothUpWave: ForceFeedbackPeriodicParams, sawtoothDownWave: ForceFeedbackPeriodicParams, spring: ForceFeedbackConditionParams, friction: ForceFeedbackConditionParams, damper: ForceFeedbackConditionParams, inertia: ForceFeedbackConditionParams, }, }
ForceFeedbackPeriodicParams ¶
ForceFeedbackPeriodicParams :: struct { envelope: ForceFeedbackEnvelope, magnitude: ForceFeedbackMagnitude, frequency: f32, phase: f32, bias: f32, }
ForceFeedbackRampParams ¶
ForceFeedbackRampParams :: struct { envelope: ForceFeedbackEnvelope, startMagnitude: ForceFeedbackMagnitude, endMagnitude: ForceFeedbackMagnitude, }
GamepadButtons ¶
GamepadButtons :: distinct bit_set[GamepadButtonsFlag; i32]
GamepadButtonsFlag ¶
GamepadButtonsFlag :: enum i32 { Menu = 0, View = 1, A = 2, B = 3, X = 4, Y = 5, DPadUp = 6, DPadDown = 7, DPadLeft = 8, DPadRight = 9, LeftShoulder = 10, RightShoulder = 11, LeftThumbstick = 12, RightThumbstick = 13, }
GamepadInfo ¶
GamepadInfo :: struct { menuButtonLabel: Label, viewButtonLabel: Label, aButtonLabel: Label, bButtonLabel: Label, xButtonLabel: Label, yButtonLabel: Label, dpadUpLabel: Label, dpadDownLabel: Label, dpadLeftLabel: Label, dpadRightLabel: Label, leftShoulderButtonLabel: Label, rightShoulderButtonLabel: Label, leftThumbstickButtonLabel: Label, rightThumbstickButtonLabel: Label, }
GuideButtonCallback ¶
GuideButtonCallback :: proc "stdcall" (callbackToken: CallbackToken, ctx: rawptr, device: ^IGameInputDevice, timestamp: u64, isPressed: bool)
HapticFeedbackMotorInfo ¶
HapticFeedbackMotorInfo :: struct { mappedRumbleMotor: RumbleMotors, location: Location, locationId: u32, waveformCount: u32, waveformInfo: [^]HapticWaveformInfo `fmt:"v,waveformCount"`, }
IGameInput ¶
IGameInput :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinput_vtable: ^IGameInput_VTable, }
IGameInputDevice ¶
IGameInputDevice :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinputdevice_vtable: ^IGameInputDevice_Vtable, }
IGameInputDevice_Vtable ¶
IGameInputDevice_Vtable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, GetDeviceInfo: proc "stdcall" (this: ^IGameInputDevice) -> ^DeviceInfo, GetDeviceStatus: proc "stdcall" (this: ^IGameInputDevice) -> DeviceStatus, GetBatteryState: proc "stdcall" (this: ^IGameInputDevice, state: ^BatteryState), CreateForceFeedbackEffect: proc "stdcall" (this: ^IGameInputDevice, motorIndex: u32, params: ^ForceFeedbackParams, effect: ^^IGameInputForceFeedbackEffect) -> sys_windows.HRESULT, IsForceFeedbackMotorPoweredOn: proc "stdcall" (this: ^IGameInputDevice, motorIndex: u32) -> bool, SetForceFeedbackMotorGain: proc "stdcall" (this: ^IGameInputDevice, motorIndex: u32, masterGain: f32), SetHapticMotorState: proc "stdcall" (this: ^IGameInputDevice, motorIndex: u32, params: ^HapticFeedbackParams) -> sys_windows.HRESULT, SetRumbleState: proc "stdcall" (this: ^IGameInputDevice, params: ^RumbleParams), SetInputSynchronizationState: proc "stdcall" (this: ^IGameInputDevice, enabled: bool), SendInputSynchronizationHint: proc "stdcall" (this: ^IGameInputDevice), PowerOff: proc "stdcall" (this: ^IGameInputDevice), CreateRawDeviceReport: proc "stdcall" (this: ^IGameInputDevice, reportId: u32, reportKind: RawDeviceReportKind, report: ^^IGameInputRawDeviceReport) -> sys_windows.HRESULT, GetRawDeviceFeature: proc "stdcall" (this: ^IGameInputDevice, reportId: u32, report: ^^IGameInputRawDeviceReport) -> sys_windows.HRESULT, SetRawDeviceFeature: proc "stdcall" (this: ^IGameInputDevice, report: ^IGameInputRawDeviceReport) -> sys_windows.HRESULT, SendRawDeviceOutput: proc "stdcall" (this: ^IGameInputDevice, report: ^IGameInputRawDeviceReport) -> sys_windows.HRESULT, SendRawDeviceOutputWithResponse: proc "stdcall" (this: ^IGameInputDevice, requestReport: ^IGameInputRawDeviceReport, responseReport: ^^IGameInputRawDeviceReport) -> sys_windows.HRESULT, ExecuteRawDeviceIoControl: proc "stdcall" (this: ^IGameInputDevice, controlCode: u32, inputBufferSize: uint, inputBuffer: rawptr, outputBufferSize: uint, outputBuffer: rawptr, outputSize: ^uint) -> sys_windows.HRESULT, AcquireExclusiveRawDeviceAccess: proc "stdcall" (this: ^IGameInputDevice, timeoutInMicroseconds: u64) -> bool, ReleaseExclusiveRawDeviceAccess: proc "stdcall" (this: ^IGameInputDevice), }
IGameInputDispatcher ¶
IGameInputDispatcher :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinputdispatcher_vtable: ^IGameInputDispatcher_Vtable, }
IGameInputDispatcher_Vtable ¶
IGameInputDispatcher_Vtable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, Dispatch: proc "stdcall" (this: ^IGameInputDispatcher, quotaInMicroseconds: u64) -> bool, OpenWaitHandle: proc "stdcall" (this: ^IGameInputDispatcher, waitHandle: ^sys_windows.HANDLE) -> sys_windows.HRESULT, }
IGameInputForceFeedbackEffect ¶
IGameInputForceFeedbackEffect :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinputforcefeedbackeffect_vtable: ^IGameInputForceFeedbackEffect_Vtable, }
IGameInputForceFeedbackEffect_Vtable ¶
IGameInputForceFeedbackEffect_Vtable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, GetDevice: proc "stdcall" (this: ^IGameInputForceFeedbackEffect, device: ^^IGameInputDevice), GetMotorIndex: proc "stdcall" (this: ^IGameInputForceFeedbackEffect) -> u32, GetGain: proc "stdcall" (this: ^IGameInputForceFeedbackEffect) -> f32, SetGain: proc "stdcall" (this: ^IGameInputForceFeedbackEffect, gain: f32), GetParams: proc "stdcall" (this: ^IGameInputForceFeedbackEffect, params: ^ForceFeedbackParams), SetParams: proc "stdcall" (this: ^IGameInputForceFeedbackEffect, params: ^ForceFeedbackParams) -> bool, GetState: proc "stdcall" (this: ^IGameInputForceFeedbackEffect) -> FeedbackEffectState, SetState: proc "stdcall" (this: ^IGameInputForceFeedbackEffect, state: FeedbackEffectState), }
IGameInputRawDeviceReport ¶
IGameInputRawDeviceReport :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinputrawdevicereport_vtable: ^IGameInputRawDeviceReport_Vtable, }
IGameInputRawDeviceReport_Vtable ¶
IGameInputRawDeviceReport_Vtable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, GetDevice: proc "stdcall" (this: ^IGameInputRawDeviceReport, device: ^^IGameInputDevice), GetReportInfo: proc "stdcall" (this: ^IGameInputRawDeviceReport) -> ^RawDeviceReportInfo, GetRawDataSize: proc "stdcall" (this: ^IGameInputRawDeviceReport) -> uint, GetRawData: proc "stdcall" (this: ^IGameInputRawDeviceReport, bufferSize: uint, buffer: rawptr) -> uint, SetRawData: proc "stdcall" (this: ^IGameInputRawDeviceReport, bufferSize: uint, buffer: rawptr) -> bool, GetItemValue: proc "stdcall" (this: ^IGameInputRawDeviceReport, itemIndex: u32, value: ^u64) -> bool, SetItemValue: proc "stdcall" (this: ^IGameInputRawDeviceReport, itemIndex: u32, value: u64) -> bool, ResetItemValue: proc "stdcall" (this: ^IGameInputRawDeviceReport, itemIndex: u32) -> bool, ResetAllItems: proc "stdcall" (this: ^IGameInputRawDeviceReport) -> bool, }
IGameInputReading ¶
IGameInputReading :: struct #raw_union { iunknown: sys_windows.IUnknown, using igameinputreading_vtable: ^IGameInputReading_VTable, }
IGameInputReading_VTable ¶
IGameInputReading_VTable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, GetInputKind: proc "stdcall" (this: ^IGameInputReading) -> Kind, GetSequenceNumber: proc "stdcall" (this: ^IGameInputReading) -> u64, GetTimestamp: proc "stdcall" (this: ^IGameInputReading) -> u64, GetDevice: proc "stdcall" (this: ^IGameInputReading, device: ^^IGameInputDevice), GetRawReport: proc "stdcall" (this: ^IGameInputReading, report: ^^IGameInputRawDeviceReport) -> bool, GetControllerAxisCount: proc "stdcall" (this: ^IGameInputReading) -> u32, GetControllerAxisState: proc "stdcall" (this: ^IGameInputReading, stateArrayCount: u32, stateArray: [^]f32) -> u32, GetControllerButtonCount: proc "stdcall" (this: ^IGameInputReading) -> u32, GetControllerButtonState: proc "stdcall" (this: ^IGameInputReading, stateArrayCount: u32, stateArray: [^]bool) -> u32, GetControllerSwitchCount: proc "stdcall" (this: ^IGameInputReading) -> u32, GetControllerSwitchState: proc "stdcall" (this: ^IGameInputReading, stateArrayCount: u32, stateArray: [^]SwitchPosition) -> u32, GetKeyCount: proc "stdcall" (this: ^IGameInputReading) -> u32, GetKeyState: proc "stdcall" (this: ^IGameInputReading, stateArrayCount: u32, stateArray: [^]KeyState) -> u32, GetMouseState: proc "stdcall" (this: ^IGameInputReading, state: ^MouseState) -> bool, GetTouchCount: proc "stdcall" (this: ^IGameInputReading) -> u32, GetTouchState: proc "stdcall" (this: ^IGameInputReading, stateArrayCount: u32, stateArray: [^]TouchState) -> u32, GetMotionState: proc "stdcall" (this: ^IGameInputReading, state: ^MotionState) -> bool, GetArcadeStickState: proc "stdcall" (this: ^IGameInputReading, state: ^ArcadeStickState) -> bool, GetFlightStickState: proc "stdcall" (this: ^IGameInputReading, state: ^FlightStickState) -> bool, GetGamepadState: proc "stdcall" (this: ^IGameInputReading, state: ^GamepadState) -> bool, GetRacingWheelState: proc "stdcall" (this: ^IGameInputReading, state: ^RacingWheelState) -> bool, GetUiNavigationState: proc "stdcall" (this: ^IGameInputReading, state: ^UiNavigationState) -> bool, }
IGameInput_VTable ¶
IGameInput_VTable :: struct { using iunknown_vtable: sys_windows.IUnknown_VTable, GetCurrentTimestamp: proc "stdcall" (this: ^IGameInput) -> u64, GetCurrentReading: proc "stdcall" (this: ^IGameInput, inputKind: Kind, device: ^IGameInputDevice, reading: ^^IGameInputReading) -> sys_windows.HRESULT, GetNextReading: proc "stdcall" (this: ^IGameInput, referenceReading: ^IGameInputReading, inputKind: Kind, device: ^IGameInputDevice, reading: ^^IGameInputReading) -> sys_windows.HRESULT, GetPreviousReading: proc "stdcall" (this: ^IGameInput, referenceReading: ^IGameInputReading, inputKind: Kind, device: ^IGameInputDevice, reading: ^^IGameInputReading) -> sys_windows.HRESULT, GetTemporalReading: proc "stdcall" (this: ^IGameInput, timestamp: u64, device: ^IGameInputDevice, reading: ^^IGameInputReading) -> sys_windows.HRESULT, RegisterReadingCallback: proc "stdcall" (this: ^IGameInput, device: ^IGameInputDevice, inputKind: Kind, analogThreshold: f32, ctx: rawptr, callbackFunc: ReadingCallback, callbackToken: ^CallbackToken) -> sys_windows.HRESULT, RegisterDeviceCallback: proc "stdcall" (this: ^IGameInput, device: ^IGameInputDevice, inputKind: Kind, statusFilter: DeviceStatus, enumerationKind: EnumerationKind, ctx: rawptr, callbackFunc: DeviceCallback, callbackToken: ^CallbackToken) -> sys_windows.HRESULT, RegisterSystemButtonCallback: proc "stdcall" (this: ^IGameInput, device: ^IGameInputDevice, buttonFilter: SystemButtons, ctx: rawptr, callbackFunc: SystemButtonCallback, callbackToken: ^CallbackToken) -> sys_windows.HRESULT, RegisterKeyboardLayoutCallback: proc "stdcall" (this: ^IGameInput, device: ^IGameInputDevice, ctx: rawptr, callbackFunc: KeyboardLayoutCallback, callbackToken: ^CallbackToken) -> sys_windows.HRESULT, StopCallback: proc "stdcall" (this: ^IGameInput, callbackToken: CallbackToken), UnregisterCallback: proc "stdcall" (this: ^IGameInput, callbackToken: CallbackToken, timeoutInMicroseconds: u64) -> bool, CreateDispatcher: proc "stdcall" (this: ^IGameInput, dispatcher: ^^IGameInputDispatcher) -> sys_windows.HRESULT, CreateAggregateDevice: proc "stdcall" (this: ^IGameInput, kind: Kind, device: ^^IGameInputDevice) -> sys_windows.HRESULT, FindDeviceFromId: proc "stdcall" (this: ^IGameInput, value: ^APP_LOCAL_DEVICE_ID, device: ^^IGameInputDevice) -> sys_windows.HRESULT, FindDeviceFromObject: proc "stdcall" (this: ^IGameInput, value: ^sys_windows.IUnknown, device: ^^IGameInputDevice) -> sys_windows.HRESULT, FindDeviceFromPlatformHandle: proc "stdcall" (this: ^IGameInput, value: sys_windows.HANDLE, device: ^^IGameInputDevice) -> sys_windows.HRESULT, FindDeviceFromPlatformString: proc "stdcall" (this: ^IGameInput, value: [^]u16, device: ^^IGameInputDevice) -> sys_windows.HRESULT, EnableOemDeviceSupport: proc "stdcall" (this: ^IGameInput, vendorId: u16, productId: u16, interfaceNumber: u8, collectionNumber: u8) -> sys_windows.HRESULT, SetFocusPolicy: proc "stdcall" (this: ^IGameInput, policy: FocusPolicy), }
IUnknown ¶
IUnknown :: sys_windows.IUnknown
IUnknown_VTable ¶
IUnknown_VTable :: sys_windows.IUnknown_VTable
KeyboardKind ¶
KeyboardKind :: enum i32 { UnknownKeyboard = -1, AnsiKeyboard = 0, IsoKeyboard = 1, KsKeyboard = 2, AbntKeyboard = 3, JisKeyboard = 4, }
KeyboardLayoutCallback ¶
KeyboardLayoutCallback :: proc "stdcall" (callbackToken: CallbackToken, ctx: rawptr, device: ^IGameInputDevice, timestamp: u64, currentState: DeviceStatus, previousState: DeviceStatus)
KindFlag ¶
KindFlag :: enum i32 { RawDeviceReport = 0, ControllerAxis = 1, ControllerButton = 2, ControllerSwitch = 3, Keyboard = 4, Mouse = 5, Touch = 8, Motion = 12, ArcadeStick = 16, FlightStick = 17, Gamepad = 18, RacingWheel = 19, UiNavigation = 20, }
Label ¶
Label :: enum i32 { Unknown = -1, None = 0, XboxGuide = 1, XboxBack = 2, XboxStart = 3, XboxMenu = 4, XboxView = 5, XboxA = 7, XboxB = 8, XboxX = 9, XboxY = 10, XboxDPadUp = 11, XboxDPadDown = 12, XboxDPadLeft = 13, XboxDPadRight = 14, XboxLeftShoulder = 15, XboxLeftTrigger = 16, XboxLeftStickButton = 17, XboxRightShoulder = 18, XboxRightTrigger = 19, XboxRightStickButton = 20, XboxPaddle1 = 21, XboxPaddle2 = 22, XboxPaddle3 = 23, XboxPaddle4 = 24, LetterA = 25, LetterB = 26, LetterC = 27, LetterD = 28, LetterE = 29, LetterF = 30, LetterG = 31, LetterH = 32, LetterI = 33, LetterJ = 34, LetterK = 35, LetterL = 36, LetterM = 37, LetterN = 38, LetterO = 39, LetterP = 40, LetterQ = 41, LetterR = 42, LetterS = 43, LetterT = 44, LetterU = 45, LetterV = 46, LetterW = 47, LetterX = 48, LetterY = 49, LetterZ = 50, Number0 = 51, Number1 = 52, Number2 = 53, Number3 = 54, Number4 = 55, Number5 = 56, Number6 = 57, Number7 = 58, Number8 = 59, Number9 = 60, ArrowUp = 61, ArrowUpRight = 62, ArrowRight = 63, ArrowDownRight = 64, ArrowDown = 65, ArrowDownLLeft = 66, ArrowLeft = 67, ArrowUpLeft = 68, ArrowUpDown = 69, ArrowLeftRight = 70, ArrowUpDownLeftRight = 71, ArrowClockwise = 72, ArrowCounterClockwise = 73, ArrowReturn = 74, IconBranding = 75, IconHome = 76, IconMenu = 77, IconCross = 78, IconCircle = 79, IconSquare = 80, IconTriangle = 81, IconStar = 82, IconDPadUp = 83, IconDPadDown = 84, IconDPadLeft = 85, IconDPadRight = 86, IconDialClockwise = 87, IconDialCounterClockwise = 88, IconSliderLeftRight = 89, IconSliderUpDown = 90, IconWheelUpDown = 91, IconPlus = 92, IconMinus = 93, IconSuspension = 94, Home = 95, Guide = 96, Mode = 97, Select = 98, Menu = 99, View = 100, Back = 101, Start = 102, Options = 103, Share = 104, Up = 105, Down = 106, Left = 107, Right = 108, LB = 109, LT = 110, LSB = 111, L1 = 112, L2 = 113, L3 = 114, RB = 115, RT = 116, RSB = 117, R1 = 118, R2 = 119, R3 = 120, P1 = 121, P2 = 122, P3 = 123, P4 = 124, }
Location ¶
Location :: enum i32 { Unknown = -1, Chassis = 0, Display = 1, Axis = 2, Button = 3, Switch = 4, Key = 5, TouchPad = 6, }
MotionAccuracy ¶
MotionAccuracy :: enum i32 { AccuracyUnknown = -1, Unavailable = 0, Unreliable = 1, Approximate = 2, Accurate = 3, }
MotionState ¶
MotionState :: struct { accelerationX: f32, accelerationY: f32, accelerationZ: f32, angularVelocityX: f32, angularVelocityY: f32, angularVelocityZ: f32, magneticFieldX: f32, magneticFieldY: f32, magneticFieldZ: f32, orientationW: f32, orientationX: f32, orientationY: f32, orientationZ: f32, accelerometerAccuracy: MotionAccuracy, gyroscopeAccuracy: MotionAccuracy, magnetometerAccuracy: MotionAccuracy, orientationAccuracy: MotionAccuracy, }
MouseButtons ¶
MouseButtons :: distinct bit_set[MouseButtonsFlag; i32]
MouseButtonsFlag ¶
MouseButtonsFlag :: enum i32 { LeftButton = 0, RightButton = 1, MiddleButton = 2, Button4 = 3, Button5 = 4, WheelTiltLeft = 5, WheelTiltRight = 6, }
MouseInfo ¶
MouseInfo :: struct { supportedButtons: MouseButtons, sampleRate: u32, sensorDpi: u32, hasWheelX: bool, hasWheelY: bool, }
MouseState ¶
MouseState :: struct { buttons: MouseButtons, positionX: i64, positionY: i64, wheelX: i64, wheelY: i64, }
RacingWheelButtons ¶
RacingWheelButtons :: distinct bit_set[RacingWheelButtonsFlag; i32]
RacingWheelButtonsFlag ¶
RacingWheelButtonsFlag :: enum i32 { Menu = 0, View = 1, PreviousGear = 2, NextGear = 3, DpadUp = 4, DpadDown = 5, DpadLeft = 6, DpadRight = 7, }
RacingWheelInfo ¶
RacingWheelInfo :: struct { menuButtonLabel: Label, viewButtonLabel: Label, previousGearButtonLabel: Label, nextGearButtonLabel: Label, dpadUpLabel: Label, dpadDownLabel: Label, dpadLeftLabel: Label, dpadRightLabel: Label, hasClutch: bool, hasHandbrake: bool, hasPatternShifter: bool, minPatternShifterGear: i32, maxPatternShifterGear: i32, maxWheelAngle: f32, }
RawDeviceItemCollectionInfo ¶
RawDeviceItemCollectionInfo :: struct { kind: RawDeviceItemCollectionKind, childCount: u32, siblingCount: u32, usageCount: u32, usages: [^]Usage `fmt:v,usageCount`, parent: ^RawDeviceItemCollectionInfo, firstSibling: ^RawDeviceItemCollectionInfo, previousSibling: ^RawDeviceItemCollectionInfo, nextSibling: ^RawDeviceItemCollectionInfo, lastSibling: ^RawDeviceItemCollectionInfo, firstChild: ^RawDeviceItemCollectionInfo, lastChild: ^RawDeviceItemCollectionInfo, }
RawDeviceItemCollectionKind ¶
RawDeviceItemCollectionKind :: enum i32 { UnknownItemCollection = -1, PhysicalItemCollection = 0, ApplicationItemCollection = 1, LogicalItemCollection = 2, ReportItemCollection = 3, NamedArrayItemCollection = 4, UsageSwitchItemCollection = 5, UsageModifierItemCollection = 6, }
RawDevicePhysicalUnitKind ¶
RawDevicePhysicalUnitKind :: enum i32 { Unknown = -1, None = 0, Time = 1, Frequency = 2, Length = 3, Velocity = 4, Acceleration = 5, Mass = 6, Momentum = 7, Force = 8, Pressure = 9, Angle = 10, AngularVelocity = 11, AngularAcceleration = 12, AngularMass = 13, AngularMomentum = 14, AngularTorque = 15, ElectricCurrent = 16, ElectricCharge = 17, ElectricPotential = 18, Energy = 19, Power = 20, Temperature = 21, LuminousIntensity = 22, LuminousFlux = 23, Illuminance = 24, }
RawDeviceReportInfo ¶
RawDeviceReportInfo :: struct { kind: RawDeviceReportKind, id: u32, size: u32, itemCount: u32, items: [^]RawDeviceReportItemInfo `fmt:"v,itemCount"`, }
RawDeviceReportItemFlag ¶
RawDeviceReportItemFlag :: enum i32 { ConstantItem = 0, ArrayItem = 1, RelativeItem = 2, WraparoundItem = 3, NonlinearItem = 4, StableItem = 5, NullableItem = 6, VolatileItem = 7, BufferedItem = 8, }
RawDeviceReportItemFlags ¶
RawDeviceReportItemFlags :: distinct bit_set[RawDeviceReportItemFlag; i32]
RawDeviceReportItemInfo ¶
RawDeviceReportItemInfo :: struct { bitOffset: u32, bitSize: u32, logicalMin: i64, logicalMax: i64, physicalMin: f64, physicalMax: f64, physicalUnits: RawDevicePhysicalUnitKind, rawPhysicalUnits: u32, rawPhysicalUnitsExponent: i32, flags: RawDeviceReportItemFlags, usageCount: u32, usages: [^]Usage `fmt:"v,usageCount"`, collection: ^RawDeviceItemCollectionInfo, itemString: ^String, }
RawDeviceReportKind ¶
RawDeviceReportKind :: enum i32 { InputReport = 0, OutputReport = 1, FeatureReport = 2, }
ReadingCallback ¶
ReadingCallback :: proc "stdcall" (callbackToken: CallbackToken, ctx: rawptr, reading: ^IGameInputReading, hasOverrunOccured: bool)
RumbleMotors ¶
RumbleMotors :: distinct bit_set[RumbleMotorsFlag; i32]
RumbleMotorsFlag ¶
RumbleMotorsFlag :: enum i32 { LowFrequency = 0, HighFrequency = 1, LeftTrigger = 2, RightTrigger = 3, }
SwitchKind ¶
SwitchKind :: enum i32 { UnknownSwitchKind = -1, TwoWaySwitch = 0, FourWaySwitch = 1, EightWaySwitch = 2, }
SwitchPosition ¶
SwitchPosition :: enum i32 { Center = 0, Up = 1, UpRight = 2, Right = 3, DownRight = 4, Down = 5, DownLeft = 6, Left = 7, UpLeft = 8, }
SystemButtonCallback ¶
SystemButtonCallback :: proc "stdcall" (callbackToken: CallbackToken, ctx: rawptr, device: ^IGameInputDevice, timestamp: u64, currentState: DeviceStatus, previousState: DeviceStatus)
SystemButtons ¶
SystemButtons :: distinct bit_set[SystemButtonsFlag; i32]
SystemButtonsFlag ¶
SystemButtonsFlag :: enum i32 { Guide = 0, Share = 1, }
TouchShape ¶
TouchShape :: enum i32 { Unknown = -1, Point = 0, Shape1DLinear = 1, Shape1DRadial = 2, Shape1DIrregular = 3, Shape2DRectangular = 4, Shape2DElliptical = 5, Shape2DIrregular = 6, }
UiNavigationButtons ¶
UiNavigationButtons :: distinct bit_set[UiNavigationButtonsFlag; i32]
UiNavigationButtonsFlag ¶
UiNavigationButtonsFlag :: enum i32 { Menu = 0, View = 1, Accept = 2, Cancel = 3, Up = 4, Down = 5, Left = 6, Right = 7, Context1 = 8, Context2 = 9, Context3 = 10, Context4 = 11, PageUp = 12, PageDown = 13, PageLeft = 14, PageRight = 15, ScrollUp = 16, ScrollDown = 17, ScrollLeft = 18, ScrollRight = 19, }
UiNavigationInfo ¶
UiNavigationInfo :: struct { menuButtonLabel: Label, viewButtonLabel: Label, acceptButtonLabel: Label, cancelButtonLabel: Label, upButtonLabel: Label, downButtonLabel: Label, leftButtonLabel: Label, rightButtonLabel: Label, contextButton1Label: Label, contextButton2Label: Label, contextButton3Label: Label, contextButton4Label: Label, pageUpButtonLabel: Label, pageDownButtonLabel: Label, pageLeftButtonLabel: Label, pageRightButtonLabel: Label, scrollUpButtonLabel: Label, scrollDownButtonLabel: Label, scrollLeftButtonLabel: Label, scrollRightButtonLabel: Label, guideButtonLabel: Label, }
UiNavigationState ¶
UiNavigationState :: struct { buttons: UiNavigationButtons, }
Constants
CURRENT_CALLBACK_TOKEN_VALUE ¶
CURRENT_CALLBACK_TOKEN_VALUE :: CallbackToken(0xFFFFFFFFFFFFFFFF)
DEVICE_DISCONNECTED ¶
DEVICE_DISCONNECTED :: HRESULT(-0x7C75FFFF)
DEVICE_NOT_FOUND ¶
DEVICE_NOT_FOUND :: HRESULT(-0x7C75FFFE)
IGameInputDevice_UUID_STRING ¶
IGameInputDevice_UUID_STRING: string : "31DD86FB-4C1B-408A-868F-439B3CD47125"
IGameInputDispatcher_UUID_STRING ¶
IGameInputDispatcher_UUID_STRING: string : "415EED2E-98CB-42C2-8F28-B94601074E31"
IGameInputForceFeedbackEffect_UUID_STRING ¶
IGameInputForceFeedbackEffect_UUID_STRING: string : "51BDA05E-F742-45D9-B085-9444AE48381D"
IGameInputRawDeviceReport_UUID_STRING ¶
IGameInputRawDeviceReport_UUID_STRING: string : "61F08CF1-1FFC-40CA-A2B8-E1AB8BC5B6DC"
IGameInputReading_UUID_STRING ¶
IGameInputReading_UUID_STRING: string : "2156947A-E1FA-4DE0-A30B-D812931DBD8D"
IGameInput_UUID_STRING ¶
IGameInput_UUID_STRING: string : "11BE2A7E-4254-445A-9C09-FFC40F006918"
INSUFFICIENT_FORCE_FEEDBACK_RESOURCES ¶
INSUFFICIENT_FORCE_FEEDBACK_RESOURCES :: HRESULT(-0x7C75FFFA)
INVALID_CALLBACK_TOKEN_VALUE ¶
INVALID_CALLBACK_TOKEN_VALUE :: CallbackToken(0x0000000000000000)
Kind_Controller ¶
Kind_Controller: Kind : {.ControllerAxis, .ControllerButton, .ControllerSwitch}
READING_NOT_FOUND ¶
READING_NOT_FOUND :: HRESULT(-0x7C75FFFD)
REFERENCE_READING_TOO_OLD ¶
REFERENCE_READING_TOO_OLD :: HRESULT(-0x7C75FFFC)
TIMESTAMP_OUT_OF_RANGE ¶
TIMESTAMP_OUT_OF_RANGE :: HRESULT(-0x7C75FFFB)
Variables
IGameInputDevice_UUID ¶
IGameInputDevice_UUID: ^sys_windows.GUID = …
IGameInputDispatcher_UUID ¶
IGameInputDispatcher_UUID: ^sys_windows.GUID = …
IGameInputForceFeedbackEffect_UUID ¶
IGameInputForceFeedbackEffect_UUID: ^sys_windows.GUID = …
IGameInputRawDeviceReport_UUID ¶
IGameInputRawDeviceReport_UUID: ^sys_windows.GUID = …
IGameInputReading_UUID ¶
IGameInputReading_UUID: ^sys_windows.GUID = …
IGameInput_UUID ¶
IGameInput_UUID: ^sys_windows.GUID = …
Procedures
Create ¶
Create :: proc "stdcall" (gameInput: ^^IGameInput) -> sys_windows.HRESULT ---
Procedure Groups
This section is empty.
Source Files
Generation Information
Generated with odin version dev-2025-03 (vendor "odin") Windows_amd64 @ 2025-03-25 21:11:18.225678900 +0000 UTC