#[non_exhaustive]pub enum ServerEvent {
Show 13 variants
ClientConnected {
id: String,
hello: Hello,
},
ClientDisconnected {
id: String,
},
ClientVolumeChanged {
client_id: String,
volume: u16,
muted: bool,
},
ClientLatencyChanged {
client_id: String,
latency: i32,
},
ClientNameChanged {
client_id: String,
name: String,
},
GroupStreamChanged {
group_id: String,
stream_id: String,
},
GroupMuteChanged {
group_id: String,
muted: bool,
},
StreamStatus {
stream_id: String,
status: String,
},
StreamMetaChanged {
stream_id: String,
metadata: HashMap<String, Value>,
},
GroupNameChanged {
group_id: String,
name: String,
},
ServerUpdated,
StreamControl {
stream_id: String,
command: String,
params: Value,
},
CustomMessage {
client_id: String,
message: CustomMessage,
},
}Expand description
Events emitted by the server to the consumer.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ClientConnected
A client connected via the binary protocol.
Fields
ClientDisconnected
A client disconnected.
ClientVolumeChanged
A client’s volume changed.
ClientLatencyChanged
A client’s latency changed.
ClientNameChanged
A client’s name changed.
GroupStreamChanged
A group’s stream assignment changed.
GroupMuteChanged
A group’s mute state changed.
StreamStatus
A stream’s status changed (playing, idle, unknown).
StreamMetaChanged
Stream metadata/properties changed.
GroupNameChanged
A group’s name changed.
ServerUpdated
Server state changed — groups were reorganized (created, deleted, merged).
Emitted after structural changes like SetGroupClients or DeleteClient
when the group topology changes. Mirrors Server.OnUpdate in the C++ snapserver.
The consumer should re-read server status via GetStatus.
StreamControl
A stream control command was received (play, pause, next, seek, etc.).
The library forwards this to the embedder since it doesn’t own stream readers.
CustomMessage
Custom binary protocol message from a streaming client.