/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsIDOMEventTarget.idl"

[scriptable, builtinclass, uuid(06a6893d-1c0d-4ad7-93fd-bc479b44d55b)]
interface nsIAudioChannelManager : nsIDOMEventTarget {
  /**
   * Indicates whether the headphones are plugged in or not.
   */
  readonly attribute boolean headphones;

  /**
   * Fired when the headphones are plugged or unplugged.
   *
   * When the headphones are unplugged, we may start playing audio through the
   * system's speakers.  Similarly, when headphones are plugged in, we may
   * switch audio from speakers to headphones.
   *
   * If audio is currently playing in this window or in one of its children, we
   * will fire this event before we switch the audio output from headphones to
   * speakers (or vice versa).  This allows you to, for example, pause your
   * window's audio when the headphones are unplugged.
   */
  [implicit_jscontext] attribute jsval onheadphoneschange;
};
