| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # -*- coding: utf-8 -*-
- """
- Medien-Steuerungs-Befehle.
- Commands für Musik- und Audio-Wiedergabe-Steuerung.
- """
- from dataclasses import dataclass, field
- from trixy_core.network.cmd.base import CommandMessage
- @dataclass
- class MusicPlayPause(CommandMessage):
- """
- Toggle Musik Play/Pause.
- Wechselt zwischen Wiedergabe und Pause.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- @dataclass
- class MusicNext(CommandMessage):
- """
- Nächstes Lied abspielen.
- Springt zum nächsten Lied in der Playlist.
- Unterstützt optionales Crossfade.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- use_crossfade: bool = True # Crossfade verwenden falls aktiviert
- @dataclass
- class MusicPrevious(CommandMessage):
- """
- Vorheriges Lied abspielen.
- Springt zum vorherigen Lied in der Playlist.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- use_crossfade: bool = True # Crossfade verwenden falls aktiviert
- @dataclass
- class MusicStop(CommandMessage):
- """
- Musik-Wiedergabe stoppen.
- Stoppt die aktuelle Musik-Wiedergabe.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- @dataclass
- class MusicVolumeChange(CommandMessage):
- """
- Musik-Lautstärke ändern.
- Ändert die Lautstärke der Musik-Wiedergabe.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- volume: float = 1.0 # Lautstärke (0.0 - 1.0)
- relative: bool = False # True = relative Änderung, False = absolute
- @dataclass
- class MediaStopAll(CommandMessage):
- """
- Alle Medien-Wiedergabe stoppen.
- Stoppt sowohl Musik als auch TTS-Ausgaben.
- """
- satellite_id: str = "" # Ziel-Satellite (leer = alle)
- @dataclass
- class MusicStatus(CommandMessage):
- """
- Musik-Status abfragen.
- Fordert den aktuellen Status der Musik-Wiedergabe an.
- """
- satellite_id: str = "" # Ziel-Satellite
- @dataclass
- class MusicStatusResponse(CommandMessage):
- """
- Musik-Status Antwort.
- Enthält den aktuellen Status der Musik-Wiedergabe.
- """
- satellite_id: str = ""
- is_playing: bool = False
- is_paused: bool = False
- current_track: str = ""
- track_position_ms: int = 0
- track_duration_ms: int = 0
- playlist_index: int = 0
- playlist_length: int = 0
- volume: float = 1.0
|