AmazonChimeSDK/AmazonChimeSDK/session/CreateMeetingResponse.swift (99 lines of code) (raw):
//
// CreateAttendeeResponse.swift
// AmazonChimeSDK
//
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
@objcMembers public class CreateMeetingResponse: NSObject {
let meeting: Meeting
public init(meeting: Meeting) {
self.meeting = meeting
}
}
@objcMembers public class Meeting: NSObject {
let externalMeetingId: String?
let mediaPlacement: MediaPlacement
let meetingFeatures: MeetingFeatures
let mediaRegion: String
let meetingId: String
let primaryMeetingId: String?
public convenience init(externalMeetingId: String?,
mediaPlacement: MediaPlacement,
mediaRegion: String,
meetingId: String) {
self.init(
externalMeetingId: externalMeetingId,
mediaPlacement: mediaPlacement,
meetingFeatures: MeetingFeatures(),
mediaRegion: mediaRegion,
meetingId: meetingId,
primaryMeetingId: nil)
}
public init(externalMeetingId: String?,
mediaPlacement: MediaPlacement,
meetingFeatures: MeetingFeatures,
mediaRegion: String,
meetingId: String,
primaryMeetingId: String?) {
self.externalMeetingId = externalMeetingId
self.mediaPlacement = mediaPlacement
self.meetingFeatures = meetingFeatures
self.mediaRegion = mediaRegion
self.meetingId = meetingId
self.primaryMeetingId = primaryMeetingId
}
}
@objcMembers public class MediaPlacement: NSObject {
let audioFallbackUrl: String
let audioHostUrl: String
let signalingUrl: String
let turnControlUrl: String
let eventIngestionUrl: String?
public convenience init(audioFallbackUrl: String, audioHostUrl: String, signalingUrl: String, turnControlUrl: String) {
self.init(audioFallbackUrl: audioFallbackUrl,
audioHostUrl: audioHostUrl,
signalingUrl: signalingUrl,
turnControlUrl: turnControlUrl,
eventIngestionUrl: nil)
}
public init(audioFallbackUrl: String,
audioHostUrl: String,
signalingUrl: String,
turnControlUrl: String,
eventIngestionUrl: String?) {
self.audioFallbackUrl = audioFallbackUrl
self.audioHostUrl = audioHostUrl
self.signalingUrl = signalingUrl
self.turnControlUrl = turnControlUrl
self.eventIngestionUrl = eventIngestionUrl
}
}
@objcMembers public class MeetingFeatures: NSObject {
public let videoMaxResolution: VideoResolution
public let contentMaxResolution: VideoResolution
public override convenience init() {
self.init(videoMaxResolution: VideoResolution.videoResolutionHD,
contentMaxResolution: VideoResolution.videoResolutionFHD)
}
public convenience init(video: String?,
content: String?) {
let videoResolution = video ?? "hd"
let contentResolution = content ?? "fhd"
self.init(videoMaxResolution: parseMaxResolution(resolution: videoResolution),
contentMaxResolution: parseMaxResolution(resolution: contentResolution))
}
public init(videoMaxResolution: VideoResolution,
contentMaxResolution: VideoResolution) {
self.videoMaxResolution = videoMaxResolution
self.contentMaxResolution = contentMaxResolution
}
}
private func parseMaxResolution(resolution: String) -> VideoResolution {
let maxResolution: VideoResolution
let lowerCaseResolution = resolution.lowercased()
if (lowerCaseResolution == "none") {
maxResolution = VideoResolution.videoDisabled
} else if (lowerCaseResolution == "hd") {
maxResolution = VideoResolution.videoResolutionHD
} else if (lowerCaseResolution == "fhd") {
maxResolution = VideoResolution.videoResolutionFHD
} else {
maxResolution = VideoResolution.videoResolutionUHD
}
return maxResolution
}