MoosicBox Session Models
Data models for session management, playback control, and connection handling.
Overview
The MoosicBox Session Models package provides:
- Session Management: Playback session data structures
- Connection Models: Client connection and registration
- Playback Control: Session update and playlist management
- Player Registration: Audio player configuration and setup
- API Integration: REST-compatible session models
Installation
Add this to your Cargo.toml:
[]
= { = "../session/models" }
Dependencies
- serde: Serialization and deserialization
moosicbox_audio_zone_models: Audio zone modelsmoosicbox_music_models: Music and track modelsmoosicbox_json_utils: JSON parsing utilitiesswitchy_database: Database value types and traitsstrum/strum_macros: Enum string conversions- log: Logging facade
- utoipa (optional):
OpenAPIschema generation
Features
api(default): Enables API-facing models used across session endpoints.openapi(default): Enablesutoipa::ToSchemaderives forOpenAPIschema generation.fail-on-warnings: Treats warnings as errors for this crate and related model crates.aac,flac,mp3,opus: Propagates codec model support tomoosicbox_music_models.
Usage
This crate is primarily type-driven. The main entry points are public request/response models and conversion types used by session APIs.
- Session lifecycle:
CreateSession,UpdateSession,DeleteSession,Session,ApiSession - Playlist updates:
CreateSessionPlaylist,UpdateSessionPlaylist,ApiUpdateSessionPlaylist,SessionPlaylist,ApiSessionPlaylist - Playback routing:
PlaybackTarget,ApiPlaybackTarget,SetSessionAudioZone - Connection registration:
RegisterConnection,Connection,ApiConnection,RegisterPlayer
use ;
let create = CreateSession ;
let update = UpdateSession ;
let api_update: ApiUpdateSession = update.into;
let _target = from;
let _registration = RegisterConnection ;
let _has_playback_changes = create.playlist.tracks.len > 1 && api_update.play.is_some;
License
Licensed under MPL-2.0.