Source code for platypush.message.event.joystick

from abc import ABCMeta
from typing import Optional, Iterable, Union

from platypush.message.event import Event


[docs]class JoystickEvent(Event): """ Generic joystick event. """
[docs] def __init__(self, code, state, *args, **kwargs): """ :param code: Event code, usually the code of the source key/handle :type code: str :param state: State of the triggering element. Can be 0/1 for a button, -1/0/1 for an axis, a discrete integer for an analog input etc. :type state: int """ super().__init__(*args, code=code, state=state, **kwargs)
class _JoystickEvent(Event, ABCMeta): """ Base joystick event class. """ def __init__(self, device: str, **kwargs): super().__init__(device=device, **kwargs)
[docs]class JoystickConnectedEvent(_JoystickEvent): """ Event triggered upon joystick connection. """
[docs] def __init__(self, *args, name: Optional[str] = None, axes: Optional[Iterable[Union[int, str]]] = None, buttons: Optional[Iterable[Union[int, str]]] = None, **kwargs): """ :param name: Device name. :param axes: List of the device axes, as indices or names. :param buttons: List of the device buttons, as indices or names. """ super().__init__(*args, name=name, axes=axes, buttons=buttons, **kwargs)
[docs]class JoystickDisconnectedEvent(_JoystickEvent): """ Event triggered upon joystick disconnection. """
[docs]class JoystickStateEvent(_JoystickEvent): """ Event triggered when the state of the joystick changes. """
[docs] def __init__(self, *args, axes: Iterable[int], buttons: Iterable[bool], **kwargs): """ :param axes: Joystick axes values, as a list of integer values. :param buttons: Joystick buttons values, as a list of boolean values (True for pressed, False for released). """ super().__init__(*args, axes=axes, buttons=buttons, **kwargs)
[docs]class JoystickButtonPressedEvent(_JoystickEvent): """ Event triggered when a joystick button is pressed. """
[docs] def __init__(self, *args, button: Union[int, str], **kwargs): """ :param button: Button index or name. """ super().__init__(*args, button=button, **kwargs)
[docs]class JoystickButtonReleasedEvent(_JoystickEvent): """ Event triggered when a joystick button is released. """
[docs] def __init__(self, *args, button: Union[int, str], **kwargs): """ :param button: Button index or name. """ super().__init__(*args, button=button, **kwargs)
[docs]class JoystickAxisEvent(_JoystickEvent): """ Event triggered when an axis value of the joystick changes. """
[docs] def __init__(self, *args, axis: Union[int, str], value: int, **kwargs): """ :param axis: Axis index or name. :param value: Axis value. """ super().__init__(*args, axis=axis, value=value, **kwargs)
# vim:sw=4:ts=4:et: