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

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

Merge "audio: Fix parsing of I/O flags from XML config" into main am:...

Merge "audio: Fix parsing of I/O flags from XML config" into main am: 1a7cdeef am: bac3fc05 am: b0accaec

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2850161



Change-Id: I99b1146da9b728c8a23aa6ff1e4a932776b9a687
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 094aebd4 b0accaec
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -205,24 +205,28 @@ ConversionResult<AudioProfile> convertAudioProfileToAidl(const ap_xsd::Profile&
ConversionResult<AudioIoFlags> convertIoFlagsToAidl(
        const std::vector<ap_xsd::AudioInOutFlag>& flags, const ap_xsd::Role role,
        bool flagsForMixPort) {
    int flagMask = 0;
    int legacyFlagMask = 0;
    if ((role == ap_xsd::Role::sink && flagsForMixPort) ||
        (role == ap_xsd::Role::source && !flagsForMixPort)) {
        for (const ap_xsd::AudioInOutFlag& flag : flags) {
            audio_input_flags_t legacyFlag;
            if (::android::InputFlagConverter::fromString(ap_xsd::toString(flag), legacyFlag)) {
                flagMask |= static_cast<int>(legacyFlag);
                legacyFlagMask |= static_cast<int>(legacyFlag);
            }
        }
        return AudioIoFlags::make<AudioIoFlags::Tag::input>(flagMask);
        return AudioIoFlags::make<AudioIoFlags::Tag::input>(
                VALUE_OR_FATAL(legacy2aidl_audio_input_flags_t_int32_t_mask(
                        static_cast<audio_input_flags_t>(legacyFlagMask))));
    } else {
        for (const ap_xsd::AudioInOutFlag& flag : flags) {
            audio_output_flags_t legacyFlag;
            if (::android::OutputFlagConverter::fromString(ap_xsd::toString(flag), legacyFlag)) {
                flagMask |= static_cast<int>(legacyFlag);
                legacyFlagMask |= static_cast<int>(legacyFlag);
            }
        }
        return AudioIoFlags::make<AudioIoFlags::Tag::output>(flagMask);
        return AudioIoFlags::make<AudioIoFlags::Tag::output>(
                VALUE_OR_FATAL(legacy2aidl_audio_output_flags_t_int32_t_mask(
                        static_cast<audio_output_flags_t>(legacyFlagMask))));
    }
}