18e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda/* 28e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * Copyright (C) 2014 The Android Open Source Project 38e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * 48e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * Licensed under the Apache License, Version 2.0 (the "License"); 58e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * you may not use this file except in compliance with the License. 68e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * You may obtain a copy of the License at 78e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * 88e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * http://www.apache.org/licenses/LICENSE-2.0 98e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * 108e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * Unless required by applicable law or agreed to in writing, software 118e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * distributed under the License is distributed on an "AS IS" BASIS, 128e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * See the License for the specific language governing permissions and 148e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda * limitations under the License. 158e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda */ 168e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 178e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#ifndef AUDIO_EXTN_H 188e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#define AUDIO_EXTN_H 198e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 208e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#include <cutils/str_parms.h> 218e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 22de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#define HW_INFO_ARRAY_MAX_SIZE 32 23de4849cee04a23ae84da96487e344f75f93e5585vivek mehta 24de4849cee04a23ae84da96487e344f75f93e5585vivek mehtastruct snd_card_split { 25de4849cee04a23ae84da96487e344f75f93e5585vivek mehta char device[HW_INFO_ARRAY_MAX_SIZE]; 26de4849cee04a23ae84da96487e344f75f93e5585vivek mehta char snd_card[HW_INFO_ARRAY_MAX_SIZE]; 27de4849cee04a23ae84da96487e344f75f93e5585vivek mehta char form_factor[HW_INFO_ARRAY_MAX_SIZE]; 28de4849cee04a23ae84da96487e344f75f93e5585vivek mehta}; 29de4849cee04a23ae84da96487e344f75f93e5585vivek mehta 300499d4fc40cafb9fbb0e8eace1657cfaf79c5699Eric Laurentvoid *audio_extn_extspk_init(struct audio_device *adev); 310499d4fc40cafb9fbb0e8eace1657cfaf79c5699Eric Laurentvoid audio_extn_extspk_deinit(void *extn); 320499d4fc40cafb9fbb0e8eace1657cfaf79c5699Eric Laurentvoid audio_extn_extspk_update(void* extn); 330499d4fc40cafb9fbb0e8eace1657cfaf79c5699Eric Laurentvoid audio_extn_extspk_set_mode(void* extn, audio_mode_t mode); 344cc4ce1a92a47fa1d98c884a33e5e93d3d468b15Eric Laurentvoid audio_extn_extspk_set_voice_vol(void* extn, float vol); 35de4849cee04a23ae84da96487e344f75f93e5585vivek mehtastruct snd_card_split *audio_extn_get_snd_card_split(); 36de4849cee04a23ae84da96487e344f75f93e5585vivek mehtavoid audio_extn_set_snd_card_split(const char* in_snd_card_name); 370499d4fc40cafb9fbb0e8eace1657cfaf79c5699Eric Laurent 3863863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#ifndef SPKR_PROT_ENABLED 3963863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_spkr_prot_init(adev) (0) 4063863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_spkr_prot_start_processing(snd_device) (-EINVAL) 4163863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_spkr_prot_calib_cancel(adev) (0) 4263863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_spkr_prot_stop_processing(snd_device) (0) 4363863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_spkr_prot_is_enabled() (false) 4463863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#define audio_extn_get_spkr_prot_snd_device(snd_device) (snd_device) 4563863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#else 4663863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandavoid audio_extn_spkr_prot_init(void *adev); 4763863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandaint audio_extn_spkr_prot_start_processing(snd_device_t snd_device); 4863863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandavoid audio_extn_spkr_prot_stop_processing(snd_device_t snd_device); 4963863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandabool audio_extn_spkr_prot_is_enabled(); 5063863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandaint audio_extn_get_spkr_prot_snd_device(snd_device_t snd_device); 5163863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamandavoid audio_extn_spkr_prot_calib_cancel(void *adev); 5263863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda#endif 5363863001b659b66a367800c39f4a016ec5d544d7Ravi Kumar Alamanda 548e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#ifndef HFP_ENABLED 558e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#define audio_extn_hfp_is_active(adev) (0) 568e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#define audio_extn_hfp_get_usecase() (-1) 578e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#define audio_extn_hfp_set_parameters(adev, params) (0) 5813f26e89c56b41371c69a9a2f59f6ff95f6bab93Alain Vongsouvanh#define audio_extn_hfp_set_mic_mute(adev, state) (0) 5913f26e89c56b41371c69a9a2f59f6ff95f6bab93Alain Vongsouvanh 608e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#else 618e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamandabool audio_extn_hfp_is_active(struct audio_device *adev); 628e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 638e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamandaaudio_usecase_t audio_extn_hfp_get_usecase(); 648e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 658e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamandavoid audio_extn_hfp_set_parameters(struct audio_device *adev, 668e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda struct str_parms *parms); 6713f26e89c56b41371c69a9a2f59f6ff95f6bab93Alain Vongsouvanhint audio_extn_hfp_set_mic_mute(struct audio_device *adev, bool state); 6813f26e89c56b41371c69a9a2f59f6ff95f6bab93Alain Vongsouvanh 698e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#endif 708e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda 71ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#ifndef USB_TUNNEL_ENABLED 72ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_init(adev) (0) 73ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_deinit() (0) 74ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_add_device(device, card) (0) 75ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_remove_device(device, card) (0) 76ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_is_config_supported(bit_width, sample_rate, ch, pb) (false) 77ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_enable_sidetone(device, enable) (0) 78ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_set_sidetone_gain(parms, value, len) (0) 79ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#define audio_extn_usb_is_capture_supported() (false) 80569b7486d9263f62d85a8bdb48340ff7f8d33089Haynes Mathew George#define audio_extn_usb_get_max_channels(dir) (0) 81569b7486d9263f62d85a8bdb48340ff7f8d33089Haynes Mathew George#define audio_extn_usb_get_max_bit_width(dir) (0) 821885941a7ff85a1ec90214007d13b026a0920149Andy Hung#define audio_extn_usb_sup_sample_rates(t, s, l) ((t), (s), (l), 0) /* fix unused warn */ 83f9f241e45e5a76458e5f5596bca495317981ca3aKevin Rocard#define audio_extn_usb_alive(adev) (false) 8465f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George#define audio_extn_usb_find_service_interval(m, p) ((m), (p), 0) /* fix unused warn */ 8565f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George#define audio_extn_usb_altset_for_service_interval(p, si, bw, sr, ch) (-1) 86ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#else 87ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linvoid audio_extn_usb_init(void *adev); 88ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linvoid audio_extn_usb_deinit(); 89ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linvoid audio_extn_usb_add_device(audio_devices_t device, int card); 90ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linvoid audio_extn_usb_remove_device(audio_devices_t device, int card); 91ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linbool audio_extn_usb_is_config_supported(unsigned int *bit_width, 92ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin unsigned int *sample_rate, 93ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin unsigned int *ch, 94ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin bool is_playback); 95ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linint audio_extn_usb_enable_sidetone(int device, bool enable); 96ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linint audio_extn_usb_set_sidetone_gain(struct str_parms *parms, 97ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin char *value, int len); 98ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Linbool audio_extn_usb_is_capture_supported(); 99569b7486d9263f62d85a8bdb48340ff7f8d33089Haynes Mathew Georgeint audio_extn_usb_get_max_channels(bool is_playback); 100569b7486d9263f62d85a8bdb48340ff7f8d33089Haynes Mathew Georgeint audio_extn_usb_get_max_bit_width(bool is_playback); 101569b7486d9263f62d85a8bdb48340ff7f8d33089Haynes Mathew Georgeint audio_extn_usb_sup_sample_rates(bool is_playback, uint32_t *sr, uint32_t l); 102f9f241e45e5a76458e5f5596bca495317981ca3aKevin Rocardbool audio_extn_usb_alive(int card); 10365f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew Georgeunsigned long audio_extn_usb_find_service_interval(bool min, bool playback); 10465f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew Georgeint audio_extn_usb_altset_for_service_interval(bool is_playback, 10565f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George unsigned long service_interval, 10665f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George uint32_t *bit_width, 10765f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George uint32_t *sample_rate, 10865f6b437dbc2f79b5450ebb283477ae994b0cc26Haynes Mathew George uint32_t *channel_count); 109ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin#endif 110ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin 111ee3fe40f7a48fa0abe8aef40a2abe83777468ebaDavid Lin 112a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#ifndef SOUND_TRIGGER_ENABLED 113a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_init(adev) (0) 114a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_deinit(adev) (0) 115a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_update_device_status(snd_dev, event) (0) 1164ee6e3e833b999c2552abb7af8bf58b27099a256Mikhail Naganov#define audio_extn_sound_trigger_update_stream_status(uc_info, event) (0) 117a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_set_parameters(adev, parms) (0) 118a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_check_and_get_session(in) (0) 119a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_stop_lab(in) (0) 120a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#define audio_extn_sound_trigger_read(in, buffer, bytes) (0) 121a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda 122a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#else 123a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda 124a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandaenum st_event_type { 125a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda ST_EVENT_SND_DEVICE_FREE, 126a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda ST_EVENT_SND_DEVICE_BUSY, 127a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda ST_EVENT_STREAM_FREE, 128a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda ST_EVENT_STREAM_BUSY 129a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda}; 130a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandatypedef enum st_event_type st_event_type_t; 131a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda 132a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandaint audio_extn_sound_trigger_init(struct audio_device *adev); 133a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandavoid audio_extn_sound_trigger_deinit(struct audio_device *adev); 134a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandavoid audio_extn_sound_trigger_update_device_status(snd_device_t snd_device, 135a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda st_event_type_t event); 1364ee6e3e833b999c2552abb7af8bf58b27099a256Mikhail Naganovvoid audio_extn_sound_trigger_update_stream_status(struct audio_usecase *uc_info, 1374ee6e3e833b999c2552abb7af8bf58b27099a256Mikhail Naganov st_event_type_t event); 138a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandavoid audio_extn_sound_trigger_set_parameters(struct audio_device *adev, 139a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda struct str_parms *parms); 140a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandavoid audio_extn_sound_trigger_check_and_get_session(struct stream_in *in); 141a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandavoid audio_extn_sound_trigger_stop_lab(struct stream_in *in); 142a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamandaint audio_extn_sound_trigger_read(struct stream_in *in, void *buffer, 143a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda size_t bytes); 144a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda#endif 145a417cc5300f03dde12a2afd2f1f43509e5e62fafRavi Kumar Alamanda 14626483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#ifndef A2DP_OFFLOAD_ENABLED 14726483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_init(adev) (0) 14826483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_start_playback() (0) 14926483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_stop_playback() (0) 150d6834efdb15bc9a589a5bebcdbb4e337cf6920d6Aniket Kumar Lata#define audio_extn_a2dp_set_parameters(parms, reconfig) (0) 151d6834efdb15bc9a589a5bebcdbb4e337cf6920d6Aniket Kumar Lata#define audio_extn_a2dp_get_parameters(query, reply) (0) 15226483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_is_force_device_switch() (0) 15326483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_set_handoff_mode(is_on) (0) 15426483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_get_sample_rate(sample_rate) (0) 15526483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_get_encoder_latency() (0) 15626483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_is_ready() (0) 15726483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#define audio_extn_a2dp_is_suspended() (0) 15826483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#else 15926483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latavoid audio_extn_a2dp_init(void *adev); 16026483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lataint audio_extn_a2dp_start_playback(); 16126483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lataint audio_extn_a2dp_stop_playback(); 162d6834efdb15bc9a589a5bebcdbb4e337cf6920d6Aniket Kumar Lataint audio_extn_a2dp_set_parameters(struct str_parms *parms, bool *reconfig); 163d6834efdb15bc9a589a5bebcdbb4e337cf6920d6Aniket Kumar Lataint audio_extn_a2dp_get_parameters(struct str_parms *query, 164d6834efdb15bc9a589a5bebcdbb4e337cf6920d6Aniket Kumar Lata struct str_parms *reply); 16526483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latabool audio_extn_a2dp_is_force_device_switch(); 16626483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latavoid audio_extn_a2dp_set_handoff_mode(bool is_on); 16726483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latavoid audio_extn_a2dp_get_sample_rate(int *sample_rate); 16826483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latauint32_t audio_extn_a2dp_get_encoder_latency(); 16926483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latabool audio_extn_a2dp_is_ready(); 17026483017c151b5de3f36e23307816037264d22e6Aniket Kumar Latabool audio_extn_a2dp_is_suspended(); 17126483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata#endif 17226483017c151b5de3f36e23307816037264d22e6Aniket Kumar Lata 1734211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin#ifndef DSM_FEEDBACK_ENABLED 1744211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin#define audio_extn_dsm_feedback_enable(adev, snd_device, benable) (0) 1754211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin#else 1764211fad32ff21574a3935dbe28397c55a1895649zhaoyang yinvoid audio_extn_dsm_feedback_enable(struct audio_device *adev, 1774211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin snd_device_t snd_device, 1784211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin bool benable); 1794211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin#endif 1804211fad32ff21574a3935dbe28397c55a1895649zhaoyang yin 181e3b9956373beb54b67957675b6e6d99fd3280edaYamit Mehtavoid audio_extn_utils_send_default_app_type_cfg(void *platform, struct mixer *mixer); 182e3b9956373beb54b67957675b6e6d99fd3280edaYamit Mehtaint audio_extn_utils_send_app_type_cfg(struct audio_device *adev, 183e3b9956373beb54b67957675b6e6d99fd3280edaYamit Mehta struct audio_usecase *usecase); 184e5ff0fc8e7126cdd2535641e9463ee8065b6149eHaynes Mathew Georgevoid audio_extn_utils_send_audio_calibration(struct audio_device *adev, 185e5ff0fc8e7126cdd2535641e9463ee8065b6149eHaynes Mathew George struct audio_usecase *usecase); 1864a824779a3f91eea626ab015975ede392f84ec38vivek mehtaint audio_extn_utils_send_app_type_gain(struct audio_device *adev, 1874a824779a3f91eea626ab015975ede392f84ec38vivek mehta int app_type, 1884a824779a3f91eea626ab015975ede392f84ec38vivek mehta int *gain); 1897631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamanda#ifndef HWDEP_CAL_ENABLED 1907631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamanda#define audio_extn_hwdep_cal_send(snd_card, acdb_handle) (0) 1917631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamanda#else 1927631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamandavoid audio_extn_hwdep_cal_send(int snd_card, void *acdb_handle); 1937631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamanda#endif 1947631557cda5515b07b06dd0def53e5813f2442f3Ravi Kumar Alamanda 195533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#ifndef KPI_OPTIMIZE_ENABLED 196533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#define audio_extn_perf_lock_init() (0) 197533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#define audio_extn_perf_lock_acquire() (0) 198533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#define audio_extn_perf_lock_release() (0) 199533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#else 200533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamandaint audio_extn_perf_lock_init(void); 201533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamandavoid audio_extn_perf_lock_acquire(void); 202533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamandavoid audio_extn_perf_lock_release(void); 203533bb72620933eddd232d41e171ab70ea0807e34Ravi Kumar Alamanda#endif /* KPI_OPTIMIZE_ENABLED */ 204de4849cee04a23ae84da96487e344f75f93e5585vivek mehta 205de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#ifndef HW_VARIANTS_ENABLED 206de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#define hw_info_init(snd_card_name) (0) 207de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#define hw_info_deinit(hw_info) (0) 208de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#define hw_info_append_hw_type(hw_info,\ 209de4849cee04a23ae84da96487e344f75f93e5585vivek mehta snd_device, device_name) (0) 210de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#else 211de4849cee04a23ae84da96487e344f75f93e5585vivek mehtavoid *hw_info_init(const char *snd_card_name); 212de4849cee04a23ae84da96487e344f75f93e5585vivek mehtavoid hw_info_deinit(void *hw_info); 213de4849cee04a23ae84da96487e344f75f93e5585vivek mehtavoid hw_info_append_hw_type(void *hw_info, snd_device_t snd_device, 214de4849cee04a23ae84da96487e344f75f93e5585vivek mehta char *device_name); 215de4849cee04a23ae84da96487e344f75f93e5585vivek mehta#endif /* HW_VARIANTS_ENABLED */ 216c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George 217c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew Georgetypedef void (* snd_mon_cb)(void * stream, struct str_parms * parms); 218c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#ifndef SND_MONITOR_ENABLED 219c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#define audio_extn_snd_mon_init() (0) 220c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#define audio_extn_snd_mon_deinit() (0) 221c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#define audio_extn_snd_mon_register_listener(stream, cb) (0) 222c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#define audio_extn_snd_mon_unregister_listener(stream) (0) 223c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#else 224c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew Georgeint audio_extn_snd_mon_init(); 225c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew Georgeint audio_extn_snd_mon_deinit(); 226c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew Georgeint audio_extn_snd_mon_register_listener(void *stream, snd_mon_cb cb); 227c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew Georgeint audio_extn_snd_mon_unregister_listener(void *stream); 228c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George#endif 229c735fb07458a06b7f4dc702607b3cb722a78c9f7Haynes Mathew George 2300fb113194399805a0fdbf5bb3f812e98047272bdvivek mehtabool audio_extn_utils_resolve_config_file(char[]); 23166ff30c81a8c561db01217297f849614a9599533Haynes Mathew Georgeint audio_extn_utils_get_platform_info(const char* snd_card_name, 23266ff30c81a8c561db01217297f849614a9599533Haynes Mathew George char* platform_info_file); 2330fb113194399805a0fdbf5bb3f812e98047272bdvivek mehtaint audio_extn_utils_get_snd_card_num(); 2348e6e98fc5af6d6f79bc71eb37df470380ae82fadRavi Kumar Alamanda#endif /* AUDIO_EXTN_H */ 235