21 lines
684 B
Python
21 lines
684 B
Python
from .abstracts import AbstractDisplay
|
|
from .enums import DisplayManagerDriver, Error
|
|
|
|
|
|
def get_display(
|
|
requested_driver: DisplayManagerDriver = DisplayManagerDriver.INFER,
|
|
) -> AbstractDisplay:
|
|
match requested_driver:
|
|
case DisplayManagerDriver.INFER:
|
|
for display in DisplayManagerDriver.get_display_list():
|
|
if display.meta.detect():
|
|
return display.meta()
|
|
|
|
raise RuntimeError(Error.DISPLAY_INFER_TYPE_FAILURE)
|
|
|
|
case _ if requested_driver in DisplayManagerDriver.get_display_list():
|
|
return requested_driver.meta()
|
|
|
|
case _:
|
|
raise ValueError(Error.DISPLAY_TYPE_UNKNOWN)
|