author Gaia Pushbot <>
Mon, 14 Oct 2013 09:55:26 -0700
changeset 164500 37e925e977cd1fec6a5b731c4e30b8a260877844
parent 161862 bb4af3cda509cd7ae210f6ab290b23186f030ed0
child 190023 d86a702e24c0f5b05f5ec6c380f56f854e6936b1
permissions -rw-r--r--
Bumping gaia.json for 2 gaia-central revision(s) a=gaia-bump ======== Author: Eitan Isaacson <> Desc: Merge pull request #12766 from eeejay/bug-925164 Bug 925164 - Remove role and label from slider area. ======== Author: Eitan Isaacson <> Desc: Bug 925164 - Remove role and label from slider area.

/* 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 */

#include "nsISupports.idl"

[function, scriptable, uuid(c7227506-5f8e-11e2-8bb3-10bf48d64bd4)]
interface nsIAudioChannelAgentCallback : nsISupports
   * Notified when the playable status of channel is changed.
   * @param canPlay
   *        Callback from agent to notify component of the playable status
   *        of the channel. If canPlay is muted state, component SHOULD stop
   *        playing media associated with this channel as soon as possible. if
   *        it is faded state then the volume of media should be reduced.
  void canPlayChanged(in long canPlay);

 * This interface provides an agent for gecko components to participate
 * in the audio channel service. Gecko components are responsible for
 *   1. Indicating what channel type they are using (via the init() member function).
 *   2. Before playing, checking the playable status of the channel.
 *   3. Notifying the agent when they start/stop using this channel.
 *   4. Notifying the agent of changes to the visibility of the component using
 *       this channel.
 * The agent will invoke a callback to notify Gecko components of
 *   1. Changes to the playable status of this channel.

[scriptable, uuid(86ef883d-9cec-4c04-994f-5de198286e7c)]
interface nsIAudioChannelAgent : nsISupports
  const long AUDIO_AGENT_CHANNEL_NORMAL             = 0;
  const long AUDIO_AGENT_CHANNEL_CONTENT            = 1;
  const long AUDIO_AGENT_CHANNEL_ALARM              = 3;
  const long AUDIO_AGENT_CHANNEL_TELEPHONY          = 4;
  const long AUDIO_AGENT_CHANNEL_RINGER             = 5;

  const long AUDIO_AGENT_CHANNEL_ERROR              = 1000;

  const long AUDIO_AGENT_STATE_NORMAL               = 0;
  const long AUDIO_AGENT_STATE_MUTED                = 1;
  const long AUDIO_AGENT_STATE_FADED                = 2;

   * Before init() is called, this returns AUDIO_AGENT_CHANNEL_ERROR.
  readonly attribute long audioChannelType;

   * Initialize the agent with a channel type.
   * Note: This function should only be called once.
   * @param channelType
   *    Audio Channel Type listed as above
   * @param callback
   *    1. Once the playable status changes, agent uses this callback function to notify
   *       Gecko component.
   *    2. The callback is allowed to be null. Ex: telephony doesn't need to listen change
   *       of the playable status.
   *    3. The AudioChannelAgent keeps a strong reference to the callback object.
  void init(in long channelType, in nsIAudioChannelAgentCallback callback);

   * This method is just like init(), except the audio channel agent keeps a
   * weak reference to the callback object.
   * In order for this to work, |callback| must implement
   * nsISupportsWeakReference.
  void initWithWeakCallback(in long channelType, in nsIAudioChannelAgentCallback callback);

   * This method is just like init(), and specify the channel is associated with video.
   * @param weak
   *    true if weak reference should be hold.
  void initWithVideo(in long channelType, in nsIAudioChannelAgentCallback callback, in boolean weak);

   * Notify the agent that we want to start playing.
   * Note: Gecko component SHOULD call this function first then start to
   *          play audio stream only when return value is true.
   * @return
   *    normal state: the agent has registered with audio channel service and
   *          the component should start playback.
   *    muted state: the agent has registered with audio channel service but
   *          the component should not start playback.
   *    faded state: the agent has registered with audio channel service the
   *          component should start playback as well as reducing the volume.
  long startPlaying();

   * Notify the agent we no longer want to play.
   * Note : even if startPlaying() returned false, the agent would still be
   *        registered with the audio channel service and receive callbacks for status changes.
   *        So stopPlaying must still eventually be called to unregister the agent with the
   *        channel service.
  void stopPlaying();

   * Notify the agent of the visibility state of the window using this agent.
   * @param visible
   *    True if the window associated with the agent is visible.
  void setVisibilityState(in boolean visible);