diff options
| author | Vidyakumar Athota <vathota@codeaurora.org> | 2012-07-06 18:29:42 -0700 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2012-08-17 03:05:48 -0700 |
| commit | 3bbaa3a1a9617dcafbd2fc51f8419884ad81e455 (patch) | |
| tree | d0a0674ec2ce46192023ae1ebcbf470cbb2612ae /include | |
| parent | 9464c92926f1ffb0226f11554c05949f12aedaa3 (diff) | |
| download | system_core-3bbaa3a1a9617dcafbd2fc51f8419884ad81e455.tar.gz system_core-3bbaa3a1a9617dcafbd2fc51f8419884ad81e455.tar.bz2 system_core-3bbaa3a1a9617dcafbd2fc51f8419884ad81e455.zip | |
audio: Squashed set of commits for QCOM audio features
system/core: Add audio enums for QCELP/EVRC feature support
- Added required enums for QCELP/EVRC features.
Change-Id: Ib6b2297ebc9cac785fec99c3c2c80b1ad9b774f6
system/core: Added changes required for tunnel mode recording
- EVRC and QCELP format values are interchanged, due to
this EVRC/QCELP are not recording with proper header.
- Added preproc_ctl, evrc/qcelp for tunnel mode recording.
Change-Id: I93db3170895387bec43a62214aa5d65aaab40c87
system/core: Add output flag for LPA and Tunnel
Change-Id: I621818502c273b2c8aba37f64a83539450a1aafa
audio: VOIP bringup and support for vocoders.
Setup permissions for MVS driver.
Add vocoder types.
Change-Id: Ie150be9b01137628ba3e3ea788d429096ba1f413
system/core: Add enums for voice call recording.
Add enums for voice call recording
Change-Id: Idd5cd19573c48a0a782bcd56cca38b4901391bbf
system/core: Add support for surround sound recording
- Add 5.1 input channel definitions and masks
Change-Id: I24375c0d9443cd6e8dd58114464bf9f528b97d43
Diffstat (limited to 'include')
| -rw-r--r-- | include/system/audio.h | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/include/system/audio.h b/include/system/audio.h index 5c10424f..8e7177f8 100644 --- a/include/system/audio.h +++ b/include/system/audio.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2011 The Android Open Source Project + * Copyright (c) 2012, Code Aurora Forum. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -145,6 +146,12 @@ typedef enum { AUDIO_FORMAT_HE_AAC_V1 = 0x05000000UL, AUDIO_FORMAT_HE_AAC_V2 = 0x06000000UL, AUDIO_FORMAT_VORBIS = 0x07000000UL, +#ifdef QCOM_HARDWARE + AUDIO_FORMAT_EVRC = 0x08000000UL, + AUDIO_FORMAT_QCELP = 0x09000000UL, + AUDIO_FORMAT_EVRCB = 0x0a000000UL, + AUDIO_FORMAT_EVRCWB = 0x0b000000UL, +#endif AUDIO_FORMAT_MAIN_MASK = 0xFF000000UL, AUDIO_FORMAT_SUB_MASK = 0x00FFFFFFUL, @@ -240,9 +247,28 @@ typedef enum { AUDIO_CHANNEL_IN_Z_AXIS = 0x2000, AUDIO_CHANNEL_IN_VOICE_UPLINK = 0x4000, AUDIO_CHANNEL_IN_VOICE_DNLINK = 0x8000, +#ifdef QCOM_HARDWARE + AUDIO_CHANNEL_IN_FRONT_LEFT = 0x10000, + AUDIO_CHANNEL_IN_FRONT_RIGHT = 0x20000, + AUDIO_CHANNEL_IN_FRONT_CENTER = 0x40000, + AUDIO_CHANNEL_IN_LOW_FREQUENCY = 0x80000, + AUDIO_CHANNEL_IN_BACK_LEFT = 0x100000, + AUDIO_CHANNEL_IN_BACK_RIGHT = 0x200000, +#endif AUDIO_CHANNEL_IN_MONO = AUDIO_CHANNEL_IN_FRONT, AUDIO_CHANNEL_IN_STEREO = (AUDIO_CHANNEL_IN_LEFT | AUDIO_CHANNEL_IN_RIGHT), +#ifdef QCOM_HARDWARE + AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO = (AUDIO_CHANNEL_IN_VOICE_UPLINK | AUDIO_CHANNEL_IN_MONO), + AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO = (AUDIO_CHANNEL_IN_VOICE_DNLINK | AUDIO_CHANNEL_IN_MONO), + AUDIO_CHANNEL_IN_VOICE_CALL_MONO = (AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO | AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO), + AUDIO_CHANNEL_IN_5POINT1 = (AUDIO_CHANNEL_IN_FRONT_LEFT | + AUDIO_CHANNEL_IN_FRONT_RIGHT | + AUDIO_CHANNEL_IN_FRONT_CENTER | + AUDIO_CHANNEL_IN_LOW_FREQUENCY | + AUDIO_CHANNEL_IN_BACK_LEFT | + AUDIO_CHANNEL_IN_BACK_RIGHT), +#endif AUDIO_CHANNEL_IN_ALL = (AUDIO_CHANNEL_IN_LEFT | AUDIO_CHANNEL_IN_RIGHT | AUDIO_CHANNEL_IN_FRONT | @@ -255,6 +281,9 @@ typedef enum { AUDIO_CHANNEL_IN_X_AXIS | AUDIO_CHANNEL_IN_Y_AXIS | AUDIO_CHANNEL_IN_Z_AXIS | +#ifdef QCOM_HARDWARE + AUDIO_CHANNEL_IN_5POINT1 | +#endif AUDIO_CHANNEL_IN_VOICE_UPLINK | AUDIO_CHANNEL_IN_VOICE_DNLINK), }; @@ -397,7 +426,12 @@ typedef enum { // controls related to voice calls. AUDIO_OUTPUT_FLAG_FAST = 0x4, // output supports "fast tracks", // defined elsewhere - AUDIO_OUTPUT_FLAG_DEEP_BUFFER = 0x8 // use deep audio buffers + AUDIO_OUTPUT_FLAG_DEEP_BUFFER = 0x8,// use deep audio buffers +#ifdef QCOM_HARDWARE +//Qualcomm Flags + AUDIO_OUTPUT_FLAG_LPA = 0x1000, // use LPA + AUDIO_OUTPUT_FLAG_TUNNEL = 0x2000 // use Tunnel +#endif } audio_output_flags_t; static inline bool audio_is_output_device(audio_devices_t device) @@ -489,7 +523,7 @@ static inline audio_channel_mask_t audio_channel_out_mask_from_count(uint32_t ch } } -/* Similar to above, but for input. Currently handles only mono and stereo. */ +/* Similar to above, but for input. Currently handles mono and stereo and 5.1 input. */ static inline audio_channel_mask_t audio_channel_in_mask_from_count(uint32_t channel_count) { switch (channel_count) { @@ -497,6 +531,10 @@ static inline audio_channel_mask_t audio_channel_in_mask_from_count(uint32_t cha return AUDIO_CHANNEL_IN_MONO; case 2: return AUDIO_CHANNEL_IN_STEREO; +#ifdef QCOM_HARDWARE + case 6: + return AUDIO_CHANNEL_IN_5POINT1; +#endif default: return 0; } @@ -517,6 +555,12 @@ static inline bool audio_is_valid_format(audio_format_t format) case AUDIO_FORMAT_HE_AAC_V1: case AUDIO_FORMAT_HE_AAC_V2: case AUDIO_FORMAT_VORBIS: +#ifdef QCOM_HARDWARE + case AUDIO_FORMAT_QCELP: + case AUDIO_FORMAT_EVRC: + case AUDIO_FORMAT_EVRCB: + case AUDIO_FORMAT_EVRCWB: +#endif return true; default: return false; |
