// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module mirroring.mojom;
// Used for remoting-specific cast messages, currently only RPC.
const string kRemotingNamespace = "urn:x-cast:com.google.cast.remoting";
// Used for the majority of cast messages, including OFFER, ANSWER,
// GET_CAPABILITIES, CAPABILITIES_RESPONSE, and PRESENTATION (limited support).
const string kWebRtcNamespace = "urn:x-cast:com.google.cast.webrtc";
// Represents a control message for negotiating both mirroring and remoting cast
// sessions.
struct CastMessage {
// The message namespace, restricted to either `kRemotingNamespace` or
// `kWebRtcNamespace`.
string message_namespace;
// The message contents, formatted as a valid JSON string.
string json_format_data;
};
// This interface is used for sending and receiving cast messages.
interface CastMessageChannel {
// For outbound channels, this method may be called to send a cast message to
// the Cast receiver. For inbound channels, this method is called whenever a
// message is received from the Cast receiver.
OnMessage(CastMessage message);
};