Lines Matching full:usecase
263 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD)
462 struct audio_usecase *usecase)
467 if (usecase == NULL)
470 ALOGV("%s: enter: usecase(%d)", __func__, usecase->id);
472 if (usecase->type == PCM_CAPTURE)
473 snd_device = usecase->in_snd_device;
475 snd_device = usecase->out_snd_device;
477 strcpy(mixer_path, use_case_table[usecase->id]);
479 ALOGD("%s: usecase(%d) apply and update mixer path: %s", __func__, usecase->id, mixer_path);
487 struct audio_usecase *usecase)
492 if (usecase == NULL)
495 ALOGV("%s: enter: usecase(%d)", __func__, usecase->id);
496 if (usecase->type == PCM_CAPTURE)
497 snd_device = usecase->in_snd_device;
499 snd_device = usecase->out_snd_device;
500 strcpy(mixer_path, use_case_table[usecase->id]);
502 ALOGD("%s: usecase(%d) reset and update mixer path: %s", __func__, usecase->id, mixer_path);
620 struct audio_usecase *usecase;
635 specified usecase */
640 usecase = node_to_item(node, struct audio_usecase, list);
641 if (usecase->type != PCM_CAPTURE &&
642 usecase != uc_info &&
643 usecase->out_snd_device != snd_device &&
644 usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND &&
645 platform_check_backends_match(snd_device, usecase->out_snd_device)) {
646 ALOGV("%s: Usecase (%s) is active on (%s) - disabling ..",
647 __func__, use_case_table[usecase->id],
648 platform_get_snd_device_name(usecase->out_snd_device));
649 disable_audio_route(adev, usecase);
650 switch_device[usecase->id] = true;
657 usecase = node_to_item(node, struct audio_usecase, list);
658 if (switch_device[usecase->id]) {
659 disable_snd_device(adev, usecase->out_snd_device);
664 usecase = node_to_item(node, struct audio_usecase, list);
665 if (switch_device[usecase->id]) {
671 specified usecase to new snd devices */
673 usecase = node_to_item(node, struct audio_usecase, list);
675 if (switch_device[usecase->id] ) {
676 usecase->out_snd_device = snd_device;
677 enable_audio_route(adev, usecase);
688 struct audio_usecase *usecase;
700 * usecase is also switched to earpiece i.e. voice-dmic-ef,
708 usecase = node_to_item(node, struct audio_usecase, list);
709 if (usecase->type != PCM_PLAYBACK &&
710 usecase != uc_info &&
711 usecase->in_snd_device != snd_device &&
712 (usecase->id != USECASE_AUDIO_SPKR_CALIB_TX)) {
713 ALOGV("%s: Usecase (%s) is active on (%s) - disabling ..",
714 __func__, use_case_table[usecase->id],
715 platform_get_snd_device_name(usecase->in_snd_device));
716 disable_audio_route(adev, usecase);
717 switch_device[usecase->id] = true;
724 usecase = node_to_item(node, struct audio_usecase, list);
725 if (switch_device[usecase->id]) {
726 disable_snd_device(adev, usecase->in_snd_device);
731 usecase = node_to_item(node, struct audio_usecase, list);
732 if (switch_device[usecase->id]) {
738 specified usecase to new snd devices */
740 usecase = node_to_item(node, struct audio_usecase, list);
742 if (switch_device[usecase->id] ) {
743 usecase->in_snd_device = snd_device;
744 enable_audio_route(adev, usecase);
780 struct audio_usecase *usecase;
784 usecase = node_to_item(node, struct audio_usecase, list);
785 if (usecase->type == VOICE_CALL) {
786 ALOGV("%s: usecase id %d", __func__, usecase->id);
787 return usecase->id;
796 struct audio_usecase *usecase;
800 usecase = node_to_item(node, struct audio_usecase, list);
801 if (usecase->id == uc_id)
802 return usecase;
812 struct audio_usecase *usecase = NULL;
819 usecase = get_usecase_from_list(adev, uc_id);
820 if (usecase == NULL) {
821 ALOGE("%s: Could not find the usecase(%d)", __func__, uc_id);
825 if ((usecase->type == VOICE_CALL) ||
826 (usecase->type == PCM_HFP_CALL)) {
828 usecase->stream.out->devices);
829 in_snd_device = platform_get_input_snd_device(adev->platform, usecase->stream.out->devices);
830 usecase->devices = usecase->stream.out->devices;
833 * If the voice call is active, use the sound devices of voice call usecase
836 * usecase. This is to avoid switching devices for voice call when
844 (usecase->devices == AUDIO_DEVICE_IN_VOICE_CALL))) {
856 if (usecase->type == PCM_PLAYBACK) {
857 usecase->devices = usecase->stream.out->devices;
861 usecase->stream.out->devices);
862 if (usecase->stream.out == adev->primary_output &&
866 out_snd_device != usecase->out_snd_device) {
867 select_devices(adev, adev->active_input->usecase);
870 } else if (usecase->type == PCM_CAPTURE) {
871 usecase->devices = usecase->stream.in->device;
879 if (usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) {
890 if (out_snd_device == usecase->out_snd_device &&
891 in_snd_device == usecase->in_snd_device) {
931 if ((usecase->type == VOICE_CALL) &&
932 (usecase->in_snd_device != SND_DEVICE_NONE) &&
933 (usecase->out_snd_device != SND_DEVICE_NONE)) {
937 voice_set_sidetone(adev, usecase->out_snd_device, false);
941 if (usecase->out_snd_device != SND_DEVICE_NONE) {
942 disable_audio_route(adev, usecase);
943 disable_snd_device(adev, usecase->out_snd_device);
946 if (usecase->in_snd_device != SND_DEVICE_NONE) {
947 disable_audio_route(adev, usecase);
948 disable_snd_device(adev, usecase->in_snd_device);
955 if ((usecase->type == VOICE_CALL) &&
956 (usecase->in_snd_device != SND_DEVICE_NONE) &&
957 (usecase->out_snd_device != SND_DEVICE_NONE)) {
965 if (usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND)
966 check_and_route_playback_usecases(adev, usecase, out_snd_device);
971 check_and_route_capture_usecases(adev, usecase, in_snd_device);
975 if (usecase->type == VOICE_CALL)
980 usecase->in_snd_device = in_snd_device;
981 usecase->out_snd_device = out_snd_device;
983 enable_audio_route(adev, usecase);
989 if (usecase->type == VOICE_CALL) {
1009 ALOGV("%s: enter: usecase(%d: %s)", __func__,
1010 in->usecase, use_case_table[in->usecase]);
1011 uc_info = get_usecase_from_list(adev, in->usecase);
1013 ALOGE("%s: Could not find the usecase (%d) in the list",
1014 __func__, in->usecase);
1038 ALOGV("%s: enter: usecase(%d)", __func__, in->usecase);
1047 in->pcm_device_id = platform_get_pcm_device_id(in->usecase, PCM_CAPTURE);
1049 ALOGE("%s: Could not find PCM device id for the usecase(%d)",
1050 __func__, in->usecase);
1057 uc_info->id = in->usecase;
1068 select_devices(adev, in->usecase);
1076 if (in->usecase == USECASE_AUDIO_RECORD_AFE_PROXY) {
1300 struct audio_usecase *usecase;
1304 usecase = node_to_item(node, struct audio_usecase, list);
1305 if (usecase->devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
1312 if (usecase->id == USECASE_VOICE_CALL) {
1317 } else if (usecase->id == USECASE_AUDIO_PLAYBACK_MULTI_CH) {
1332 struct audio_usecase *usecase;
1352 usecase = node_to_item(node, struct audio_usecase, list);
1353 if (usecase->type == PCM_PLAYBACK &&
1354 usecase->devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
1355 disable_audio_route(adev, usecase);
1364 usecase = node_to_item(node, struct audio_usecase, list);
1365 if (usecase->type == PCM_PLAYBACK &&
1366 usecase->devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
1367 enable_audio_route(adev, usecase);
1380 ALOGV("%s: enter: usecase(%d: %s)", __func__,
1381 out->usecase, use_case_table[out->usecase]);
1382 uc_info = get_usecase_from_list(adev, out->usecase);
1384 ALOGE("%s: Could not find the usecase (%d) in the list",
1385 __func__, out->usecase);
1389 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1407 /* Must be called after removing the usecase from list */
1421 usecase(%d: %s) devices(%#x)",
1422 __func__, out->usecase, use_case_table[out->usecase], out->devices);
1431 out->pcm_device_id = platform_get_pcm_device_id(out->usecase, PCM_PLAYBACK);
1433 ALOGE("%s: Invalid PCM device id(%d) for the usecase(%d)",
1434 __func__, out->pcm_device_id, out->usecase);
1440 uc_info->id = out->usecase;
1447 /* This must be called before adding this usecase to the list */
1455 select_devices(adev, out->usecase);
1461 if (out->usecase != USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1465 if (out->usecase == USECASE_AUDIO_PLAYBACK_AFE_PROXY) {
1618 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1649 ALOGV("%s: enter: usecase(%d: %s)", __func__,
1650 out->usecase, use_case_table[out->usecase]);
1659 if (out->usecase != USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1689 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1749 struct audio_usecase *usecase;
1757 ALOGD("%s: enter: usecase(%d: %s) kvpairs: %s",
1758 __func__, out->usecase, use_case_table[out->usecase], kvpairs);
1783 * For example, music playback is active on headset (deep-buffer usecase)
1784 * and if we go to ringtones and select a ringtone, low-latency usecase
1787 * playback to headset+speaker while starting low-lateny usecase for ringtone.
1818 select_devices(adev, out->usecase);
1830 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1883 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD)
1890 hw_delay = platform_render_latency(out->usecase)/1000;
1904 if (out->usecase == USECASE_AUDIO_PLAYBACK_MULTI_CH) {
1908 } else if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
1915 int pcm_device_id = platform_get_pcm_device_id(out->usecase,
1962 ALOGW("out_snd_mon_cb for card %d usecase %s, status %s", card,
1963 use_case_table[out->usecase],
2014 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2060 bool use_mmap = is_mmap_usecase(out->usecase) || out->realtime;
2080 if (out->usecase != USECASE_AUDIO_PLAYBACK_OFFLOAD)
2092 if ((out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) && (dsp_frames != NULL)) {
2135 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2156 (platform_render_latency(out->usecase) * out->sample_rate / 1000000LL);
2190 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2206 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2223 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2238 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
2362 select_devices(adev, in->usecase);
2411 ALOGW("in_snd_mon_cb for card %d usecase %s, status %s", card,
2412 use_case_table[in->usecase],
2456 bool use_mmap = is_mmap_usecase(in->usecase) || in->realtime;
2489 if (ret == 0 && adev->mic_muted && in->usecase != USECASE_AUDIO_RECORD_AFE_PROXY)
2562 struct audio_usecase *usecase;
2565 usecase = node_to_item(node, struct audio_usecase, list);
2566 if (usecase->type == PCM_PLAYBACK) {
2567 select_devices(adev, usecase->id);
2573 select_devices(in->dev, in->usecase);
2579 select_devices(in->dev, in->usecase);
2650 out->usecase = USECASE_AUDIO_PLAYBACK_MULTI_CH;
2682 out->usecase = USECASE_AUDIO_PLAYBACK_OFFLOAD;
2734 out->usecase = USECASE_AUDIO_PLAYBACK_AFE_PROXY;
2739 out->usecase = USECASE_AUDIO_PLAYBACK_DEEP_BUFFER;
2742 out->usecase = USECASE_AUDIO_PLAYBACK_TTS;
2745 out->usecase = USECASE_AUDIO_PLAYBACK_ULL;
2747 out->usecase = USECASE_AUDIO_PLAYBACK_ULL;
2750 out->usecase = USECASE_AUDIO_PLAYBACK_LOW_LATENCY;
2755 && pcm_params_format_test(adev->use_case_table[out->usecase],
2770 ALOGV("%s: Usecase(%s) config->format %#x out->config.format %#x\n",
2771 __func__, use_case_table[out->usecase], config->format, out->config.format);
2783 /* Check if this usecase is already existing */
2785 if (get_usecase_from_list(adev, out->usecase) != NULL) {
2786 ALOGE("%s: Usecase (%d) is already present", __func__, out->usecase);
2865 if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
3164 in->usecase = USECASE_AUDIO_RECORD_AFE_PROXY;
3167 in->usecase = USECASE_AUDIO_RECORD;
3172 in->usecase = USECASE_AUDIO_RECORD_LOW_LATENCY;
3174 in->realtime = may_use_noirq_mode(adev, in->usecase, in->flags);