aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVidyakumar Athota <vathota@codeaurora.org>2012-07-06 18:29:42 -0700
committerSteve Kondik <shade@chemlab.org>2012-08-17 03:05:48 -0700
commit3bbaa3a1a9617dcafbd2fc51f8419884ad81e455 (patch)
treed0a0674ec2ce46192023ae1ebcbf470cbb2612ae /include
parent9464c92926f1ffb0226f11554c05949f12aedaa3 (diff)
downloadsystem_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.h48
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;