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

Commit b8f986b7 authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Automerger Merge Worker
Browse files

Merge "Stabilize audio playback types used by the HAL" am: a1f8ad4b

parents 1c9baef2 a1f8ad4b
Loading
Loading
Loading
Loading
+136 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ using media::audio::common::AudioDevice;
using media::audio::common::AudioDeviceAddress;
using media::audio::common::AudioDeviceDescription;
using media::audio::common::AudioDeviceType;
using media::audio::common::AudioDualMonoMode;
using media::audio::common::AudioEncapsulationMetadataType;
using media::audio::common::AudioEncapsulationMode;
using media::audio::common::AudioEncapsulationType;
@@ -63,9 +64,11 @@ using media::audio::common::AudioGainConfig;
using media::audio::common::AudioGainMode;
using media::audio::common::AudioInputFlags;
using media::audio::common::AudioIoFlags;
using media::audio::common::AudioLatencyMode;
using media::audio::common::AudioMode;
using media::audio::common::AudioOffloadInfo;
using media::audio::common::AudioOutputFlags;
using media::audio::common::AudioPlaybackRate;
using media::audio::common::AudioPortDeviceExt;
using media::audio::common::AudioPortExt;
using media::audio::common::AudioPortMixExt;
@@ -2123,6 +2126,139 @@ legacy2aidl_audio_encapsulation_type_t_AudioEncapsulationType(
    return unexpected(BAD_VALUE);
}

ConversionResult<audio_dual_mono_mode_t>
aidl2legacy_AudioDualMonoMode_audio_dual_mono_mode_t(AudioDualMonoMode aidl) {
    switch (aidl) {
        case AudioDualMonoMode::OFF:
            return AUDIO_DUAL_MONO_MODE_OFF;
        case AudioDualMonoMode::LR:
            return AUDIO_DUAL_MONO_MODE_LR;
        case AudioDualMonoMode::LL:
            return AUDIO_DUAL_MONO_MODE_LL;
        case AudioDualMonoMode::RR:
            return AUDIO_DUAL_MONO_MODE_RR;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<AudioDualMonoMode>
legacy2aidl_audio_dual_mono_mode_t_AudioDualMonoMode(audio_dual_mono_mode_t legacy) {
    switch (legacy) {
        case AUDIO_DUAL_MONO_MODE_OFF:
            return AudioDualMonoMode::OFF;
        case AUDIO_DUAL_MONO_MODE_LR:
            return AudioDualMonoMode::LR;
        case AUDIO_DUAL_MONO_MODE_LL:
            return AudioDualMonoMode::LL;
        case AUDIO_DUAL_MONO_MODE_RR:
            return AudioDualMonoMode::RR;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<audio_timestretch_fallback_mode_t>
aidl2legacy_TimestretchFallbackMode_audio_timestretch_fallback_mode_t(
        AudioPlaybackRate::TimestretchFallbackMode aidl) {
    switch (aidl) {
        case AudioPlaybackRate::TimestretchFallbackMode::SYS_RESERVED_CUT_REPEAT:
            return AUDIO_TIMESTRETCH_FALLBACK_CUT_REPEAT;
        case AudioPlaybackRate::TimestretchFallbackMode::SYS_RESERVED_DEFAULT:
            return AUDIO_TIMESTRETCH_FALLBACK_DEFAULT;
        case AudioPlaybackRate::TimestretchFallbackMode::MUTE:
            return AUDIO_TIMESTRETCH_FALLBACK_MUTE;
        case AudioPlaybackRate::TimestretchFallbackMode::FAIL:
            return AUDIO_TIMESTRETCH_FALLBACK_FAIL;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<AudioPlaybackRate::TimestretchFallbackMode>
legacy2aidl_audio_timestretch_fallback_mode_t_TimestretchFallbackMode(
        audio_timestretch_fallback_mode_t legacy) {
    switch (legacy) {
        case AUDIO_TIMESTRETCH_FALLBACK_CUT_REPEAT:
            return AudioPlaybackRate::TimestretchFallbackMode::SYS_RESERVED_CUT_REPEAT;
        case AUDIO_TIMESTRETCH_FALLBACK_DEFAULT:
            return AudioPlaybackRate::TimestretchFallbackMode::SYS_RESERVED_DEFAULT;
        case AUDIO_TIMESTRETCH_FALLBACK_MUTE:
            return AudioPlaybackRate::TimestretchFallbackMode::MUTE;
        case AUDIO_TIMESTRETCH_FALLBACK_FAIL:
            return AudioPlaybackRate::TimestretchFallbackMode::FAIL;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<audio_timestretch_stretch_mode_t>
aidl2legacy_TimestretchMode_audio_timestretch_stretch_mode_t(
        AudioPlaybackRate::TimestretchMode aidl) {
    switch (aidl) {
        case AudioPlaybackRate::TimestretchMode::DEFAULT:
            return AUDIO_TIMESTRETCH_STRETCH_DEFAULT;
        case AudioPlaybackRate::TimestretchMode::VOICE:
            return AUDIO_TIMESTRETCH_STRETCH_VOICE;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<AudioPlaybackRate::TimestretchMode>
legacy2aidl_audio_timestretch_stretch_mode_t_TimestretchMode(
        audio_timestretch_stretch_mode_t legacy) {
    switch (legacy) {
        case AUDIO_TIMESTRETCH_STRETCH_DEFAULT:
            return AudioPlaybackRate::TimestretchMode::DEFAULT;
        case AUDIO_TIMESTRETCH_STRETCH_VOICE:
            return AudioPlaybackRate::TimestretchMode::VOICE;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<audio_playback_rate_t>
aidl2legacy_AudioPlaybackRate_audio_playback_rate_t(const AudioPlaybackRate& aidl) {
    audio_playback_rate_t legacy;
    legacy.mSpeed = aidl.speed;
    legacy.mPitch = aidl.pitch;
    legacy.mFallbackMode = VALUE_OR_RETURN(
            aidl2legacy_TimestretchFallbackMode_audio_timestretch_fallback_mode_t(
                    aidl.fallbackMode));
    legacy.mStretchMode = VALUE_OR_RETURN(
            aidl2legacy_TimestretchMode_audio_timestretch_stretch_mode_t(aidl.timestretchMode));
    return legacy;
}

ConversionResult<AudioPlaybackRate>
legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy) {
    AudioPlaybackRate aidl;
    aidl.speed = legacy.mSpeed;
    aidl.pitch = legacy.mPitch;
    aidl.fallbackMode = VALUE_OR_RETURN(
            legacy2aidl_audio_timestretch_fallback_mode_t_TimestretchFallbackMode(
                    legacy.mFallbackMode));
    aidl.timestretchMode = VALUE_OR_RETURN(
            legacy2aidl_audio_timestretch_stretch_mode_t_TimestretchMode(legacy.mStretchMode));
    return aidl;
}

ConversionResult<audio_latency_mode_t>
aidl2legacy_AudioLatencyMode_audio_latency_mode_t(AudioLatencyMode aidl) {
    switch (aidl) {
        case AudioLatencyMode::FREE:
            return AUDIO_LATENCY_MODE_FREE;
        case AudioLatencyMode::LOW:
            return AUDIO_LATENCY_MODE_LOW;
    }
    return unexpected(BAD_VALUE);
}
ConversionResult<AudioLatencyMode>
legacy2aidl_audio_latency_mode_t_AudioLatencyMode(audio_latency_mode_t legacy) {
    switch (legacy) {
        case AUDIO_LATENCY_MODE_FREE:
            return AudioLatencyMode::FREE;
        case AUDIO_LATENCY_MODE_LOW:
            return AudioLatencyMode::LOW;
    }
    return unexpected(BAD_VALUE);
}

}  // namespace android

#if defined(BACKEND_NDK)
+34 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@
#include PREFIX(android/media/audio/common/AudioConfigBase.h)
#include PREFIX(android/media/audio/common/AudioContentType.h)
#include PREFIX(android/media/audio/common/AudioDeviceDescription.h)
#include PREFIX(android/media/audio/common/AudioDualMonoMode.h)
#include PREFIX(android/media/audio/common/AudioEncapsulationMetadataType.h)
#include PREFIX(android/media/audio/common/AudioEncapsulationMode.h)
#include PREFIX(android/media/audio/common/AudioEncapsulationType.h)
@@ -44,11 +45,13 @@
#include PREFIX(android/media/audio/common/AudioGainMode.h)
#include PREFIX(android/media/audio/common/AudioInputFlags.h)
#include PREFIX(android/media/audio/common/AudioIoFlags.h)
#include PREFIX(android/media/audio/common/AudioLatencyMode.h)
#include PREFIX(android/media/audio/common/AudioMode.h)
#include PREFIX(android/media/audio/common/AudioOffloadInfo.h)
#include PREFIX(android/media/audio/common/AudioOutputFlags.h)
#include PREFIX(android/media/audio/common/AudioPortExt.h)
#include PREFIX(android/media/audio/common/AudioPortMixExt.h)
#include PREFIX(android/media/audio/common/AudioPlaybackRate.h)
#include PREFIX(android/media/audio/common/AudioProfile.h)
#include PREFIX(android/media/audio/common/AudioSource.h)
#include PREFIX(android/media/audio/common/AudioStandard.h)
@@ -287,6 +290,36 @@ ConversionResult<audio_uuid_t> aidl2legacy_AudioUuid_audio_uuid_t(
ConversionResult<media::audio::common::AudioUuid> legacy2aidl_audio_uuid_t_AudioUuid(
        const audio_uuid_t& legacy);

ConversionResult<audio_dual_mono_mode_t>
aidl2legacy_AudioDualMonoMode_audio_dual_mono_mode_t(media::audio::common::AudioDualMonoMode aidl);
ConversionResult<media::audio::common::AudioDualMonoMode>
legacy2aidl_audio_dual_mono_mode_t_AudioDualMonoMode(audio_dual_mono_mode_t legacy);

ConversionResult<audio_timestretch_fallback_mode_t>
aidl2legacy_TimestretchFallbackMode_audio_timestretch_fallback_mode_t(
        media::audio::common::AudioPlaybackRate::TimestretchFallbackMode aidl);
ConversionResult<media::audio::common::AudioPlaybackRate::TimestretchFallbackMode>
legacy2aidl_audio_timestretch_fallback_mode_t_TimestretchFallbackMode(
        audio_timestretch_fallback_mode_t legacy);

ConversionResult<audio_timestretch_stretch_mode_t>
aidl2legacy_TimestretchMode_audio_timestretch_stretch_mode_t(
        media::audio::common::AudioPlaybackRate::TimestretchMode aidl);
ConversionResult<media::audio::common::AudioPlaybackRate::TimestretchMode>
legacy2aidl_audio_timestretch_stretch_mode_t_TimestretchMode(
        audio_timestretch_stretch_mode_t legacy);

ConversionResult<audio_playback_rate_t>
aidl2legacy_AudioPlaybackRate_audio_playback_rate_t(
        const media::audio::common::AudioPlaybackRate& aidl);
ConversionResult<media::audio::common::AudioPlaybackRate>
legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy);

ConversionResult<audio_latency_mode_t>
aidl2legacy_AudioLatencyMode_audio_latency_mode_t(media::audio::common::AudioLatencyMode aidl);
ConversionResult<media::audio::common::AudioLatencyMode>
legacy2aidl_audio_latency_mode_t_AudioLatencyMode(audio_latency_mode_t legacy);

}  // namespace android

#if defined(BACKEND_NDK)
+0 −95
Original line number Diff line number Diff line
@@ -1091,80 +1091,6 @@ legacy2aidl_product_strategy_t_int32_t(product_strategy_t legacy) {
    return convertReinterpret<int32_t>(legacy);
}

ConversionResult<audio_dual_mono_mode_t>
aidl2legacy_AudioDualMonoMode_audio_dual_mono_mode_t(media::AudioDualMonoMode aidl) {
    switch (aidl) {
        case media::AudioDualMonoMode::OFF:
            return AUDIO_DUAL_MONO_MODE_OFF;
        case media::AudioDualMonoMode::LR:
            return AUDIO_DUAL_MONO_MODE_LR;
        case media::AudioDualMonoMode::LL:
            return AUDIO_DUAL_MONO_MODE_LL;
        case media::AudioDualMonoMode::RR:
            return AUDIO_DUAL_MONO_MODE_RR;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<media::AudioDualMonoMode>
legacy2aidl_audio_dual_mono_mode_t_AudioDualMonoMode(audio_dual_mono_mode_t legacy) {
    switch (legacy) {
        case AUDIO_DUAL_MONO_MODE_OFF:
            return media::AudioDualMonoMode::OFF;
        case AUDIO_DUAL_MONO_MODE_LR:
            return media::AudioDualMonoMode::LR;
        case AUDIO_DUAL_MONO_MODE_LL:
            return media::AudioDualMonoMode::LL;
        case AUDIO_DUAL_MONO_MODE_RR:
            return media::AudioDualMonoMode::RR;
    }
    return unexpected(BAD_VALUE);
}

ConversionResult<audio_timestretch_fallback_mode_t>
aidl2legacy_int32_t_audio_timestretch_fallback_mode_t(int32_t aidl) {
    return convertReinterpret<audio_timestretch_fallback_mode_t>(aidl);
}

ConversionResult<int32_t>
legacy2aidl_audio_timestretch_fallback_mode_t_int32_t(audio_timestretch_fallback_mode_t legacy) {
    return convertReinterpret<int32_t>(legacy);
}

ConversionResult<audio_timestretch_stretch_mode_t>
aidl2legacy_int32_t_audio_timestretch_stretch_mode_t(int32_t aidl) {
    return convertReinterpret<audio_timestretch_stretch_mode_t>(aidl);
}

ConversionResult<int32_t>
legacy2aidl_audio_timestretch_stretch_mode_t_int32_t(audio_timestretch_stretch_mode_t legacy) {
    return convertReinterpret<int32_t>(legacy);
}

ConversionResult<audio_playback_rate_t>
aidl2legacy_AudioPlaybackRate_audio_playback_rate_t(const media::AudioPlaybackRate& aidl) {
    audio_playback_rate_t legacy;
    legacy.mSpeed = aidl.speed;
    legacy.mPitch = aidl.pitch;
    legacy.mFallbackMode = VALUE_OR_RETURN(
            aidl2legacy_int32_t_audio_timestretch_fallback_mode_t(aidl.fallbackMode));
    legacy.mStretchMode = VALUE_OR_RETURN(
            aidl2legacy_int32_t_audio_timestretch_stretch_mode_t(aidl.stretchMode));
    return legacy;
}

ConversionResult<media::AudioPlaybackRate>
legacy2aidl_audio_playback_rate_t_AudioPlaybackRate(const audio_playback_rate_t& legacy) {
    media::AudioPlaybackRate aidl;
    aidl.speed = legacy.mSpeed;
    aidl.pitch = legacy.mPitch;
    aidl.fallbackMode = VALUE_OR_RETURN(
            legacy2aidl_audio_timestretch_fallback_mode_t_int32_t(legacy.mFallbackMode));
    aidl.stretchMode = VALUE_OR_RETURN(
            legacy2aidl_audio_timestretch_stretch_mode_t_int32_t(legacy.mStretchMode));
    return aidl;
}

ConversionResult<TrackSecondaryOutputInfoPair>
aidl2legacy_TrackSecondaryOutputInfo_TrackSecondaryOutputInfoPair(
        const media::TrackSecondaryOutputInfo& aidl) {
@@ -1237,25 +1163,4 @@ ConversionResult<int32_t> legacy2aidl_audio_direct_mode_t_int32_t_mask(audio_dir
            indexToEnum_bitmask<audio_direct_mode_t>,
            enumToMask_index<int32_t, media::AudioDirectMode>);
}

ConversionResult<audio_latency_mode_t>
aidl2legacy_LatencyMode_audio_latency_mode_t(media::LatencyMode aidl) {
    switch (aidl) {
        case media::LatencyMode::FREE:
            return AUDIO_LATENCY_MODE_FREE;
        case media::LatencyMode::LOW:
            return AUDIO_LATENCY_MODE_LOW;
    }
    return unexpected(BAD_VALUE);
}
ConversionResult<media::LatencyMode>
legacy2aidl_audio_latency_mode_t_LatencyMode(audio_latency_mode_t legacy) {
    switch (legacy) {
        case AUDIO_LATENCY_MODE_FREE:
            return media::LatencyMode::FREE;
        case AUDIO_LATENCY_MODE_LOW:
            return media::LatencyMode::LOW;
    }
    return unexpected(BAD_VALUE);
}
}  // namespace android
+0 −3
Original line number Diff line number Diff line
@@ -281,14 +281,12 @@ aidl_interface {
        "aidl/android/media/AudioAttributesInternal.aidl",
        "aidl/android/media/AudioClient.aidl",
        "aidl/android/media/AudioDirectMode.aidl",
        "aidl/android/media/AudioDualMonoMode.aidl",
        "aidl/android/media/AudioFlag.aidl",
        "aidl/android/media/AudioGainSys.aidl",
        "aidl/android/media/AudioHalVersion.aidl",
        "aidl/android/media/AudioIoConfigEvent.aidl",
        "aidl/android/media/AudioIoDescriptor.aidl",
        "aidl/android/media/AudioPatch.aidl",
        "aidl/android/media/AudioPlaybackRate.aidl",
        "aidl/android/media/AudioPort.aidl",
        "aidl/android/media/AudioPortSys.aidl",
        "aidl/android/media/AudioPortConfig.aidl",
@@ -303,7 +301,6 @@ aidl_interface {
        "aidl/android/media/AudioUniqueIdUse.aidl",
        "aidl/android/media/AudioVibratorInfo.aidl",
        "aidl/android/media/EffectDescriptor.aidl",
        "aidl/android/media/LatencyMode.aidl",
        "aidl/android/media/TrackSecondaryOutputInfo.aidl",
    ],
    imports: [
+2 −2
Original line number Diff line number Diff line
@@ -671,12 +671,12 @@ Status AudioSystem::AudioFlingerClient::ioConfigChanged(
}

Status AudioSystem::AudioFlingerClient::onSupportedLatencyModesChanged(
        int output, const std::vector<media::LatencyMode>& latencyModes) {
        int output, const std::vector<media::audio::common::AudioLatencyMode>& latencyModes) {
    audio_io_handle_t outputLegacy = VALUE_OR_RETURN_BINDER_STATUS(
            aidl2legacy_int32_t_audio_io_handle_t(output));
    std::vector<audio_latency_mode_t> modesLegacy = VALUE_OR_RETURN_BINDER_STATUS(
            convertContainer<std::vector<audio_latency_mode_t>>(
                    latencyModes, aidl2legacy_LatencyMode_audio_latency_mode_t));
                    latencyModes, aidl2legacy_AudioLatencyMode_audio_latency_mode_t));

    std::vector<sp<SupportedLatencyModesCallback>> callbacks;
    {
Loading