top logo menu kitty mascot
AROS.ORG Forum Software Bounties

controller_hidd

Index


Classes


CLID_Hidd_Controller

--background_subsystem-- aoHidd_Controller_AxisCount aoHidd_Controller_ButtonCount aoHidd_Controller_Capabilities
aoHidd_Controller_Extended aoHidd_Controller_HatCount aoHidd_Controller_RelativeCoords aoHidd_Controller_State
Controller      

--background_subsystem--

Notes

This class represents a "hub" for collecting input from various
pointing devices (mice, tablets, touchscreens, etc) in the
system. Events from all pointing devices are merged into a
single stream and propagated to all clients.

In order to get an access to pointing input subsystem you need to
create an object of CLID_HW_Controller class. The actual returned
object is a singletone, so disposal is not neccessary.  Every
call will return the same object pointer. After retrieving the object
you can, for example, register your driver using moHW_AddDriver
method, or enumerate drivers using moHW_EnumDrivers.

If you wish to receive controller events, use objects of CLID_Hidd_Controller
class. This class implements the same interface as driver class, but
represents receiver's side and is responsible for registering user's
interrupt handler in the listeners chain. These objects are not real
drivers and do not need to be registered within the subsystem.

aoHidd_Controller_AxisCount

Synopsis

[..G], ULONG

Function

Returns the number of analog axes exposed by this controller.
Axis indices in events range from 0 to (AxisCount - 1).

Notes

Axis values are signed 16-bit integers, typically in the range -32768..32767.
The interpretation (X/Y stick, throttle, trigger, wheel) depends on the driver
or higher-level mapping.

aoHidd_Controller_ButtonCount

Synopsis

[..G], ULONG

Function

Returns the number of buttons physically supported by this controller.
Button indices in events range from 0 to (ButtonCount - 1).

Notes

Button codes are device-specific; higher-level code should not assume
semantic meaning (e.g. "A button") from index values.

aoHidd_Controller_Capabilities

Synopsis

[..G], ULONG (bitmask)

Function

Returns a bitmask describing what types of controls this device provides.
Capability flags may include:
    vHidd_Controller_Cap_Buttons  – one or more buttons are present
    vHidd_Controller_Cap_Axes     – one or more analog axes are present
    vHidd_Controller_Cap_Hats     – one or more hat switches are present

Notes

This attribute can be used to quickly filter devices before querying their
detailed counts.

aoHidd_Controller_Extended

Synopsis

[..G], BOOL

Function

Queries whether the driver provides the extended event descriptor structure
(struct pHidd_Controller_ExtEvent).

If the value of this attribute is FALSE, the event passed to the handler is
a struct pHidd_Controller_Event and does not contain timestamp or device_id.
If TRUE, handlers receive a struct pHidd_Controller_ExtEvent instead.

CLID_Hidd_Controller class always returns TRUE for this attribute.

aoHidd_Controller_HatCount

Synopsis

[..G], ULONG

Function

Returns the number of directional hat switches (POV hats) exposed by this
controller.
Hat indices in events range from 0 to (HatCount - 1).

Notes

Hat values are usually encoded as 0–7 for the eight cardinal/diagonal
directions, with 0xFFFF meaning "centered".

aoHidd_Controller_RelativeCoords

Synopsis

[..G], BOOL

Function

Queries whether the device reports relative (like a controller or steering wheel)
or absolute (like a touchscreen or analog stick with fixed range) coordinates.

Drivers which provide extended event structures may not implement this attribute
if they generate a mixed set of events. In that case, the coordinate type must
be determined from the flags member of struct pHidd_Controller_Event or
pHidd_Controller_ExtEvent.

CLID_Hidd_Controller class does not implement this attribute itself since it
merges a mixed stream of events.

aoHidd_Controller_State

Synopsis

[..G], struct pHidd_Controller_State

Function

Obtains the current controller state. This is a snapshot structure containing
button bitmasks, axis values, and hat values.

Notes

Reading state directly is optional; normally you will track state using the
event stream instead.

Controller

Notes

Instances of this class are virtual devices representing game controllers,
joysticks, pads, wheels, or other generic input controllers. To receive
controller input events, create an object of this class and supply a callback
using aoHidd_Input_IrqHandler. After that, your callback will be called
whenever controller input is received until you dispose of the object.

Every client receives events from all controllers merged into a single stream.
If you need to distinguish between physical devices, check the device_id field
of the extended event structure (struct pHidd_Controller_ExtEvent).

CLID_HW_Controller

--hardware_drivers--      

--hardware_drivers--

Notes

A hardware driver should be a subclass of CLID_Hidd_Controller, and implement IID_Hidd_Controller
interface according to the following rules:

1. A single object of driver class represents a single hardware unit.
2. A single driver object maintains a single callback address (passed to it
   using aoHidd_Input_IrqHandler). Under normal conditions this callback is
   supplied by CLID_HW_Controller class.

Docutils System Messages

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 90); backlink

Unknown target name: "phidd_controller_state".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 124); backlink

Unknown target name: "phidd_controller_state".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 193); backlink

Unknown target name: "aohidd_input_irqhandler".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 228); backlink

Unknown target name: "phidd_controller_state".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 262); backlink

Unknown target name: "aohidd_input_irqhandler".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 296); backlink

Unknown target name: "phidd_controller_event".

System Message: ERROR/3 (/home/vsts/work/1/b/documentation/web/documentation/developers/autodocs/controller_hidd.en.rst, line 296); backlink

Unknown target name: "phidd_controller_extevent".