Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 1 | /* |
Subhash Chandra Bose Naripeddy | e0a0712 | 2013-12-14 00:34:53 -0800 | [diff] [blame] | 2 | * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 3 | * Not a Contribution. |
| 4 | * |
| 5 | * Copyright (C) 2013 The Android Open Source Project |
| 6 | * |
| 7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 8 | * you may not use this file except in compliance with the License. |
| 9 | * You may obtain a copy of the License at |
| 10 | * |
| 11 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 12 | * |
| 13 | * Unless required by applicable law or agreed to in writing, software |
| 14 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 16 | * See the License for the specific language governing permissions and |
| 17 | * limitations under the License. |
| 18 | */ |
| 19 | |
| 20 | #ifndef AUDIO_EXTN_H |
| 21 | #define AUDIO_EXTN_H |
| 22 | |
| 23 | #include <cutils/str_parms.h> |
| 24 | |
Steve Kondik | 3abbbc8 | 2014-11-29 14:14:43 -0800 | [diff] [blame] | 25 | #if 0 |
Mingming Yin | 7854128 | 2014-05-16 12:10:55 -0700 | [diff] [blame] | 26 | #define AUDIO_FORMAT_PCM_OFFLOAD 0x17000000UL |
| 27 | #define AUDIO_FORMAT_PCM_16_BIT_OFFLOAD (AUDIO_FORMAT_PCM_OFFLOAD | AUDIO_FORMAT_PCM_SUB_16_BIT) |
| 28 | #define AUDIO_FORMAT_PCM_24_BIT_OFFLOAD (AUDIO_FORMAT_PCM_OFFLOAD | AUDIO_FORMAT_PCM_SUB_8_24_BIT) |
| 29 | #define AUDIO_OFFLOAD_CODEC_FORMAT "music_offload_codec_format" |
| 30 | #define audio_is_offload_pcm(format) (0) |
Mingming Yin | d48310a | 2015-06-10 16:28:10 -0700 | [diff] [blame] | 31 | #else |
| 32 | #define OFFLOAD_USE_SMALL_BUFFER ((info->format & AUDIO_FORMAT_PCM_OFFLOAD) == AUDIO_FORMAT_PCM_OFFLOAD) |
Mingming Yin | 7854128 | 2014-05-16 12:10:55 -0700 | [diff] [blame] | 33 | #endif |
| 34 | |
| 35 | #ifndef AFE_PROXY_ENABLED |
| 36 | #define AUDIO_DEVICE_OUT_PROXY 0x40000 |
| 37 | #endif |
| 38 | |
| 39 | #ifndef COMPRESS_VOIP_ENABLED |
| 40 | #define AUDIO_OUTPUT_FLAG_VOIP_RX 0x4000 |
| 41 | #endif |
| 42 | |
| 43 | #ifndef INCALL_MUSIC_ENABLED |
| 44 | #define AUDIO_OUTPUT_FLAG_INCALL_MUSIC 0x8000 |
| 45 | #endif |
| 46 | |
Ramjee Singh | fd4323f | 2015-11-18 13:26:59 +0530 | [diff] [blame] | 47 | #ifndef AUDIO_DEVICE_OUT_FM_TX |
| 48 | #define AUDIO_DEVICE_OUT_FM_TX 0x8000000 |
Mingming Yin | 7854128 | 2014-05-16 12:10:55 -0700 | [diff] [blame] | 49 | #endif |
| 50 | |
| 51 | |
Amit Shekhar | faefb32 | 2014-09-08 14:08:19 -0700 | [diff] [blame^] | 52 | #ifdef AUDIO_EXTN_FORMATS_ENABLED |
| 53 | #define AUDIO_OUTPUT_BIT_WIDTH ((config->offload_info.bit_width == 32) ? 24\ |
| 54 | :config->offload_info.bit_width) |
| 55 | #else |
| 56 | #define AUDIO_OUTPUT_BIT_WIDTH (CODEC_BACKEND_DEFAULT_BIT_WIDTH) |
| 57 | #endif |
| 58 | |
Mingming Yin | 7854128 | 2014-05-16 12:10:55 -0700 | [diff] [blame] | 59 | #define MAX_LENGTH_MIXER_CONTROL_IN_INT (128) |
| 60 | |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 61 | void audio_extn_set_parameters(struct audio_device *adev, |
| 62 | struct str_parms *parms); |
| 63 | |
Shiv Maliyappanahalli | 34b585f | 2013-10-01 15:49:05 -0700 | [diff] [blame] | 64 | void audio_extn_get_parameters(const struct audio_device *adev, |
| 65 | struct str_parms *query, |
| 66 | struct str_parms *reply); |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 67 | |
| 68 | #ifndef ANC_HEADSET_ENABLED |
| 69 | #define audio_extn_get_anc_enabled() (0) |
| 70 | #define audio_extn_should_use_fb_anc() (0) |
| 71 | #define audio_extn_should_use_handset_anc(in_channels) (0) |
| 72 | #else |
| 73 | bool audio_extn_get_anc_enabled(void); |
| 74 | bool audio_extn_should_use_fb_anc(void); |
| 75 | bool audio_extn_should_use_handset_anc(int in_channels); |
| 76 | #endif |
| 77 | |
Venkata Narendra Kumar Gutta | 9c38b18 | 2014-03-27 17:39:57 +0530 | [diff] [blame] | 78 | #ifndef FLUENCE_ENABLED |
| 79 | #define audio_extn_set_fluence_parameters(adev, parms) (0) |
| 80 | #define audio_extn_get_fluence_parameters(adev, query, reply) (0) |
| 81 | #else |
| 82 | void audio_extn_set_fluence_parameters(struct audio_device *adev, |
| 83 | struct str_parms *parms); |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 84 | int audio_extn_get_fluence_parameters(const struct audio_device *adev, |
Venkata Narendra Kumar Gutta | 9c38b18 | 2014-03-27 17:39:57 +0530 | [diff] [blame] | 85 | struct str_parms *query, struct str_parms *reply); |
| 86 | #endif |
| 87 | |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 88 | #ifndef AFE_PROXY_ENABLED |
Mingming Yin | 5bdb705 | 2014-03-05 17:45:03 -0800 | [diff] [blame] | 89 | #define audio_extn_set_afe_proxy_channel_mixer(adev,channel_count) (0) |
| 90 | #define audio_extn_read_afe_proxy_channel_masks(out) (0) |
| 91 | #define audio_extn_get_afe_proxy_channel_count() (0) |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 92 | #else |
Mingming Yin | 5bdb705 | 2014-03-05 17:45:03 -0800 | [diff] [blame] | 93 | int32_t audio_extn_set_afe_proxy_channel_mixer(struct audio_device *adev, |
| 94 | int channel_count); |
Apoorv Raghuvanshi | 947cb90 | 2013-12-09 13:45:39 -0800 | [diff] [blame] | 95 | int32_t audio_extn_read_afe_proxy_channel_masks(struct stream_out *out); |
Mingming Yin | 5bdb705 | 2014-03-05 17:45:03 -0800 | [diff] [blame] | 96 | int32_t audio_extn_get_afe_proxy_channel_count(); |
| 97 | |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 98 | #endif |
| 99 | |
Apoorv Raghuvanshi | 5792d4b | 2013-10-07 18:40:05 -0700 | [diff] [blame] | 100 | #ifndef USB_HEADSET_ENABLED |
| 101 | #define audio_extn_usb_init(adev) (0) |
| 102 | #define audio_extn_usb_deinit() (0) |
| 103 | #define audio_extn_usb_start_playback(adev) (0) |
| 104 | #define audio_extn_usb_stop_playback() (0) |
| 105 | #define audio_extn_usb_start_capture(adev) (0) |
| 106 | #define audio_extn_usb_stop_capture() (0) |
| 107 | #define audio_extn_usb_set_proxy_sound_card(sndcard_idx) (0) |
| 108 | #define audio_extn_usb_is_proxy_inuse() (0) |
| 109 | #else |
Satish Babu Patakokila | f6d3c55 | 2014-03-26 15:02:12 +0530 | [diff] [blame] | 110 | void initPlaybackVolume(); |
Apoorv Raghuvanshi | 5792d4b | 2013-10-07 18:40:05 -0700 | [diff] [blame] | 111 | void audio_extn_usb_init(void *adev); |
| 112 | void audio_extn_usb_deinit(); |
| 113 | void audio_extn_usb_start_playback(void *adev); |
| 114 | void audio_extn_usb_stop_playback(); |
| 115 | void audio_extn_usb_start_capture(void *adev); |
| 116 | void audio_extn_usb_stop_capture(); |
| 117 | void audio_extn_usb_set_proxy_sound_card(uint32_t sndcard_idx); |
| 118 | bool audio_extn_usb_is_proxy_inuse(); |
| 119 | #endif |
| 120 | |
Apoorv Raghuvanshi | 6178a3f | 2013-10-19 12:38:54 -0700 | [diff] [blame] | 121 | #ifndef SSR_ENABLED |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 122 | #define audio_extn_ssr_init(in) (0) |
Apoorv Raghuvanshi | 6178a3f | 2013-10-19 12:38:54 -0700 | [diff] [blame] | 123 | #define audio_extn_ssr_deinit() (0) |
Mingming Yin | 49be803 | 2013-12-19 12:51:25 -0800 | [diff] [blame] | 124 | #define audio_extn_ssr_update_enabled() (0) |
Apoorv Raghuvanshi | 6178a3f | 2013-10-19 12:38:54 -0700 | [diff] [blame] | 125 | #define audio_extn_ssr_get_enabled() (0) |
| 126 | #define audio_extn_ssr_read(stream, buffer, bytes) (0) |
| 127 | #else |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 128 | int32_t audio_extn_ssr_init(struct stream_in *in); |
Apoorv Raghuvanshi | 6178a3f | 2013-10-19 12:38:54 -0700 | [diff] [blame] | 129 | int32_t audio_extn_ssr_deinit(); |
Mingming Yin | 49be803 | 2013-12-19 12:51:25 -0800 | [diff] [blame] | 130 | void audio_extn_ssr_update_enabled(); |
Apoorv Raghuvanshi | 6178a3f | 2013-10-19 12:38:54 -0700 | [diff] [blame] | 131 | bool audio_extn_ssr_get_enabled(); |
| 132 | int32_t audio_extn_ssr_read(struct audio_stream_in *stream, |
| 133 | void *buffer, size_t bytes); |
| 134 | #endif |
| 135 | |
Ravi Kumar Alamanda | 48c921d | 2013-10-29 06:07:44 -0700 | [diff] [blame] | 136 | #ifndef HW_VARIANTS_ENABLED |
| 137 | #define hw_info_init(snd_card_name) (0) |
| 138 | #define hw_info_deinit(hw_info) (0) |
| 139 | #define hw_info_append_hw_type(hw_info,\ |
| 140 | snd_device, device_name) (0) |
| 141 | #else |
| 142 | void *hw_info_init(const char *snd_card_name); |
| 143 | void hw_info_deinit(void *hw_info); |
| 144 | void hw_info_append_hw_type(void *hw_info, snd_device_t snd_device, |
| 145 | char *device_name); |
| 146 | #endif |
| 147 | |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 148 | #ifndef AUDIO_LISTEN_ENABLED |
Kiran Kandi | de144c8 | 2013-11-20 15:58:32 -0800 | [diff] [blame] | 149 | #define audio_extn_listen_init(adev, snd_card) (0) |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 150 | #define audio_extn_listen_deinit(adev) (0) |
Steve Kondik | ad1a08a | 2015-11-11 16:26:25 +0100 | [diff] [blame] | 151 | #define audio_extn_listen_update_status(uc_info, event) (0) |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 152 | #define audio_extn_listen_set_parameters(adev, parms) (0) |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 153 | #else |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 154 | enum listen_event_type { |
Kiran Kandi | de144c8 | 2013-11-20 15:58:32 -0800 | [diff] [blame] | 155 | LISTEN_EVENT_SND_DEVICE_FREE, |
Steve Kondik | ad1a08a | 2015-11-11 16:26:25 +0100 | [diff] [blame] | 156 | LISTEN_EVENT_SND_DEVICE_BUSY |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 157 | }; |
| 158 | typedef enum listen_event_type listen_event_type_t; |
| 159 | |
Kiran Kandi | de144c8 | 2013-11-20 15:58:32 -0800 | [diff] [blame] | 160 | int audio_extn_listen_init(struct audio_device *adev, unsigned int snd_card); |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 161 | void audio_extn_listen_deinit(struct audio_device *adev); |
Steve Kondik | ad1a08a | 2015-11-11 16:26:25 +0100 | [diff] [blame] | 162 | void audio_extn_listen_update_status(snd_device_t snd_device, |
Kiran Kandi | de144c8 | 2013-11-20 15:58:32 -0800 | [diff] [blame] | 163 | listen_event_type_t event); |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 164 | void audio_extn_listen_set_parameters(struct audio_device *adev, |
Kiran Kandi | de144c8 | 2013-11-20 15:58:32 -0800 | [diff] [blame] | 165 | struct str_parms *parms); |
Kiran Kandi | 910e186 | 2013-10-29 13:29:42 -0700 | [diff] [blame] | 166 | #endif /* AUDIO_LISTEN_ENABLED */ |
| 167 | |
Damir Didjusto | f1d46c7 | 2013-11-06 17:59:04 -0800 | [diff] [blame] | 168 | #ifndef AUXPCM_BT_ENABLED |
Apoorv Raghuvanshi | 84fa2fe | 2013-12-04 11:57:47 -0800 | [diff] [blame] | 169 | #define audio_extn_read_xml(adev, mixer_card, MIXER_XML_PATH, \ |
Damir Didjusto | f1d46c7 | 2013-11-06 17:59:04 -0800 | [diff] [blame] | 170 | MIXER_XML_PATH_AUXPCM) (-ENOSYS) |
| 171 | #else |
| 172 | int32_t audio_extn_read_xml(struct audio_device *adev, uint32_t mixer_card, |
| 173 | const char* mixer_xml_path, |
| 174 | const char* mixer_xml_path_auxpcm); |
| 175 | #endif /* AUXPCM_BT_ENABLED */ |
Gopikrishnaiah Anandan | f538cef | 2013-10-28 14:06:03 -0700 | [diff] [blame] | 176 | #ifndef SPKR_PROT_ENABLED |
| 177 | #define audio_extn_spkr_prot_init(adev) (0) |
| 178 | #define audio_extn_spkr_prot_start_processing(snd_device) (-EINVAL) |
| 179 | #define audio_extn_spkr_prot_stop_processing() (0) |
| 180 | #define audio_extn_spkr_prot_is_enabled() (false) |
| 181 | #else |
| 182 | void audio_extn_spkr_prot_init(void *adev); |
| 183 | int audio_extn_spkr_prot_start_processing(snd_device_t snd_device); |
| 184 | void audio_extn_spkr_prot_stop_processing(); |
| 185 | bool audio_extn_spkr_prot_is_enabled(); |
| 186 | #endif |
| 187 | |
Mingming Yin | e62d784 | 2013-10-25 16:26:03 -0700 | [diff] [blame] | 188 | #ifndef COMPRESS_CAPTURE_ENABLED |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 189 | #define audio_extn_compr_cap_init(in) (0) |
Mingming Yin | e62d784 | 2013-10-25 16:26:03 -0700 | [diff] [blame] | 190 | #define audio_extn_compr_cap_enabled() (0) |
| 191 | #define audio_extn_compr_cap_format_supported(format) (0) |
| 192 | #define audio_extn_compr_cap_usecase_supported(usecase) (0) |
| 193 | #define audio_extn_compr_cap_get_buffer_size(format) (0) |
| 194 | #define audio_extn_compr_cap_read(in, buffer, bytes) (0) |
| 195 | #define audio_extn_compr_cap_deinit() (0) |
| 196 | #else |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 197 | void audio_extn_compr_cap_init(struct stream_in *in); |
Mingming Yin | e62d784 | 2013-10-25 16:26:03 -0700 | [diff] [blame] | 198 | bool audio_extn_compr_cap_enabled(); |
| 199 | bool audio_extn_compr_cap_format_supported(audio_format_t format); |
| 200 | bool audio_extn_compr_cap_usecase_supported(audio_usecase_t usecase); |
| 201 | size_t audio_extn_compr_cap_get_buffer_size(audio_format_t format); |
| 202 | size_t audio_extn_compr_cap_read(struct stream_in *in, |
| 203 | void *buffer, size_t bytes); |
| 204 | void audio_extn_compr_cap_deinit(); |
| 205 | #endif |
| 206 | |
Subhash Chandra Bose Naripeddy | e0a0712 | 2013-12-14 00:34:53 -0800 | [diff] [blame] | 207 | #if defined(DS1_DOLBY_DDP_ENABLED) || defined(DS1_DOLBY_DAP_ENABLED) |
| 208 | void audio_extn_dolby_set_dmid(struct audio_device *adev); |
Mingming Yin | 9031010 | 2013-11-13 16:57:00 -0800 | [diff] [blame] | 209 | #else |
Subhash Chandra Bose Naripeddy | e0a0712 | 2013-12-14 00:34:53 -0800 | [diff] [blame] | 210 | #define audio_extn_dolby_set_dmid(adev) (0) |
| 211 | #endif |
| 212 | |
| 213 | #ifndef DS1_DOLBY_DDP_ENABLED |
Ravi Kumar Alamanda | 0c9194f | 2014-03-21 17:33:03 -0700 | [diff] [blame] | 214 | #define audio_extn_dolby_set_endpoint(adev) (0) |
Subhash Chandra Bose Naripeddy | e0a0712 | 2013-12-14 00:34:53 -0800 | [diff] [blame] | 215 | #else |
| 216 | void audio_extn_dolby_set_endpoint(struct audio_device *adev); |
| 217 | #endif |
| 218 | |
| 219 | #ifndef DS1_DOLBY_DDP_ENABLED |
| 220 | #define audio_extn_ddp_set_parameters(adev, parms) (0) |
| 221 | #define audio_extn_is_dolby_format(format) (0) |
Ravi Kumar Alamanda | 0c9194f | 2014-03-21 17:33:03 -0700 | [diff] [blame] | 222 | #define audio_extn_dolby_get_snd_codec_id(adev, out, format) (0) |
Subhash Chandra Bose Naripeddy | e0a0712 | 2013-12-14 00:34:53 -0800 | [diff] [blame] | 223 | #define audio_extn_dolby_send_ddp_endp_params(adev) (0) |
| 224 | #else |
| 225 | bool audio_extn_is_dolby_format(audio_format_t format); |
| 226 | int audio_extn_dolby_get_snd_codec_id(struct audio_device *adev, |
| 227 | struct stream_out *out, |
| 228 | audio_format_t format); |
| 229 | void audio_extn_ddp_set_parameters(struct audio_device *adev, |
| 230 | struct str_parms *parms); |
| 231 | void audio_extn_dolby_send_ddp_endp_params(struct audio_device *adev); |
Mingming Yin | 9031010 | 2013-11-13 16:57:00 -0800 | [diff] [blame] | 232 | #endif |
| 233 | |
Eric Laurent | da46bfb | 2014-08-25 22:39:29 -0500 | [diff] [blame] | 234 | #ifndef EXTERNAL_SPEAKER_ENABLED |
| 235 | #define audio_extn_extspk_init(adev) NULL |
| 236 | #define audio_extn_extspk_deinit(extn) 0 |
| 237 | #define audio_extn_extspk_update(extn) 0 |
| 238 | #define audio_extn_extspk_set_mode(extn, mode) 0 |
Eric Laurent | 321b96d | 2014-09-10 13:21:01 -0500 | [diff] [blame] | 239 | #define audio_extn_extspk_set_voice_vol(extn, vol) 0 |
Eric Laurent | da46bfb | 2014-08-25 22:39:29 -0500 | [diff] [blame] | 240 | #else |
| 241 | void *audio_extn_extspk_init(struct audio_device *adev); |
| 242 | void audio_extn_extspk_deinit(void *extn); |
| 243 | void audio_extn_extspk_update(void* extn); |
| 244 | void audio_extn_extspk_set_mode(void* extn, audio_mode_t mode); |
Eric Laurent | 321b96d | 2014-09-10 13:21:01 -0500 | [diff] [blame] | 245 | void audio_extn_extspk_set_voice_vol(void* extn, float vol); |
Eric Laurent | da46bfb | 2014-08-25 22:39:29 -0500 | [diff] [blame] | 246 | #endif |
| 247 | |
Vimal Puthanveed | 37b4a1c | 2014-01-07 16:47:47 -0800 | [diff] [blame] | 248 | #ifndef HFP_ENABLED |
| 249 | #define audio_extn_hfp_is_active(adev) (0) |
Divya Narayanan Poojary | bd9f33f | 2014-09-17 17:35:59 +0530 | [diff] [blame] | 250 | #define audio_extn_hfp_get_usecase() (-1) |
Vimal Puthanveed | 37b4a1c | 2014-01-07 16:47:47 -0800 | [diff] [blame] | 251 | #else |
| 252 | bool audio_extn_hfp_is_active(struct audio_device *adev); |
Vimal Puthanveed | 739e715 | 2014-01-23 15:56:53 -0800 | [diff] [blame] | 253 | audio_usecase_t audio_extn_hfp_get_usecase(); |
Vimal Puthanveed | 37b4a1c | 2014-01-07 16:47:47 -0800 | [diff] [blame] | 254 | #endif |
| 255 | |
Vimal Puthanveed | 8fa9eab | 2014-01-07 16:47:47 -0800 | [diff] [blame] | 256 | #ifndef HFP_ENABLED |
| 257 | #define audio_extn_hfp_is_active(adev) (0) |
| 258 | #else |
| 259 | bool audio_extn_hfp_is_active(struct audio_device *adev); |
| 260 | #endif |
| 261 | |
Ravi Kumar Alamanda | d995c59 | 2015-09-23 13:47:03 -0700 | [diff] [blame] | 262 | #ifndef KPI_OPTIMIZE_ENABLED |
| 263 | #define audio_extn_perf_lock_init() (0) |
| 264 | #define audio_extn_perf_lock_acquire() (0) |
| 265 | #define audio_extn_perf_lock_release() (0) |
| 266 | #else |
| 267 | int audio_extn_perf_lock_init(void); |
| 268 | void audio_extn_perf_lock_acquire(void); |
| 269 | void audio_extn_perf_lock_release(void); |
| 270 | #endif /* KPI_OPTIMIZE_ENABLED */ |
Apoorv Raghuvanshi | 9eaf94e | 2013-10-04 16:13:44 -0700 | [diff] [blame] | 271 | #endif /* AUDIO_EXTN_H */ |