Source code for libretro.drivers.rumble.driver
"""
:class:`~typing.Protocol` definition for controller rumble feedback drivers.
.. seealso::
:mod:`libretro.api.rumble`
The matching :mod:`ctypes` types and callback definitions.
"""
from abc import abstractmethod
from typing import Protocol, runtime_checkable
from libretro.api.input import Port
from libretro.api.rumble import RumbleEffect
[docs]
@runtime_checkable
class RumbleDriver(Protocol):
"""
Protocol for drivers that drive controller rumble motors.
.. seealso::
:mod:`libretro.api.rumble`
The matching :mod:`ctypes` types and callback definitions.
"""
[docs]
@abstractmethod
def set_rumble_state(self, port: Port, effect: RumbleEffect, strength: int) -> bool:
"""Set the rumble state of a controller port."""
...
__all__ = [
"RumbleDriver",
]