import Pyro4
from extended_mode_display.prepare_headset_for_measurement import (
    prepare_headset_for_measurement,
)
from extended_mode_display.direct_mode_display import DirectModeDisplay
from loguru import logger

ExposedDirectModeDisplay = Pyro4.expose(DirectModeDisplay)

@logger.catch
def display_server(hostname: str = "localhost", port: int = 8081):
    with prepare_headset_for_measurement() as display:
        Pyro4.Daemon.serveSimple(
            {display: "direct_mode_display"},
            host=hostname,
            port=port,
            ns=False,
        )


if __name__ == "__main__":
    display_server()
