AmazonChimeSDKDemo/AmazonChimeSDKDemo/ScreenShareModel.swift (33 lines of code) (raw):
//
// ScreenShareModel.swift
// AmazonChimeSDKDemo
//
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
import AmazonChimeSDK
import Foundation
class ScreenShareModel: NSObject {
let inAppCaptureModel: InAppScreenCaptureModel
let broadcastCaptureModel: BroadcastScreenCaptureModel
var tileId: Int? {
didSet {
tileIdDidSetHandler?(tileId)
}
}
var isAvailable: Bool {
return tileId != nil
}
var tileIdDidSetHandler: ((Int?) -> Void)?
var viewUpdateHandler: ((Bool) -> Void)?
init(meetingSessionConfig: MeetingSessionConfiguration,
contentShareController: ContentShareController) {
self.broadcastCaptureModel = BroadcastScreenCaptureModel(meetingSessionConfig: meetingSessionConfig)
self.inAppCaptureModel = InAppScreenCaptureModel(contentShareController: contentShareController)
super.init()
inAppCaptureModel.isSharingHandler = { [weak self] isSharing in
if isSharing {
self?.broadcastCaptureModel.isBlocked = true
} else {
self?.broadcastCaptureModel.isBlocked = false
}
}
}
func stopLocalSharing() {
inAppCaptureModel.isSharing = false
broadcastCaptureModel.isBlocked = true
}
}