97 lines
3.1 KiB
Swift
97 lines
3.1 KiB
Swift
//
|
|
// CASTV2Protocol.swift
|
|
// OpenCastSwift
|
|
//
|
|
// Created by Miles Hollingsworth on 4/22/18
|
|
// Copyright © 2018 Miles Hollingsworth. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct CastNamespace {
|
|
static let auth = "urn:x-cast:com.google.cast.tp.deviceauth"
|
|
static let connection = "urn:x-cast:com.google.cast.tp.connection"
|
|
static let heartbeat = "urn:x-cast:com.google.cast.tp.heartbeat"
|
|
static let receiver = "urn:x-cast:com.google.cast.receiver"
|
|
static let media = "urn:x-cast:com.google.cast.media"
|
|
static let discovery = "urn:x-cast:com.google.cast.receiver.discovery"
|
|
static let setup = "urn:x-cast:com.google.cast.setup"
|
|
static let multizone = "urn:x-cast:com.google.cast.multizone"
|
|
}
|
|
|
|
enum CastMessageType: String {
|
|
case ping = "PING"
|
|
case pong = "PONG"
|
|
case connect = "CONNECT"
|
|
case close = "CLOSE"
|
|
case status = "RECEIVER_STATUS"
|
|
case launch = "LAUNCH"
|
|
case stop = "STOP"
|
|
case load = "LOAD"
|
|
case pause = "PAUSE"
|
|
case play = "PLAY"
|
|
case seek = "SEEK"
|
|
case setVolume = "SET_VOLUME"
|
|
case setDeviceVolume = "SET_DEVICE_VOLUME"
|
|
case statusRequest = "GET_STATUS"
|
|
case availableApps = "GET_APP_AVAILABILITY"
|
|
case mediaStatus = "MEDIA_STATUS"
|
|
case getDeviceInfo = "GET_DEVICE_INFO"
|
|
case deviceInfo = "DEVICE_INFO"
|
|
case getDeviceConfig = "eureka_info"
|
|
case setDeviceConfig = "set_eureka_info"
|
|
case getAppDeviceId = "get_app_device_id"
|
|
case multizoneStatus = "MULTIZONE_STATUS"
|
|
case deviceAdded = "DEVICE_ADDED"
|
|
case deviceUpdated = "DEVICE_UPDATED"
|
|
case deviceRemoved = "DEVICE_REMOVED"
|
|
case invalidRequest = "INVALID_REQUEST"
|
|
case mdxSessionStatus = "mdxSessionStatus"
|
|
}
|
|
|
|
struct CastJSONPayloadKeys {
|
|
static let type = "type"
|
|
static let requestId = "requestId"
|
|
static let status = "status"
|
|
static let applications = "applications"
|
|
static let appId = "appId"
|
|
static let displayName = "displayName"
|
|
static let sessionId = "sessionId"
|
|
static let transportId = "transportId"
|
|
static let statusText = "statusText"
|
|
static let isIdleScreen = "isIdleScreen"
|
|
static let namespaces = "namespaces"
|
|
static let volume = "volume"
|
|
static let controlType = "controlType"
|
|
static let level = "level"
|
|
static let muted = "muted"
|
|
static let mediaSessionId = "mediaSessionId"
|
|
static let availability = "availability"
|
|
static let name = "name"
|
|
static let currentTime = "currentTime"
|
|
static let media = "media"
|
|
static let repeatMode = "repeatMode"
|
|
static let autoplay = "autoplay"
|
|
static let contentId = "contentId"
|
|
static let contentType = "contentType"
|
|
static let streamType = "streamType"
|
|
static let metadata = "metadata"
|
|
static let metadataType = "metadataType"
|
|
static let title = "title"
|
|
static let images = "images"
|
|
static let url = "url"
|
|
static let activeTrackIds = "activeTrackIds"
|
|
static let playbackRate = "playbackRate"
|
|
static let playerState = "playerState"
|
|
static let deviceId = "deviceId"
|
|
static let device = "device"
|
|
static let devices = "devices"
|
|
static let capabilities = "capabilities"
|
|
}
|
|
|
|
struct CastConstants {
|
|
static let sender = "sender-0"
|
|
static let receiver = "receiver-0"
|
|
static let transport = "transport-0"
|
|
}
|