//
// © 2017-2020 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
//

import Foundation

enum PlayerGroupNotificationReason {
    case added
    case removed
    case playStateChanged
    case playerListChanged
    case nameChanged
    case sourcePlayerChanged
//    case idChanged
//    case playbackError
    case controlsEnabledChanged
    case volumeStateChanged
//    case volumeEnabledChanged
    case muteStateChanged
    case inputSelectorChanged
}

struct PlayerGroupError {
    var index: Int32
    var error: Error
    var description: String
}

struct PlayerGroupTransition {
    var fromPlayerGroup: IoTPlayerGroup?
    var toPlayerGroup: IoTPlayerGroup?
}

struct PlayerGroupNotification: PlayerControllerNotification {
    static var name = Notification.Name.PlayerGroupStateDidChangeNotification
    var sender: PlayerControllerProtocol
    var playerGroup: IoTPlayerGroup
    var reason: PlayerGroupNotificationReason
    var payload: Any?
}
