diff --git a/dom/system/gonk/Makefile.in b/dom/system/gonk/Makefile.in index cc1946b3e2ee..ebba5bda38ac 100644 --- a/dom/system/gonk/Makefile.in +++ b/dom/system/gonk/Makefile.in @@ -42,6 +42,7 @@ XPIDLSRCS = \ nsIVolumeService.idl \ nsIVolumeStat.idl \ nsIWorkerHolder.idl \ + nsIAudioChannelManager.idl \ $(NULL) LOCAL_INCLUDES = \ diff --git a/dom/system/gonk/nsIAudioChannelManager.idl b/dom/system/gonk/nsIAudioChannelManager.idl new file mode 100644 index 000000000000..fe8ec1c041ef --- /dev/null +++ b/dom/system/gonk/nsIAudioChannelManager.idl @@ -0,0 +1,27 @@ +/* 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; +};