diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2012-08-16 17:53:30 -0700 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2012-09-06 15:08:17 -0700 |
commit | e11866a8799a2357b82c9217c8d6b726726f23fe (patch) | |
tree | debdd5f85201b395adf277e9dad8a5cd8339ec33 /include/system | |
parent | 9685194fc94510a33201aee9b80c23f206ccfe67 (diff) | |
download | core-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.h | 35 | ||||
-rw-r--r-- | include/system/audio_policy.h | 1 |
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, |