| // Copyright 2019 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. |
| |
| // TODO(crbug.com/1227712): Migrate syntax and remove this. |
| library chromium.cast; |
| |
| @discoverable |
| protocol ApplicationContext { |
| /// Returns session_id to use in the AudioConsumer API. |
| GetMediaSessionId() -> (struct { |
| media_session_id uint64; |
| }); |
| |
| /// Used by the Agent to receive a controller from the Cast Runner. |
| /// Can only be called at most one time for the lifetime of the Component. |
| SetApplicationController(resource struct { |
| controller client_end:ApplicationController; |
| }); |
| |
| /// Called if the application component exits gracefully, with the same |
| /// `exit_code` as would be reported via `ComponentController.OnTerminated()`. |
| /// Values less than or equal to zero are `zx.status` codes. |
| /// May be called at most once, immediately prior to termination. |
| @transitional |
| OnApplicationExit(struct { |
| exit_code int64; |
| }); |
| }; |