blob: e6bc30fb35d7fa8b579ea17c252140eb997b0e0f [file] [log] [blame]
// 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;
});
};