blob: 8bd13170c7d1e1316d735bd5a5a041a1a45dda58 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module mirroring.mojom;
import "components/mirroring/mojom/cast_message_channel.mojom";
import "components/mirroring/mojom/resource_provider.mojom";
import "components/mirroring/mojom/session_observer.mojom";
import "components/mirroring/mojom/session_parameters.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
// This interface is used to control a mirroring session.
interface MirroringService {
// Starts a mirroring session. |max_resolution| is the maximium video
// capturing resolution. |observer| will get notifications about lifecycle
// events. |outbound_channel| is to handle the cast messages from this service
// to the mirroring receiver. |inbound_channel| receives the cast messages
// from the mirroring receiver to this service.
// To stop the session, just close the message pipe.
Start(SessionParameters params,
gfx.mojom.Size max_resolution,
SessionObserver observer,
ResourceProvider resource_provider,
CastMessageChannel outbound_channel,
CastMessageChannel& inbound_channel);
// TODO(xjz): Add interfaces to get the streaming events/stats and mirroring
// logs.
};