CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
from app.auth.service import AuthService
|
|
from app.backup.service import BackupService
|
|
from app.bpm.service import BpmService
|
|
from app.core.config import get_settings
|
|
from app.dmx.backends import OlaDmxBackend, SimulatorDmxBackend
|
|
from app.dmx.engine import DmxEngine
|
|
from app.dmx.output_service import DmxOutputService
|
|
from app.effects.service import EffectService
|
|
from app.fixtures.service import FixtureService
|
|
from app.homeassistant.service import HomeAssistantService
|
|
from app.live.service import LiveDeskService
|
|
from app.midi.service import MidiService
|
|
from app.mixitup.service import TriggerService
|
|
from app.patch.service import PatchService
|
|
from app.scenes.service import SceneService
|
|
from app.system.service import SystemControlService
|
|
from app.telemetry.service import TelemetryService
|
|
|
|
|
|
class ApplicationState:
|
|
def __init__(self) -> None:
|
|
settings = get_settings()
|
|
self.telemetry = TelemetryService()
|
|
backend = (
|
|
SimulatorDmxBackend(universe=settings.ola_universe)
|
|
if settings.simulator_enabled
|
|
else OlaDmxBackend(
|
|
universe=settings.ola_universe,
|
|
output_port=settings.ola_output_port,
|
|
send_timeout_s=settings.ola_send_timeout_ms / 1000,
|
|
)
|
|
)
|
|
self.engine = DmxEngine(self.telemetry, backend=backend)
|
|
self.auth = AuthService()
|
|
self.fixtures = FixtureService()
|
|
self.patch = PatchService()
|
|
self.scenes = SceneService(self.engine)
|
|
self.bpm = BpmService()
|
|
self.effects = EffectService(self.engine, self.bpm)
|
|
self.dmx = DmxOutputService(self.engine)
|
|
self.home_assistant = HomeAssistantService(self.engine)
|
|
self.live = LiveDeskService(self.engine, home_assistant=self.home_assistant)
|
|
self.triggers = TriggerService(self.engine, self.effects, self.scenes)
|
|
self.midi = MidiService(self.engine, self.scenes, self.effects)
|
|
self.backups = BackupService(settings.data_dir, settings.backup_dir)
|
|
self.system = SystemControlService()
|
|
|
|
async def startup(self) -> None:
|
|
await self.dmx.startup()
|
|
await self.home_assistant.startup()
|
|
await self.midi.startup()
|
|
await self.bpm.startup()
|
|
await self.engine.start()
|
|
|
|
async def shutdown(self) -> None:
|
|
await self.effects.shutdown()
|
|
await self.home_assistant.shutdown()
|
|
await self.bpm.shutdown()
|
|
await self.engine.stop()
|
|
|
|
|
|
app_state = ApplicationState()
|