1/* 2 * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. 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 VOICE_EXTN_H 21#define VOICE_EXTN_H 22 23#ifdef MULTI_VOICE_SESSION_ENABLED 24int voice_extn_start_call(struct audio_device *adev); 25int voice_extn_stop_call(struct audio_device *adev); 26int voice_extn_get_session_from_use_case(struct audio_device *adev, 27 const audio_usecase_t usecase_id, 28 struct voice_session **session); 29void voice_extn_init(struct audio_device *adev); 30int voice_extn_set_parameters(struct audio_device *adev, 31 struct str_parms *parms); 32void voice_extn_get_parameters(const struct audio_device *adev, 33 struct str_parms *query, 34 struct str_parms *reply); 35int voice_extn_is_in_call_rec_stream(struct stream_in *in, bool *in_call_rec); 36int voice_extn_is_call_state_active(struct audio_device *adev, 37 bool *is_call_active); 38int voice_extn_get_active_session_id(struct audio_device *adev, 39 uint32_t *session_id); 40void voice_extn_in_get_parameters(struct stream_in *in, 41 struct str_parms *query, 42 struct str_parms *reply); 43void voice_extn_out_get_parameters(struct stream_out *out, 44 struct str_parms *query, 45 struct str_parms *reply); 46#else 47static int voice_extn_start_call(struct audio_device *adev __unused) 48{ 49 return -ENOSYS; 50} 51 52static int voice_extn_stop_call(struct audio_device *adev __unused) 53{ 54 return -ENOSYS; 55} 56 57static int voice_extn_get_session_from_use_case(struct audio_device *adev __unused, 58 const audio_usecase_t usecase_id __unused, 59 struct voice_session **session __unused) 60{ 61 return -ENOSYS; 62} 63 64static void voice_extn_init(struct audio_device *adev __unused) 65{ 66} 67 68static int voice_extn_set_parameters(struct audio_device *adev __unused, 69 struct str_parms *parms __unused) 70{ 71 return -ENOSYS; 72} 73 74static void voice_extn_get_parameters(const struct audio_device *adev __unused, 75 struct str_parms *query __unused, 76 struct str_parms *reply __unused) 77{ 78} 79 80static int voice_extn_is_call_state_active(struct audio_device *adev __unused, 81 bool *is_call_active __unused) 82{ 83 return -ENOSYS; 84} 85 86static int voice_extn_is_in_call_rec_stream(struct stream_in *in __unused, bool *in_call_rec __unused) 87{ 88 return -ENOSYS; 89} 90 91static int voice_extn_get_active_session_id(struct audio_device *adev __unused, 92 uint32_t *session_id __unused) 93{ 94 return -ENOSYS; 95} 96 97static void voice_extn_in_get_parameters(struct stream_in *in __unused, 98 struct str_parms *query __unused, 99 struct str_parms *reply __unused) 100{ 101} 102 103static void voice_extn_out_get_parameters(struct stream_out *out __unused, 104 struct str_parms *query __unused, 105 struct str_parms *reply __unused) 106{ 107} 108#endif 109 110#ifdef INCALL_MUSIC_ENABLED 111int voice_extn_check_and_set_incall_music_usecase(struct audio_device *adev, 112 struct stream_out *out); 113#else 114static int voice_extn_check_and_set_incall_music_usecase(struct audio_device *adev __unused, 115 struct stream_out *out __unused) 116{ 117 return -ENOSYS; 118} 119#endif 120 121#ifdef COMPRESS_VOIP_ENABLED 122int voice_extn_compress_voip_close_output_stream(struct audio_stream *stream); 123int voice_extn_compress_voip_open_output_stream(struct stream_out *out); 124 125int voice_extn_compress_voip_close_input_stream(struct audio_stream *stream); 126int voice_extn_compress_voip_open_input_stream(struct stream_in *in); 127 128int voice_extn_compress_voip_out_get_buffer_size(struct stream_out *out); 129int voice_extn_compress_voip_in_get_buffer_size(struct stream_in *in); 130 131int voice_extn_compress_voip_start_input_stream(struct stream_in *in); 132int voice_extn_compress_voip_start_output_stream(struct stream_out *out); 133 134int voice_extn_compress_voip_set_mic_mute(struct audio_device *dev, bool state); 135int voice_extn_compress_voip_set_volume(struct audio_device *adev, float volume); 136int voice_extn_compress_voip_select_devices(struct audio_device *adev, 137 snd_device_t *out_snd_device, 138 snd_device_t *in_snd_device); 139int voice_extn_compress_voip_set_parameters(struct audio_device *adev, 140 struct str_parms *parms); 141void voice_extn_compress_voip_get_parameters(struct str_parms *query, 142 struct str_parms *reply); 143 144void voice_extn_compress_voip_out_get_parameters(struct stream_out *out, 145 struct str_parms *query, 146 struct str_parms *reply); 147void voice_extn_compress_voip_in_get_parameters(struct stream_in *in, 148 struct str_parms *query, 149 struct str_parms *reply); 150bool voice_extn_compress_voip_pcm_prop_check(); 151bool voice_extn_compress_voip_is_active(struct audio_device *adev); 152bool voice_extn_compress_voip_is_format_supported(audio_format_t format); 153bool voice_extn_compress_voip_is_config_supported(struct audio_config *config); 154#else 155static int voice_extn_compress_voip_close_output_stream(struct audio_stream *stream __unused) 156{ 157 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 158 return -ENOSYS; 159} 160 161static int voice_extn_compress_voip_open_output_stream(struct stream_out *out __unused) 162{ 163 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 164 return -ENOSYS; 165} 166 167static int voice_extn_compress_voip_close_input_stream(struct audio_stream *stream __unused) 168{ 169 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 170 return -ENOSYS; 171} 172 173static int voice_extn_compress_voip_open_input_stream(struct stream_in *in __unused) 174{ 175 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 176 return -ENOSYS; 177} 178 179static int voice_extn_compress_voip_out_get_buffer_size(struct stream_out *stream __unused) 180{ 181 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 182 return -ENOSYS; 183} 184 185static int voice_extn_compress_voip_in_get_buffer_size(struct stream_in *in __unused) 186{ 187 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 188 return -ENOSYS; 189} 190 191static int voice_extn_compress_voip_start_input_stream(struct stream_in *in __unused) 192{ 193 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 194 return -ENOSYS; 195} 196 197static int voice_extn_compress_voip_start_output_stream(struct stream_out *out __unused) 198{ 199 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 200 return -ENOSYS; 201} 202 203static int voice_extn_compress_voip_set_mic_mute(struct audio_device *adev, bool state __unused) 204{ 205 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 206 return 0; 207} 208 209static int voice_extn_compress_voip_set_volume(struct audio_device *adev __unused, float volume __unused) 210{ 211 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 212 return 0; 213} 214 215static int voice_extn_compress_voip_select_devices(struct audio_device *adev __unused, 216 snd_device_t *out_snd_device __unused, 217 snd_device_t *in_snd_device __unused) 218{ 219 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 220 return -ENOSYS; 221} 222 223static int voice_extn_compress_voip_set_parameters(struct audio_device *adev __unused, 224 struct str_parms *parms __unused) 225{ 226 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 227 return -ENOSYS; 228} 229 230static void voice_extn_compress_voip_get_parameters(struct str_parms *query __unused, 231 struct str_parms *reply __unused) 232{ 233 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 234} 235 236static void voice_extn_compress_voip_out_get_parameters(struct stream_out *out __unused, 237 struct str_parms *query __unused, 238 struct str_parms *reply __unused) 239{ 240 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 241} 242 243static void voice_extn_compress_voip_in_get_parameters(struct stream_in *in __unused, 244 struct str_parms *query __unused, 245 struct str_parms *reply __unused) 246{ 247 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 248} 249 250static bool voice_extn_compress_voip_pcm_prop_check() 251{ 252 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 253 return false; 254} 255 256static bool voice_extn_compress_voip_is_active(struct audio_device *adev __unused) 257{ 258 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 259 return false; 260} 261 262static bool voice_extn_compress_voip_is_format_supported(audio_format_t format __unused) 263{ 264 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 265 return true; 266} 267 268static bool voice_extn_compress_voip_is_config_supported(struct audio_config *config __unused) 269{ 270 ALOGE("%s: COMPRESS_VOIP_ENABLED is not defined", __func__); 271 return true; 272} 273#endif 274 275#endif //VOICE_EXTN_H 276