Skip to main content

Reference

Setup​

struct Setup: EyesonEvent {
var locked: Bool
var recording: Recording?
var snapshots: [Snapshots.Item]?
var broadcasts: [Broadcasts.Item]?
}

Mode​

struct Mode: EyesonEvent {
var video: Bool // false if audio only
var p2p: Bool // determines if MCU or SFU mode
}

Locked​

struct Locked: EyesonEvent {
var locked: Bool
}

Chat​

struct Chat: EyesonEvent {
var user: User
var message: String
}

Custom Message​

struct Custom: EyesonEvent {
var content: String
}

Participants​

struct Participants: EyesonEvent {
var audio: [User]
var video: [User]
var presenter: User?
}

Recording​

struct Recording: EyesonEvent {
var id: String
var duration: Double? // nil if recording is currently active
var links: Links // present if recording file has been processed
var user: User
var createdAt: Date
}

Muted​

struct Muted: EyesonEvent {
var by: User
}

Voice Activity​

struct Voice: EyesonEvent {
var user: user
var active: Bool
}

Snapshots​

struct Snapshots: EyesonEvent {
var items: [Item]

struct Item: Identifiable {
var id: String
var name: String
var links: Links
var user: User
var createdAt: Date
}
}

Broadcasts​

struct Broadcasts: EyesonEvent {
var items: [Item]

struct Item: Identifiable {
var id: String
var platform: String
var playerUrl: URL
var user: User
}
}

Playback​

struct Playback: EyesonEvent {
var items: [Item]

struct Item: Identifiable {
var id: String
var name: String
var url: URL
var replacementId: String
var audio: Bool
}
}

Stats​

struct Stats: EyesonEvent {
var jitter: Double
var packetLoss: Double
var roundTripTime: Double
var nack: Double
var bitrateSend: Double // Bits per second sent
var bitrateReceive: Double // Bits per second received
var status: Status // Average quality .good|.ok|.bad|.unknown
var bytesSent: Double
var bytesReceived: Double
var time: TimeInterval

enum Status {
case bad
case ok
case good
case unknown
}
}

Terminated​

struct Terminated: EyesonEvent {
var reason: TerminateReason
}

TerminateReason​

enum TerminateReason {
case locked
case unwanted
case busy
case declined
case terminated
case gone
case other
}