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

Commit d9bd9309 authored by Zhou Song's avatar Zhou Song Committed by Gerrit - the friendly Code Review server
Browse files

hal: add "haptics" device definition

Add a particular device for haptics usecase, remove
previous combo device definitions.

Change-Id: I4f4b6b464f2a0244c7014157cbbbb7ff783abf8a
parent 2c9f825d
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -1363,6 +1363,27 @@ static int send_app_type_cfg_for_device(struct audio_device *adev,

    if(ctl)
        mixer_ctl_set_array(ctl, app_type_cfg, len);

    /* send app type cfg for haptics */
    if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS) {
        snprintf(mixer_ctl_name, sizeof(mixer_ctl_name),
             "Audio Stream %d App Type Cfg", adev->haptic_pcm_device_id );
        ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
        if (!ctl) {
            ALOGE("%s: Could not get ctl for mixer cmd - %s", __func__,
                  mixer_ctl_name);
            rc = -EINVAL;
            goto exit_send_app_type_cfg;
        }
        acdb_dev_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_HAPTICS);
        snd_device_be_idx = platform_get_snd_device_backend_index(SND_DEVICE_OUT_HAPTICS);
        /* haptics acdb id */
        app_type_cfg[1] = acdb_dev_id;
        /* haptics be index */
        app_type_cfg[3] = snd_device_be_idx;
        mixer_ctl_set_array(ctl, app_type_cfg, len);
    }

    rc = 0;
exit_send_app_type_cfg:
    return rc;
+5 −0
Original line number Diff line number Diff line
@@ -2959,6 +2959,9 @@ int select_devices(struct audio_device *adev, audio_usecase_t uc_id)
        if (platform_check_codec_asrc_support(adev->platform))
            check_and_set_asrc_mode(adev, usecase, out_snd_device);
        enable_snd_device(adev, out_snd_device);
        /* Enable haptics device for haptic usecase */
        if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
            enable_snd_device(adev, SND_DEVICE_OUT_HAPTICS);
    }

    if (in_snd_device != SND_DEVICE_NONE) {
@@ -3681,6 +3684,8 @@ static int stop_output_stream(struct stream_out *out)

    /* 2. Disable the rx device */
    disable_snd_device(adev, uc_info->out_snd_device);
    if (out->usecase == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
        disable_snd_device(adev, SND_DEVICE_OUT_HAPTICS);

    audio_extn_extspk_update(adev->extspk);

+32 −162

File changed.

Preview size limit exceeded, changes collapsed.

+1 −17
Original line number Diff line number Diff line
@@ -72,14 +72,9 @@ enum {
    SND_DEVICE_OUT_HEADPHONES_DSD,
    SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER,
    SND_DEVICE_OUT_HEADPHONES_44_1,
    SND_DEVICE_OUT_HEADPHONES_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
    SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES,
    SND_DEVICE_OUT_SPEAKER_HEADPHONES_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_HEADPHONES_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_AND_LINE,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE,
    SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1,
@@ -99,16 +94,12 @@ enum {
    SND_DEVICE_OUT_DISPLAY_PORT1,
    SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT,
    SND_DEVICE_OUT_SPEAKER_AND_DISPLAY_PORT1,
    SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_DISPLAY_PORT1_AND_HAPTICS,
    SND_DEVICE_OUT_BT_SCO,
    SND_DEVICE_OUT_BT_SCO_WB,
    SND_DEVICE_OUT_BT_SCO_SWB,
    SND_DEVICE_OUT_BT_A2DP,
    SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP,
    SND_DEVICE_OUT_SPEAKER_BT_A2DP_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_BT_A2DP_AND_HAPTICS,
    SND_DEVICE_OUT_VOICE_HANDSET_TMUS,
    SND_DEVICE_OUT_SPEAKER_AND_BT_SCO,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO,
@@ -116,12 +107,6 @@ enum {
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_WB,
    SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB,
    SND_DEVICE_OUT_SPEAKER_BT_SCO_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_BT_SCO_WB_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_WB_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_BT_SCO_SWB_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_BT_SCO_SWB_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO,
    SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB,
    SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_SWB,
@@ -141,8 +126,6 @@ enum {
    SND_DEVICE_OUT_USB_HEADPHONES,
    SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET,
    SND_DEVICE_OUT_SPEAKER_SAFE_AND_USB_HEADSET,
    SND_DEVICE_OUT_SPEAKER_USB_HEADSET_AND_HAPTICS,
    SND_DEVICE_OUT_SPEAKER_SAFE_USB_HEADSET_AND_HAPTICS,
    SND_DEVICE_OUT_VOICE_USB_HEADPHONES,
    SND_DEVICE_OUT_VOICE_USB_HEADSET,
    SND_DEVICE_OUT_USB_HEADSET_SPEC,
@@ -183,6 +166,7 @@ enum {
    SND_DEVICE_OUT_BUS_PAX,
    SND_DEVICE_OUT_BUS_RSE,
    SND_DEVICE_OUT_CALL_PROXY,
    SND_DEVICE_OUT_HAPTICS,
    SND_DEVICE_OUT_END,

    /*