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

module media.mojom;

struct CastApplicationMediaInfo {
  // Used by multizone Playback.
  // Can be empty string if WebContents isn't for a WebApplication.
  string application_session_id;
  // True if WebApplication has MIXER_AUDIO feature enabled.
  // This value is set in Chromecast internal code.
  bool mixer_audio_enabled;
  // True if the session is an audio only session.
  bool is_audio_only_session;
};

// This is a service attached to RenderFrameHost.
interface CastApplicationMediaInfoManager {
  // Returns the CastApplicationMediaInfo associated with the
  // RenderFrameHost, i.e., the application.
  GetCastApplicationMediaInfo() =>
    (CastApplicationMediaInfo cast_application_media_info);
};
