28 lines
600 B
Python
28 lines
600 B
Python
from abc import ABC, abstractmethod
|
|
from pathlib import Path
|
|
|
|
from .structs import Modeline, MonitorInfo
|
|
|
|
|
|
class AbstractDisplay(ABC):
|
|
@abstractmethod
|
|
def get_modes(self) -> list[MonitorInfo]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def set_mode(self, modeline: Modeline, requested_connector: str) -> None:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def save_current_mode(self, location: str | Path) -> None:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def read_saved_mode(self, location: str | Path) -> Modeline:
|
|
pass
|
|
|
|
@staticmethod
|
|
@abstractmethod
|
|
def detect() -> bool:
|
|
pass
|