/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/.
 */

// AudioChannels are used by:
// * HTMLMediaElement
// * AudioContext (WebAudio)
// When used, it has to throw an exception if the app tries to change the audio
// channel type without the permission (manifest file for B2G apps).
// The supported values are:
// * normal (default value)
//   Automatically paused if "notification" or higher priority channel
//   is played
//   Use case: normal applications
// * content
//   Automatically paused if "notification" or higher priority channel
//   is played. Also paused if another app starts using "content"
//   channel. Using this channel never affects applications using
//   the "normal" channel.
//   Use case: video/audio players
// * notification
//   Automatically paused if "alarm" or higher priority channel is played.
//   Use case: New email, incoming SMS
// * alarm
//   Automatically paused if "telephony" or higher priority channel is
//   played.
//   User case: Alarm clock, calendar alarms
// * telephony
//   Automatically paused if "ringer" or higher priority
//   channel is played.
//   Use case: dialer, voip
// * ringer
//   Automatically paused if "publicnotification" or higher priority
//   channel is played.
//   Use case: dialer, voip
// * publicnotification
//   Always plays in speaker, even when headphones are plugged in.
//   Use case: Camera shutter sound.
enum AudioChannel {
  "normal",
  "content",
  "notification",
  "alarm",
  "telephony",
  "ringer",
  "publicnotification",
  "system"
};