chromium/fuchsia_web/runners/cast/fidl/application_context.fidl

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library chromium.cast;

@discoverable
closed protocol ApplicationContext {
    /// Returns `session_id` to use in the AudioConsumer API. May return 0
    /// if there is no media session associated with the app. In this case
    /// audio will be rendered through AudioRenderer.
    strict 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.
    strict 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.
    strict OnApplicationExit(struct {
        exit_code int64;
    });
};