Source code for libretro.drivers.power.constant
"""
A power driver that always returns a fixed power state.
.. seealso::
:mod:`libretro.api.power`
Defines the device power structure this driver always returns.
"""
from typing import override
from libretro.api.power import retro_device_power
from .driver import PowerDriver
[docs]
class ConstantPowerDriver(PowerDriver):
"""A :class:`.PowerDriver` that always reports a fixed :class:`~libretro.api.power.retro_device_power`."""
[docs]
def __init__(self, device_power: retro_device_power):
"""
:param device_power: The power state to always report to the core.
:raises TypeError: If ``device_power`` is not a :class:`~libretro.api.power.retro_device_power`.
"""
self._device_power: retro_device_power
self.device_power = device_power
@property
@override
def device_power(self) -> retro_device_power:
return self._device_power
@device_power.setter
def device_power(self, device_power: retro_device_power) -> None:
if not isinstance(device_power, retro_device_power):
raise TypeError(f"Expected a retro_device_power, got: {type(device_power).__name__}")
self._device_power = device_power
__all__ = ("ConstantPowerDriver",)