| // 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. |
| }; |