Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6cb7f3f7 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "hal: apply TTY mode change for all voice use cases"

parents 80bbc06e c9bf40d3
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -551,21 +551,6 @@ static int read_hdmi_channel_masks(struct stream_out *out)
    return ret;
}

static void update_devices_for_all_voice_usecases(struct audio_device *adev)
{
    struct listnode *node;
    struct audio_usecase *usecase;

    list_for_each(node, &adev->usecase_list) {
        usecase = node_to_item(node, struct audio_usecase, list);
        if (usecase->type == VOICE_CALL) {
            ALOGV("%s: updating device for usecase:%s", __func__,
                  use_case_table[usecase->id]);
            select_devices(adev, usecase->id);
        }
    }
}

static audio_usecase_t get_voice_usecase_id_from_list(struct audio_device *adev)
{
    struct audio_usecase *usecase;
@@ -1457,7 +1442,7 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
            } else if ((adev->mode == AUDIO_MODE_IN_CALL) &&
                            voice_is_in_call(adev) &&
                            (out == adev->primary_output)) {
                update_devices_for_all_voice_usecases(adev);
                voice_update_devices_for_all_voice_usecases(adev);
            }
        }

+16 −2
Original line number Diff line number Diff line
@@ -397,8 +397,7 @@ int voice_set_parameters(struct audio_device *adev, struct str_parms *parms)
            adev->voice.tty_mode = tty_mode;
            adev->acdb_settings = (adev->acdb_settings & TTY_MODE_CLEAR) | tty_mode;
            if (voice_is_in_call(adev))
                //todo: what about voice2, volte and qchat usecases?
                select_devices(adev, USECASE_VOICE_CALL);
               voice_update_devices_for_all_voice_usecases(adev);
        }
    }

@@ -438,4 +437,19 @@ void voice_init(struct audio_device *adev)
    voice_extn_init(adev);
}

void voice_update_devices_for_all_voice_usecases(struct audio_device *adev)
{
    struct listnode *node;
    struct audio_usecase *usecase;

    list_for_each(node, &adev->usecase_list) {
        usecase = node_to_item(node, struct audio_usecase, list);
        if (usecase->type == VOICE_CALL) {
            ALOGV("%s: updating device for usecase:%s", __func__,
                  use_case_table[usecase->id]);
            select_devices(adev, usecase->id);
        }
    }
}

+1 −0
Original line number Diff line number Diff line
@@ -86,4 +86,5 @@ int voice_check_and_set_incall_music_usecase(struct audio_device *adev,
                                             struct stream_out *out);
int voice_check_and_stop_incall_rec_usecase(struct audio_device *adev,
                                            struct stream_in *in);
void voice_update_devices_for_all_voice_usecases(struct audio_device *adev);
#endif //VOICE_H