top logo menu kitty mascot
AROS.ORG Forum Software Bounties

mouse_hidd

Index


Classes


CLID_Hidd_Mouse

--background_mouseclass-- --background_subsystem-- aoHidd_Mouse_Extended aoHidd_Mouse_RelativeCoords
aoHidd_Mouse_State      

--background_mouseclass--

Notes

Instances of this class are virtual devices being clients of the
pointing input subsystem. In order to receive input events, you
have to create an object of this class and supply a callback using
aoHidd_Input_IrqHandler attribute. After this your callback will be
called every time the event arrives until you dispose your object.

Every client receives events from all pointing devices merged into
a single stream.

Mouse event handlers are specified by passing the aHidd_Input_IrqHandler attrib,
The handler will be called every time a mouse event occurs.  Handlers
should be declared using 'C' calling conventions,
e.g.:

void MouseIRQ(APTR data, struct pHidd_Mouse_ExtEvent *event);

Handler parameters are:
    data  - Anything you specify using aoHidd_Input_IrqHandlerData
    event - A pointer to a read-only event descriptor structure with the following
            contents:
        button - button code, or vHidd_Mouse_NoButton of the event describes a simple
                 motion.
        x, y   - event coordinates. Need to be always valid, even if the event describes
                 a button pressed without actual motion.
                 In case of mouse wheel event these fields specify horizontal and vertical
                 wheel delta respectively.
        type   - type of event (button press, button release, wheel or motion).
        flags  - event flags. Currently only one value of vHidd_Mouse_Relative is defined.
                 If this flag is not set, coordinates are assumed to be absolute.
                 This member is actually present in the structure only if the driver
                 supplies TRUE value for aoHidd_Mouse_Extended attribute.

The handler is called inside interrupts, so usual restrictions apply to it.

--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_Mouse 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 mouse events, use objects of CLID_Hidd_Mouse
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_Mouse_Extended

Synopsis

[..G], BOOL

Function

Asks the driver if it provides extended event descriptor structure
(struct pHidd_Mouse_ExtEvent).

If value of this attribute is FALSE, the flags member is actually missing from
the structure, not just zeroed out! So do not use it at all in this case.

CLID_Hidd_Mouse class always return TRUE for this attribute.

aoHidd_Mouse_RelativeCoords

Synopsis

[..G], BOOL

Function

Asks the driver it the device provides relative (like mouse) or absolute (like
touchscreen or tabled) coordinates.

Drivers which provide extended event structure may not implement this attribute
because they may provide mixed set of events. In this case coordinates type
is determined by flags member of struct pHidd_Mouse_ExtEvent.

CLID_Hidd_Mouse class does not implement this attribute since it provides mixed
stream of events.

aoHidd_Mouse_State

Synopsis

[..G], struct pHidd_Mouse_Event

Function

Obtains current pointing devices state.

This attribute was historically implemented only in PS/2 mouse driver, but the
implementation was broken and incomplete. At the moment this attribute is considered
reserved. Do not use it, the specification may change in future.

Bugs

Not implemented, considered reserved.

CLID_HW_Mouse

--hardware_drivers--      

--hardware_drivers--

Notes

A hardware driver should be a subclass of CLID_Hidd_Mouse, and implement IID_Hidd_Mouse
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_Mouse class.

Docutils System Messages

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

Unknown target name: "aohidd_input_irqhandler".

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

Unknown target name: "aohidd_input_irqhandlerdata".