Home | History | Annotate | Download | only in hal

Lines Matching full:adev

41 static struct voice_session *voice_get_session_from_use_case(struct audio_device *adev,
47 ret = voice_extn_get_session_from_use_case(adev, usecase_id, &session);
49 session = &adev->voice.session[VOICE_SESS_IDX];
55 int voice_stop_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
63 session = (struct voice_session *)voice_get_session_from_use_case(adev, usecase_id);
66 ret = platform_stop_voice_call(adev->platform, session->vsid);
78 uc_info = get_usecase_from_list(adev, usecase_id);
86 disable_audio_route(adev, uc_info);
89 disable_snd_device(adev, uc_info->out_snd_device);
90 disable_snd_device(adev, uc_info->in_snd_device);
99 int voice_start_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
109 session = (struct voice_session *)voice_get_session_from_use_case(adev, usecase_id);
113 uc_info->stream.out = adev->current_call_output ;
114 uc_info->devices = adev->current_call_output ->devices;
118 list_add_tail(&adev->usecase_list, &uc_info->list);
120 select_devices(adev, usecase_id);
133 __func__, adev->snd_card, pcm_dev_rx_id);
134 session->pcm_rx = pcm_open(adev->snd_card,
144 __func__, adev->snd_card, pcm_dev_tx_id);
145 session->pcm_tx = pcm_open(adev->snd_card,
156 voice_set_volume(adev, adev->voice.volume);
158 ret = platform_start_voice_call(adev->platform, session->vsid);
168 voice_stop_usecase(adev, usecase_id);
175 bool voice_is_call_state_active(struct audio_device *adev)
180 ret = voice_extn_is_call_state_active(adev, &call_state);
182 call_state = (adev->voice.session[VOICE_SESS_IDX].state.current == CALL_ACTIVE) ? true : false;
188 bool voice_is_in_call(struct audio_device *adev)
190 return adev->voice.in_call;
206 uint32_t voice_get_active_session_id(struct audio_device *adev)
211 ret = voice_extn_get_active_session_id(adev, &session_id);
218 int voice_check_and_set_incall_rec_usecase(struct audio_device *adev,
226 if (voice_is_call_state_active(adev)) {
246 session_id = voice_get_active_session_id(adev);
247 ret = platform_set_incall_recording_session_id(adev->platform,
257 int voice_check_and_stop_incall_rec_usecase(struct audio_device *adev,
265 ret = platform_stop_incall_recording_usecase(adev->platform);
272 int voice_check_and_set_incall_music_usecase(struct audio_device *adev,
277 ret = voice_extn_check_and_set_incall_music_usecase(adev, out);
286 int voice_set_mic_mute(struct audio_device *adev, bool state)
290 adev->voice.mic_mute = state;
291 if (adev->mode == AUDIO_MODE_IN_CALL)
292 err = platform_set_mic_mute(adev->platform, state);
297 bool voice_get_mic_mute(struct audio_device *adev)
299 return adev->voice.mic_mute;
302 int voice_set_volume(struct audio_device *adev, float volume)
306 adev->voice.volume = volume;
307 if (adev->mode == AUDIO_MODE_IN_CALL) {
321 err = platform_set_voice_volume(adev->platform, vol);
327 int voice_start_call(struct audio_device *adev)
331 adev->voice.in_call = true;
333 voice_set_mic_mute(adev, adev->voice.mic_mute);
335 ret = voice_extn_start_call(adev);
337 ret = voice_start_usecase(adev, USECASE_VOICE_CALL);
343 int voice_stop_call(struct audio_device *adev)
347 adev->voice.in_call = false;
348 ret = voice_extn_stop_call(adev);
350 ret = voice_stop_usecase(adev, USECASE_VOICE_CALL);
356 void voice_get_parameters(struct audio_device *adev,
360 voice_extn_get_parameters(adev, query, reply);
363 int voice_set_parameters(struct audio_device *adev, struct str_parms *parms)
373 ret = voice_extn_set_parameters(adev, parms);
399 if (tty_mode != adev->voice.tty_mode) {
400 adev->voice.tty_mode = tty_mode;
401 adev->acdb_settings = (adev->acdb_settings & TTY_MODE_CLEAR) | tty_mode;
402 if (voice_is_call_state_active(adev))
403 voice_update_devices_for_all_voice_usecases(adev);
415 if (hac != adev->voice.hac) {
416 adev->voice.hac = hac;
417 if (voice_is_in_call(adev))
418 voice_update_devices_for_all_voice_usecases(adev);
427 platform_start_incall_music_usecase(adev->platform);
429 platform_stop_incall_music_usecase(adev->platform);
438 void voice_init(struct audio_device *adev)
442 memset(&adev->voice, 0, sizeof(adev->voice));
443 adev->voice.tty_mode = TTY_MODE_OFF;
444 adev->voice.hac = false;
445 adev->voice.volume = 1.0f;
446 adev->voice.mic_mute = false;
447 adev->voice.in_call = false;
449 adev->voice.session[i].pcm_rx = NULL;
450 adev->voice.session[i].pcm_tx = NULL;
451 adev->voice.session[i].state.current = CALL_INACTIVE;
452 adev->voice.session[i].state.new = CALL_INACTIVE;
453 adev->voice.session[i].vsid = VOICE_VSID;
456 voice_extn_init(adev);
459 void voice_update_devices_for_all_voice_usecases(struct audio_device *adev)
464 list_for_each(node, &adev->usecase_list) {
469 usecase->stream.out = adev->current_call_output;
470 select_devices(adev, usecase->id);