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
}

Terminated

struct Terminated: EyesonEvent {
var reason: TerminateReason
}

TerminateReason

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