Files
thomas 1f110866f5
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
Update docs and screenshots
2026-07-25 10:26:29 +02:00

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()