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

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

Merge "audio: Add support for DSDS for incall music feature"

parents ed8badd9 dbef0c70
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@
        <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="33" />
        <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="40" />
        <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
        <usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="27" />
    </pcm_ids>
    <config_params>
        <param key="spkr_1_tz_name" value="wsatz.13"/>
+76 −0
Original line number Diff line number Diff line
@@ -3073,4 +3073,80 @@
    <path name="incall_music_uplink afe-proxy">
        <path name="incall_music_uplink" />
    </path>

    <path name="incall_music_uplink2">
        <ctl name="Incall_Music_2 Audio Mixer MultiMedia9" value="1" />
    </path>

    <path name="incall_music_uplink2 speaker">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 handset">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 handset-hac">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 display-port">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 bt-sco">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 bt-sco-wb">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 speaker-and-display-port">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 afe-proxy">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 usb-headphones">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 usb-headset">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 speaker-and-usb-headphones">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 headphones">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 speaker-and-headphones">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 speaker-and-bt-sco">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 voice-tty-hco-handset">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 speaker-and-bt-a2dp">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 bt-a2dp">
        <path name="incall_music_uplink2" />
    </path>

    <path name="incall_music_uplink2 afe-proxy">
        <path name="incall_music_uplink2" />
    </path>
</mixer>
+16 −3
Original line number Diff line number Diff line
@@ -2945,7 +2945,8 @@ static int stop_output_stream(struct stream_out *out)
            adev->offload_effects_stop_output(out->handle, out->pcm_device_id);
    }

    if (out->usecase == USECASE_INCALL_MUSIC_UPLINK)
    if (out->usecase == USECASE_INCALL_MUSIC_UPLINK ||
                out->usecase == USECASE_INCALL_MUSIC_UPLINK2)
        voice_set_device_mute_flag(adev, false);

    /* 1. Get and set stream specific mixer controls */
@@ -3023,6 +3024,16 @@ int start_output_stream(struct stream_out *out)
        goto error_config;
    }

    //Update incall music usecase to reflect correct voice session
    if (out->flags & AUDIO_OUTPUT_FLAG_INCALL_MUSIC) {
        ret = voice_extn_check_and_set_incall_music_usecase(adev, out);
        if (ret != 0) {
            ALOGE("%s: Incall music delivery usecase cannot be set error:%d",
                __func__, ret);
            goto error_config;
        }
    }

    if (out->devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
        if (!audio_extn_a2dp_is_ready()) {
            if (out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
@@ -3107,7 +3118,8 @@ int start_output_stream(struct stream_out *out)
         select_devices(adev, out->usecase);
    }

    if (out->usecase == USECASE_INCALL_MUSIC_UPLINK)
    if (out->usecase == USECASE_INCALL_MUSIC_UPLINK ||
                out->usecase == USECASE_INCALL_MUSIC_UPLINK2)
        voice_set_device_mute_flag(adev, true);

    ALOGV("%s: Opening PCM device card_id(%d) device_id(%d) format(%#x)",
@@ -4661,7 +4673,8 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer,
            ALOGV("%s: frames=%zu, frame_size=%zu, bytes_to_write=%zu",
                     __func__, frames, frame_size, bytes_to_write);

            if (out->usecase == USECASE_INCALL_MUSIC_UPLINK) {
            if (out->usecase == USECASE_INCALL_MUSIC_UPLINK ||
                        out->usecase == USECASE_INCALL_MUSIC_UPLINK2) {
                size_t channel_count = audio_channel_count_from_out_mask(out->channel_mask);
                int16_t *src = (int16_t *)buffer;
                int16_t *dst = (int16_t *)buffer;
+1 −0
Original line number Diff line number Diff line
@@ -945,6 +945,7 @@ static struct name_to_index usecase_name_index[AUDIO_USECASE_MAX] = {
    {TO_NAME_INDEX(USECASE_AUDIO_RECORD_AFE_PROXY)},
    {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_SILENCE)},
    {TO_NAME_INDEX(USECASE_INCALL_MUSIC_UPLINK)},
    {TO_NAME_INDEX(USECASE_INCALL_MUSIC_UPLINK2)},
    {TO_NAME_INDEX(USECASE_AUDIO_A2DP_ABR_FEEDBACK)},
    {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_VOIP)},
    {TO_NAME_INDEX(USECASE_AUDIO_RECORD_VOIP)},
+2 −0
Original line number Diff line number Diff line
@@ -367,6 +367,8 @@ enum {
#define INCALL_MUSIC_UPLINK2_PCM_DEVICE 16
#elif PLATFORM_APQ8084
#define INCALL_MUSIC_UPLINK2_PCM_DEVICE 34
#elif PLATFORM_MSMNILE
#define INCALL_MUSIC_UPLINK2_PCM_DEVICE 27
#else
#define INCALL_MUSIC_UPLINK2_PCM_DEVICE 35
#endif
Loading