/* 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 "nsISupports.idl" [scriptable, builtinclass, uuid(df31c280-1ef1-11e5-867f-0800200c9a66)] interface nsIAudioManager : nsISupports { /** * Microphone muted? */ attribute boolean microphoneMuted; /** * Set the phone's audio mode. */ const long PHONE_STATE_INVALID = -2; const long PHONE_STATE_CURRENT = -1; const long PHONE_STATE_NORMAL = 0; const long PHONE_STATE_RINGTONE = 1; const long PHONE_STATE_IN_CALL = 2; const long PHONE_STATE_IN_COMMUNICATION = 3; attribute long phoneState; /** * Configure a particular device ("force") to be used for one of the uses * (communication, media playback, etc.) */ const long FORCE_NONE = 0; // the default const long FORCE_SPEAKER = 1; const long FORCE_HEADPHONES = 2; const long FORCE_BT_SCO = 3; const long FORCE_BT_A2DP = 4; const long FORCE_WIRED_ACCESSORY = 5; const long FORCE_BT_CAR_DOCK = 6; const long FORCE_BT_DESK_DOCK = 7; const long FORCE_ANALOG_DOCK = 8; const long FORCE_DIGITAL_DOCK = 9; const long FORCE_NO_BT_A2DP = 10; const long USE_COMMUNICATION = 0; const long USE_MEDIA = 1; const long USE_RECORD = 2; const long USE_DOCK = 3; void setForceForUse(in long usage, in long force); long getForceForUse(in long usage); /** * These functions would be used when we enable the new volume control API * (mozAudioChannelManager). The range of volume index is from 0 to N. * More details on : https://gist.github.com/evanxd/41d8e2d91c5201a42bfa */ void setAudioChannelVolume(in unsigned long channel, in unsigned long index); unsigned long getAudioChannelVolume(in unsigned long channel); unsigned long getMaxAudioChannelVolume(in unsigned long channel); };