Interface IGamolfJoystickService

Unit

Declaration

type IGamolfJoystickService = interface(IInterface)

Description

Platform service to access to joystick/gamepad controllers on a computer

Attributes
GUID['{74BA65B4-B468-41E2-A5FF-1FB92A79E9F4}']

Hierarchy

Overview

Methods

Public procedure StartDiscovery;
Public function Count: byte;
Public function isConnected(JoystickID: TJoystickID): boolean;
Public procedure getInfo(JoystickID: TJoystickID; var Joystick: TJoystickInfo);
Public function isPressed(JoystickID: TJoystickID; ButtonID: TButtonID): boolean;
Public procedure getXY(JoystickID: TJoystickID; var X, Y: single);
Public function getX(JoystickID: TJoystickID): single;
Public function getY(JoystickID: TJoystickID): single;
Public function getZ(JoystickID: TJoystickID): single;
Public function getDPad(JoystickID: TJoystickID; FromXYWhenNoDPadAvailable: boolean = false): word;
Public function hasDPad(JoystickID: TJoystickID): boolean;
Public function isDPad(JoystickID: TJoystickID; JoystickDPad: TJoystickDPad) : boolean; overload;
Public function isDPad(JoystickID: TJoystickID; JoystickDPads: array of TJoystickDPad): boolean; overload;
Public function isDPad(DPad: word; JoystickDPad: TJoystickDPad): boolean; overload;
Public function isDPad(DPad: word; JoystickDPads: array of TJoystickDPad) : boolean; overload;
Public function getDPadFromXY(X, Y: single): word;
Public procedure getXYFromDPad(DPad: word; var X, Y: single);
Public procedure ForEach(var JoystickInfo: TJoystickInfo; CallbackProc: TJoystickInfosCallbackProc); overload;
Public procedure ForEach(var JoystickInfo: TJoystickInfo; CallbackEvent: TJoystickInfosCallbackEvent); overload;
Public procedure ForEachConnectedDevice(var JoystickInfo: TJoystickInfo; CallbackProc: TJoystickInfosConnectedCallbackProc; ErrorCallbackProc: TJoystickErrorCallbackProc = nil); overload;
Public procedure ForEachConnectedDevice(var JoystickInfo: TJoystickInfo; CallbackEvent: TJoystickInfosConnectedCallbackEvent; ErrorCallbackEvent: TJoystickErrorCallbackEvent = nil); overload;
Public function hasJoystickButtonsAPI: boolean;

Description

Methods

Public procedure StartDiscovery;

Scan for available devices (if some are already used, their ID could change)

Public function Count: byte;

Return the number of joysticks managed by the system

Public function isConnected(JoystickID: TJoystickID): boolean;

Return "true" if the JoystickID controller is connected and available

Public procedure getInfo(JoystickID: TJoystickID; var Joystick: TJoystickInfo);

Return a TJoystick for the JoystickID controller

Public function isPressed(JoystickID: TJoystickID; ButtonID: TButtonID): boolean;

Check if button "ButtonID" from controller "JoystickID" is pressed or not

Public procedure getXY(JoystickID: TJoystickID; var X, Y: single);

Return X,Y axes values for JoystickID controller

Public function getX(JoystickID: TJoystickID): single;

Return X axes values for JoystickID controller

Public function getY(JoystickID: TJoystickID): single;

Return Y axes values for JoystickID controller

Public function getZ(JoystickID: TJoystickID): single;

Return Z axes values for JoystickID controller

Public function getDPad(JoystickID: TJoystickID; FromXYWhenNoDPadAvailable: boolean = false): word;

Return the DPad value between (0-359° or 65535) Compare it to Top, TopRight/RightTop, Right, BottomRight/RightBottom, Bottom, BottomLeft/LeftBottom, Left, LeftTop/TopLeft, Center values from TJoystickDPad enumeration

Public function hasDPad(JoystickID: TJoystickID): boolean;

Check if the game controller has a DPad/POV button

Public function isDPad(JoystickID: TJoystickID; JoystickDPad: TJoystickDPad) : boolean; overload;

Check is the DPad / POV is in a standard position for a JoystickID or in general

Public function isDPad(JoystickID: TJoystickID; JoystickDPads: array of TJoystickDPad): boolean; overload;
 
Public function isDPad(DPad: word; JoystickDPad: TJoystickDPad): boolean; overload;
 
Public function isDPad(DPad: word; JoystickDPads: array of TJoystickDPad) : boolean; overload;
 
Public function getDPadFromXY(X, Y: single): word;

Get orientation (like DPad) from (x,y) axis

Public procedure getXYFromDPad(DPad: word; var X, Y: single);

Get the values for (x,y) axis from a DPad/POV orientation

Public procedure ForEach(var JoystickInfo: TJoystickInfo; CallbackProc: TJoystickInfosCallbackProc); overload;

Loop on all game controllers and call the procedure with infos for each one

Public procedure ForEach(var JoystickInfo: TJoystickInfo; CallbackEvent: TJoystickInfosCallbackEvent); overload;

Loop on all game controllers and call the method with infos for each one

Public procedure ForEachConnectedDevice(var JoystickInfo: TJoystickInfo; CallbackProc: TJoystickInfosConnectedCallbackProc; ErrorCallbackProc: TJoystickErrorCallbackProc = nil); overload;

Loop on all game controllers and call the procedure with infos for each connected device

Public procedure ForEachConnectedDevice(var JoystickInfo: TJoystickInfo; CallbackEvent: TJoystickInfosConnectedCallbackEvent; ErrorCallbackEvent: TJoystickErrorCallbackEvent = nil); overload;

Loop on all game controllers and call the method with infos for each connected device

Public function hasJoystickButtonsAPI: boolean;

Returns true for platforms where buttons place are known and mapped correctly to TJoystickButtons enumeration. If false, you can use buttons ID to check if they are pressed or not.

Delphi Game Engine (c) 2021-2025 Patrick PREMARTIN - Powered by PasDoc
Generated by PasDoc 0.16.0.