Class TGamolfCustomJoystickService

Unit

Declaration

type TGamolfCustomJoystickService = class(TInterfacedObject, IGamolfJoystickService)

Description

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

Hierarchy

Overview

Methods

Public constructor Create; virtual;
Public destructor Destroy; override;
Public procedure initJoystick(var Joystick: TJoystickInfo); virtual;
Public procedure StartDiscovery; virtual; abstract;
Public function Count: byte; virtual; abstract;
Public function isConnected(JoystickID: TJoystickID): boolean; virtual; abstract;
Public procedure getInfo(JoystickID: TJoystickID; var Joystick: TJoystickInfo); virtual; abstract;
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; virtual; abstract;
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; virtual;

Description

Methods

Public constructor Create; virtual;
 
Public destructor Destroy; override;
 
Public procedure initJoystick(var Joystick: TJoystickInfo); virtual;

Reset Joystick structure

Public procedure StartDiscovery; virtual; abstract;

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

Public function Count: byte; virtual; abstract;

Return the number of joysticks managed by the system

Public function isConnected(JoystickID: TJoystickID): boolean; virtual; abstract;

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

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

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; virtual; abstract;

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; virtual;

Override this function and return true for platforms where buttons place are known. By default, it's false;

If "true" use TJoystickButtons enumeration to check if a button is pressed. If "false" use buttons ID to check if a button is pressed.

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