summaryrefslogtreecommitdiffstats
path: root/include/system
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2012-08-16 17:53:30 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2012-09-06 15:08:17 -0700
commite11866a8799a2357b82c9217c8d6b726726f23fe (patch)
treedebdd5f85201b395adf277e9dad8a5cd8339ec33 /include/system
parent9685194fc94510a33201aee9b80c23f206ccfe67 (diff)
downloadcore-e11866a8799a2357b82c9217c8d6b726726f23fe.tar.gz
core-e11866a8799a2357b82c9217c8d6b726726f23fe.tar.bz2
core-e11866a8799a2357b82c9217c8d6b726726f23fe.zip
Device and mode definitions for remote submix
A remote submix is an audio mix of audio streams that are not going to be played directly through the platform mix, but rather will be mixed together to be handled in a different manner. This mix can be obtained by recording it through the AUDIO_IN_REMOTE_SUBMIX and presenting it remotely (as opposed to local playback == on the device itself). All changes marked "temporary" will be overriden by the changes to update the audio device definitions for the 2.0 API. Change-Id: I9c6da607fc50b7b8545d189ac5b083107369cfb5
Diffstat (limited to 'include/system')
-rw-r--r--include/system/audio.h35
-rw-r--r--include/system/audio_policy.h1
2 files changed, 26 insertions, 10 deletions
diff --git a/include/system/audio.h b/include/system/audio.h
index e6cd30b68..dab47a89b 100644
--- a/include/system/audio.h
+++ b/include/system/audio.h
@@ -63,7 +63,10 @@ typedef enum {
AUDIO_SOURCE_CAMCORDER = 5,
AUDIO_SOURCE_VOICE_RECOGNITION = 6,
AUDIO_SOURCE_VOICE_COMMUNICATION = 7,
-
+ AUDIO_SOURCE_REMOTE_SUBMIX = 8, /* Source for the mix to be presented remotely. */
+ /* An example of remote presentation is Wifi Display */
+ /* where a dongle attached to a TV can be used to */
+ /* play the mix captured by this audio source. */
AUDIO_SOURCE_CNT,
AUDIO_SOURCE_MAX = AUDIO_SOURCE_CNT - 1,
} audio_source_t;
@@ -292,7 +295,8 @@ enum {
AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET = 0x1000,
AUDIO_DEVICE_OUT_USB_ACCESSORY = 0x2000,
AUDIO_DEVICE_OUT_USB_DEVICE = 0x4000,
- AUDIO_DEVICE_OUT_DEFAULT = 0x8000,
+ AUDIO_DEVICE_OUT_REMOTE_SUBMIX = 0x8000, //temporary change
+ AUDIO_DEVICE_OUT_DEFAULT = 0x10000,//temporary change
AUDIO_DEVICE_OUT_ALL = (AUDIO_DEVICE_OUT_EARPIECE |
AUDIO_DEVICE_OUT_SPEAKER |
AUDIO_DEVICE_OUT_WIRED_HEADSET |
@@ -308,6 +312,7 @@ enum {
AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET |
AUDIO_DEVICE_OUT_USB_ACCESSORY |
AUDIO_DEVICE_OUT_USB_DEVICE |
+ AUDIO_DEVICE_OUT_REMOTE_SUBMIX | //temporary change
AUDIO_DEVICE_OUT_DEFAULT),
AUDIO_DEVICE_OUT_ALL_A2DP = (AUDIO_DEVICE_OUT_BLUETOOTH_A2DP |
AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES |
@@ -319,14 +324,15 @@ enum {
AUDIO_DEVICE_OUT_USB_DEVICE),
/* input devices */
- AUDIO_DEVICE_IN_COMMUNICATION = 0x10000,
- AUDIO_DEVICE_IN_AMBIENT = 0x20000,
- AUDIO_DEVICE_IN_BUILTIN_MIC = 0x40000,
- AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = 0x80000,
- AUDIO_DEVICE_IN_WIRED_HEADSET = 0x100000,
- AUDIO_DEVICE_IN_AUX_DIGITAL = 0x200000,
- AUDIO_DEVICE_IN_VOICE_CALL = 0x400000,
- AUDIO_DEVICE_IN_BACK_MIC = 0x800000,
+ AUDIO_DEVICE_IN_COMMUNICATION = 0x20000, //temporary change
+ AUDIO_DEVICE_IN_AMBIENT = 0x40000, //temporary change
+ AUDIO_DEVICE_IN_BUILTIN_MIC = 0x80000, //temporary change
+ AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET = 0x100000, //temporary change
+ AUDIO_DEVICE_IN_WIRED_HEADSET = 0x200000, //temporary change
+ AUDIO_DEVICE_IN_AUX_DIGITAL = 0x400000, //temporary change
+ AUDIO_DEVICE_IN_VOICE_CALL = 0x800000, //temporary change
+ AUDIO_DEVICE_IN_BACK_MIC = 0x1000000, //temporary change
+ AUDIO_DEVICE_IN_REMOTE_SUBMIX = 0x2000000, //temporary change
AUDIO_DEVICE_IN_DEFAULT = 0x80000000,
AUDIO_DEVICE_IN_ALL = (AUDIO_DEVICE_IN_COMMUNICATION |
@@ -337,6 +343,7 @@ enum {
AUDIO_DEVICE_IN_AUX_DIGITAL |
AUDIO_DEVICE_IN_VOICE_CALL |
AUDIO_DEVICE_IN_BACK_MIC |
+ AUDIO_DEVICE_IN_REMOTE_SUBMIX | //temporary change
AUDIO_DEVICE_IN_DEFAULT),
AUDIO_DEVICE_IN_ALL_SCO = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
};
@@ -407,6 +414,14 @@ static inline bool audio_is_usb_device(audio_devices_t device)
return false;
}
+static inline bool audio_is_remote_submix_device(audio_devices_t device)
+{
+ if ((popcount(device) == 1) && (device & AUDIO_DEVICE_OUT_REMOTE_SUBMIX))
+ return true;
+ else
+ return false;
+}
+
static inline bool audio_is_input_channel(uint32_t channel)
{
if ((channel & ~AUDIO_CHANNEL_IN_ALL) == 0)
diff --git a/include/system/audio_policy.h b/include/system/audio_policy.h
index 91b8e9c44..7b82d8dc3 100644
--- a/include/system/audio_policy.h
+++ b/include/system/audio_policy.h
@@ -43,6 +43,7 @@ typedef enum {
AUDIO_POLICY_FORCE_ANALOG_DOCK,
AUDIO_POLICY_FORCE_DIGITAL_DOCK,
AUDIO_POLICY_FORCE_NO_BT_A2DP, /* A2DP sink is not preferred to speaker or wired HS */
+ AUDIO_POLICY_FORCE_REMOTE_SUBMIX,
AUDIO_POLICY_FORCE_CFG_CNT,
AUDIO_POLICY_FORCE_CFG_MAX = AUDIO_POLICY_FORCE_CFG_CNT - 1,