1#![allow(clippy::arc_with_non_send_sync)]
2
3use std::sync::Arc;
4
5#[cfg(all(target_os = "macos", not(any(test, feature = "test-support"))))]
6pub mod prod;
7
8#[cfg(all(target_os = "macos", not(any(test, feature = "test-support"))))]
9pub use prod::*;
10
11#[cfg(any(test, feature = "test-support", not(target_os = "macos")))]
12pub mod test;
13
14#[cfg(any(test, feature = "test-support", not(target_os = "macos")))]
15pub use test::*;
16
17pub type Sid = String;
18
19#[derive(Clone, Eq, PartialEq)]
20pub enum ConnectionState {
21 Disconnected,
22 Connected { url: String, token: String },
23}
24
25#[derive(Clone)]
26pub enum RoomUpdate {
27 ActiveSpeakersChanged { speakers: Vec<Sid> },
28 RemoteAudioTrackMuteChanged { track_id: Sid, muted: bool },
29 SubscribedToRemoteVideoTrack(Arc<RemoteVideoTrack>),
30 SubscribedToRemoteAudioTrack(Arc<RemoteAudioTrack>, Arc<RemoteTrackPublication>),
31 UnsubscribedFromRemoteVideoTrack { publisher_id: Sid, track_id: Sid },
32 UnsubscribedFromRemoteAudioTrack { publisher_id: Sid, track_id: Sid },
33 LocalAudioTrackPublished { publication: LocalTrackPublication },
34 LocalAudioTrackUnpublished { publication: LocalTrackPublication },
35 LocalVideoTrackPublished { publication: LocalTrackPublication },
36 LocalVideoTrackUnpublished { publication: LocalTrackPublication },
37}