Source code for pylav.players.filters.rotation
from __future__ import annotations
from pylav.players.filters.misc import FilterMixin
[docs]
class Rotation(FilterMixin):
__slots__ = ("_hertz", "_default")
def __init__(self, hertz: float | None = None) -> None:
super().__init__()
self.hertz = hertz
[docs]
def to_dict(self) -> dict[str, float | bool | None]:
return {
"hertz": self.hertz,
}
[docs]
@classmethod
def from_dict(cls, data: dict[str, float | bool | None]) -> Rotation:
return cls(hertz=data["hertz"])
def __repr__(self) -> str:
return f"<Rotation: hertz={self.hertz}>"
@property
def hertz(self) -> float | None:
return self._hertz
@hertz.setter
def hertz(self, v: float | None) -> None:
self._hertz = v
[docs]
@classmethod
def default(cls) -> Rotation:
return cls()
[docs]
def get(self) -> dict[str, float]:
if self.off:
return {}
response = {}
if self.hertz is not None:
response["rotationHz"] = self.hertz
return response
[docs]
def reset(self) -> None:
self.hertz = None