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