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

Commit 3f3564a6 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11504324 from 9b2495de to 24Q2-release

Change-Id: Ia99e538469c9b6477dc6b8eafe51960624093e64
parents b836b1d0 9b2495de
Loading
Loading
Loading
Loading
+24 −59
Original line number Diff line number Diff line
@@ -594,13 +594,10 @@ Status AudioSystem::AudioFlingerClient::ioConfigChanged(
            case AUDIO_OUTPUT_REGISTERED:
            case AUDIO_INPUT_OPENED:
            case AUDIO_INPUT_REGISTERED: {
                sp<AudioIoDescriptor> oldDesc = getIoDescriptor_l(ioDesc->getIoHandle());
                if (oldDesc == 0) {
                    mIoDescriptors.add(ioDesc->getIoHandle(), ioDesc);
                } else {
                if (sp<AudioIoDescriptor> oldDesc = getIoDescriptor_l(ioDesc->getIoHandle())) {
                    deviceId = oldDesc->getDeviceId();
                    mIoDescriptors.replaceValueFor(ioDesc->getIoHandle(), ioDesc);
                }
                mIoDescriptors[ioDesc->getIoHandle()] = ioDesc;

                if (ioDesc->getDeviceId() != AUDIO_PORT_HANDLE_NONE) {
                    deviceId = ioDesc->getDeviceId();
@@ -629,7 +626,7 @@ Status AudioSystem::AudioFlingerClient::ioConfigChanged(
                ALOGV("ioConfigChanged() %s %d closed",
                      event == AUDIO_OUTPUT_CLOSED ? "output" : "input", ioDesc->getIoHandle());

                mIoDescriptors.removeItem(ioDesc->getIoHandle());
                mIoDescriptors.erase(ioDesc->getIoHandle());
                mAudioDeviceCallbacks.erase(ioDesc->getIoHandle());
            }
                break;
@@ -645,7 +642,7 @@ Status AudioSystem::AudioFlingerClient::ioConfigChanged(
                }

                deviceId = oldDesc->getDeviceId();
                mIoDescriptors.replaceValueFor(ioDesc->getIoHandle(), ioDesc);
                mIoDescriptors[ioDesc->getIoHandle()] = ioDesc;

                if (deviceId != ioDesc->getDeviceId()) {
                    deviceId = ioDesc->getDeviceId();
@@ -758,12 +755,11 @@ status_t AudioSystem::AudioFlingerClient::getInputBufferSize(

sp<AudioIoDescriptor>
AudioSystem::AudioFlingerClient::getIoDescriptor_l(audio_io_handle_t ioHandle) {
    sp<AudioIoDescriptor> desc;
    ssize_t index = mIoDescriptors.indexOfKey(ioHandle);
    if (index >= 0) {
        desc = mIoDescriptors.valueAt(index);
    if (const auto it = mIoDescriptors.find(ioHandle);
        it != mIoDescriptors.end()) {
        return it->second;
    }
    return desc;
    return {};
}

sp<AudioIoDescriptor> AudioSystem::AudioFlingerClient::getIoDescriptor(audio_io_handle_t ioHandle) {
@@ -2748,44 +2744,27 @@ status_t AudioSystem::clearPreferredMixerAttributes(const audio_attributes_t *at
int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback(
        const sp<AudioPortCallback>& callback) {
    std::lock_guard _l(mMutex);
    for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) {
        if (mAudioPortCallbacks[i] == callback) {
            return -1;
        }
    }
    mAudioPortCallbacks.add(callback);
    return mAudioPortCallbacks.size();
    return mAudioPortCallbacks.insert(callback).second ? mAudioPortCallbacks.size() : -1;
}

int AudioSystem::AudioPolicyServiceClient::removeAudioPortCallback(
        const sp<AudioPortCallback>& callback) {
    std::lock_guard _l(mMutex);
    size_t i;
    for (i = 0; i < mAudioPortCallbacks.size(); i++) {
        if (mAudioPortCallbacks[i] == callback) {
            break;
        }
    return mAudioPortCallbacks.erase(callback) > 0 ? mAudioPortCallbacks.size() : -1;
}
    if (i == mAudioPortCallbacks.size()) {
        return -1;
    }
    mAudioPortCallbacks.removeAt(i);
    return mAudioPortCallbacks.size();
}


Status AudioSystem::AudioPolicyServiceClient::onAudioPortListUpdate() {
    std::lock_guard _l(mMutex);
    for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) {
        mAudioPortCallbacks[i]->onAudioPortListUpdate();
    for (const auto& callback : mAudioPortCallbacks) {
        callback->onAudioPortListUpdate();
    }
    return Status::ok();
}

Status AudioSystem::AudioPolicyServiceClient::onAudioPatchListUpdate() {
    std::lock_guard _l(mMutex);
    for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) {
        mAudioPortCallbacks[i]->onAudioPatchListUpdate();
    for (const auto& callback : mAudioPortCallbacks) {
        callback->onAudioPatchListUpdate();
    }
    return Status::ok();
}
@@ -2794,29 +2773,15 @@ Status AudioSystem::AudioPolicyServiceClient::onAudioPatchListUpdate() {
int AudioSystem::AudioPolicyServiceClient::addAudioVolumeGroupCallback(
        const sp<AudioVolumeGroupCallback>& callback) {
    std::lock_guard _l(mMutex);
    for (size_t i = 0; i < mAudioVolumeGroupCallback.size(); i++) {
        if (mAudioVolumeGroupCallback[i] == callback) {
            return -1;
        }
    }
    mAudioVolumeGroupCallback.add(callback);
    return mAudioVolumeGroupCallback.size();
    return mAudioVolumeGroupCallbacks.insert(callback).second
            ? mAudioVolumeGroupCallbacks.size() : -1;
}

int AudioSystem::AudioPolicyServiceClient::removeAudioVolumeGroupCallback(
        const sp<AudioVolumeGroupCallback>& callback) {
    std::lock_guard _l(mMutex);
    size_t i;
    for (i = 0; i < mAudioVolumeGroupCallback.size(); i++) {
        if (mAudioVolumeGroupCallback[i] == callback) {
            break;
        }
    }
    if (i == mAudioVolumeGroupCallback.size()) {
        return -1;
    }
    mAudioVolumeGroupCallback.removeAt(i);
    return mAudioVolumeGroupCallback.size();
    return mAudioVolumeGroupCallbacks.erase(callback) > 0
            ? mAudioVolumeGroupCallbacks.size() : -1;
}

Status AudioSystem::AudioPolicyServiceClient::onAudioVolumeGroupChanged(int32_t group,
@@ -2826,8 +2791,8 @@ Status AudioSystem::AudioPolicyServiceClient::onAudioVolumeGroupChanged(int32_t
    int flagsLegacy = VALUE_OR_RETURN_BINDER_STATUS(convertReinterpret<int>(flags));

    std::lock_guard _l(mMutex);
    for (size_t i = 0; i < mAudioVolumeGroupCallback.size(); i++) {
        mAudioVolumeGroupCallback[i]->onAudioVolumeGroupChanged(groupLegacy, flagsLegacy);
    for (const auto& callback : mAudioVolumeGroupCallbacks) {
        callback->onAudioVolumeGroupChanged(groupLegacy, flagsLegacy);
    }
    return Status::ok();
}
@@ -2921,11 +2886,11 @@ Status AudioSystem::AudioPolicyServiceClient::onVolumeRangeInitRequest() {
void AudioSystem::AudioPolicyServiceClient::binderDied(const wp<IBinder>& who __unused) {
    {
        std::lock_guard _l(mMutex);
        for (size_t i = 0; i < mAudioPortCallbacks.size(); i++) {
            mAudioPortCallbacks[i]->onServiceDied();
        for (const auto& callback : mAudioPortCallbacks) {
            callback->onServiceDied();
        }
        for (size_t i = 0; i < mAudioVolumeGroupCallback.size(); i++) {
            mAudioVolumeGroupCallback[i]->onServiceDied();
        for (const auto& callback : mAudioVolumeGroupCallbacks) {
            callback->onServiceDied();
        }
    }
    AudioSystem::clearAudioPolicyService();
+24 −0
Original line number Diff line number Diff line
@@ -872,6 +872,18 @@ const ToneGenerator::ToneDescriptor ToneGenerator::sToneDescriptors[] = {
                        { .duration = 0 , .waveFreq = { 0 }, 0, 0}},
          .repeatCnt = 3,
          .repeatSegment = 0 },                              // TONE_NZ_CALL_WAITING
        { .segments = { { .duration = 500, .waveFreq = { 425, 0 }, 0, 0 },
                        { .duration = 250, .waveFreq = { 0 }, 0, 0 },
                        { .duration = 0 , .waveFreq = { 0 }, 0, 0}},
          .repeatCnt = ToneGenerator::TONEGEN_INF,
          .repeatSegment = 0 },                             // TONE_MY_CONGESTION
        { .segments = { { .duration = 400, .waveFreq = { 425, 0 }, 0, 0 },
                        { .duration = 200, .waveFreq = { 0 }, 0, 0 },
                        { .duration = 400, .waveFreq = { 425, 0 }, 0, 0 },
                        { .duration = 2000, .waveFreq = { 0 }, 0, 0},
                        { .duration = 0, .waveFreq = { 0 }, 0, 0}},
          .repeatCnt = ToneGenerator::TONEGEN_INF,
          .repeatSegment = 0 }                              // TONE_MY_RINGTONE
};

// Used by ToneGenerator::getToneForRegion() to convert user specified supervisory tone type
@@ -976,6 +988,16 @@ const unsigned char /*tone_type*/ ToneGenerator::sToneMappingTable[NUM_REGIONS-1
            TONE_SUP_ERROR,               // TONE_SUP_ERROR
            TONE_NZ_CALL_WAITING,         // TONE_SUP_CALL_WAITING
            TONE_GB_RINGTONE              // TONE_SUP_RINGTONE
        },
        {   // MALAYSIA
            TONE_SUP_DIAL,                // TONE_SUP_DIAL
            TONE_SUP_BUSY,                // TONE_SUP_BUSY
            TONE_MY_CONGESTION,           // TONE_SUP_CONGESTION
            TONE_SUP_RADIO_ACK,           // TONE_SUP_RADIO_ACK
            TONE_SUP_RADIO_NOTAVAIL,      // TONE_SUP_RADIO_NOTAVAIL
            TONE_SUP_ERROR,               // TONE_SUP_ERROR
            TONE_SUP_CALL_WAITING,        // TONE_SUP_CALL_WAITING
            TONE_MY_RINGTONE              // TONE_SUP_RINGTONE
        }
};

@@ -1055,6 +1077,8 @@ ToneGenerator::ToneGenerator(audio_stream_type_t streamType, float volume, bool
        mRegion = TAIWAN;
    } else if (strstr(value, "nz") != NULL) {
        mRegion = NZ;
    } else if (strstr(value, "my") != NULL) {
        mRegion = MY;
    } else {
        mRegion = CEPT;
    }
+5 −6
Original line number Diff line number Diff line
@@ -823,8 +823,7 @@ private:

    private:
        mutable std::mutex mMutex;
        DefaultKeyedVector<audio_io_handle_t, sp<AudioIoDescriptor>>
                mIoDescriptors GUARDED_BY(mMutex);
        std::map<audio_io_handle_t, sp<AudioIoDescriptor>> mIoDescriptors GUARDED_BY(mMutex);

        std::map<audio_io_handle_t, std::map<audio_port_handle_t, wp<AudioDeviceCallback>>>
                mAudioDeviceCallbacks GUARDED_BY(mMutex);
@@ -852,7 +851,7 @@ private:

        bool isAudioPortCbEnabled() const EXCLUDES(mMutex) {
            std::lock_guard _l(mMutex);
            return (mAudioPortCallbacks.size() != 0);
            return !mAudioPortCallbacks.empty();
        }

        int addAudioVolumeGroupCallback(
@@ -863,7 +862,7 @@ private:

        bool isAudioVolumeGroupCbEnabled() const EXCLUDES(mMutex) {
            std::lock_guard _l(mMutex);
            return (mAudioVolumeGroupCallback.size() != 0);
            return !mAudioVolumeGroupCallbacks.empty();
        }

        // DeathRecipient
@@ -889,8 +888,8 @@ private:

    private:
        mutable std::mutex mMutex;
        Vector<sp<AudioPortCallback>> mAudioPortCallbacks GUARDED_BY(mMutex);
        Vector<sp<AudioVolumeGroupCallback>> mAudioVolumeGroupCallback GUARDED_BY(mMutex);
        std::set<sp<AudioPortCallback>> mAudioPortCallbacks GUARDED_BY(mMutex);
        std::set<sp<AudioVolumeGroupCallback>> mAudioVolumeGroupCallbacks GUARDED_BY(mMutex);
    };

    static audio_io_handle_t getOutput(audio_stream_type_t stream);
+6 −2
Original line number Diff line number Diff line
@@ -230,6 +230,9 @@ private:
        // NEW ZEALAND supervisory tones
        TONE_NZ_CALL_WAITING,       // Call waiting tone: 400 Hz,  0.2s ON, 3s OFF,
                                    //        0.2s ON, 3s OFF, 0.2s ON, 3s OFF, 0.2s ON
        // MALAYSIA supervisory tones
        TONE_MY_CONGESTION,         // Congestion tone: 425 Hz, 500ms ON, 250ms OFF...
        TONE_MY_RINGTONE,           // Ring tone: 425 Hz, 400ms ON 200ms OFF 400ms ON 2s OFF..
        NUM_ALTERNATE_TONES
    };

@@ -244,6 +247,7 @@ private:
        INDIA,
        TAIWAN,
        NZ,
        MY,
        CEPT,
        NUM_REGIONS
    };
+11 −9
Original line number Diff line number Diff line
@@ -250,7 +250,8 @@ std::optional<CameraMetadata> initCameraCharacteristics(
          .setRequestPartialResultCount(1)
          .setPipelineMaxDepth(kPipelineMaxDepth)
          .setSyncMaxLatency(ANDROID_SYNC_MAX_LATENCY_UNKNOWN)
          .setAvailableRequestKeys({ANDROID_CONTROL_CAPTURE_INTENT,
          .setAvailableRequestKeys({ANDROID_COLOR_CORRECTION_ABERRATION_MODE,
                                    ANDROID_CONTROL_CAPTURE_INTENT,
                                    ANDROID_CONTROL_AE_MODE,
                                    ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,
                                    ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
@@ -265,19 +266,20 @@ std::optional<CameraMetadata> initCameraCharacteristics(
                                    ANDROID_CONTROL_SCENE_MODE,
                                    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,
                                    ANDROID_CONTROL_ZOOM_RATIO,
                                    ANDROID_STATISTICS_FACE_DETECT_MODE,
                                    ANDROID_FLASH_MODE,
                                    ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,
                                    ANDROID_JPEG_QUALITY,
                                    ANDROID_JPEG_THUMBNAIL_QUALITY})
                                    ANDROID_JPEG_THUMBNAIL_QUALITY,
                                    ANDROID_NOISE_REDUCTION_MODE,
                                    ANDROID_STATISTICS_FACE_DETECT_MODE})
          .setAvailableResultKeys(
              {ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
               ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE,
               ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE,
               ANDROID_FLASH_MODE, ANDROID_FLASH_STATE,
              {ANDROID_COLOR_CORRECTION_ABERRATION_MODE, ANDROID_CONTROL_AE_MODE,
               ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE,
               ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_EFFECT_MODE,
               ANDROID_CONTROL_MODE, ANDROID_FLASH_MODE, ANDROID_FLASH_STATE,
               ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, ANDROID_JPEG_QUALITY,
               ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_SENSOR_TIMESTAMP,
               ANDROID_LENS_FOCAL_LENGTH})
               ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_LENS_FOCAL_LENGTH,
               ANDROID_SENSOR_TIMESTAMP, ANDROID_NOISE_REDUCTION_MODE})
          .setAvailableCapabilities(
              {ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE});

Loading