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

Commit 10b32a70 authored by Shunkai Yao's avatar Shunkai Yao Committed by Gerrit Code Review
Browse files

Merge "Effect AIDL Check visualizer latency parameter"

parents 56049676 c045a03e
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -101,7 +101,10 @@ ndk::ScopedAStatus VisualizerImpl::setOnlyParameter(
    auto tag = param.getTag();
    switch (tag) {
        case Visualizer::SetOnlyParameters::latencyMs: {
            mContext->setDownstreamLatency(param.get<Visualizer::SetOnlyParameters::latencyMs>());
            RETURN_IF(mContext->setDownstreamLatency(
                              param.get<Visualizer::SetOnlyParameters::latencyMs>()) !=
                              RetCode::SUCCESS,
                      EX_ILLEGAL_ARGUMENT, "setLatencyFailed");
            break;
        }
        default: {
+5 −0
Original line number Diff line number Diff line
@@ -122,6 +122,11 @@ Visualizer::ScalingMode VisualizerContext::getScalingMode() {
}

RetCode VisualizerContext::setDownstreamLatency(int latency) {
    if (latency < 0 || (unsigned)latency > kMaxLatencyMs) {
        LOG(ERROR) << __func__ << " latency " << latency << " exceed valid range: 0 - "
                   << kMaxLatencyMs;
        return RetCode::ERROR_ILLEGAL_PARAMETER;
    }
    std::lock_guard lg(mMutex);
    mDownstreamLatency = latency;
    return RetCode::SUCCESS;
+6 −7
Original line number Diff line number Diff line
@@ -78,22 +78,21 @@ class VisualizerContext final : public EffectContext {
    std::mutex mMutex;
    Parameter::Common mCommon GUARDED_BY(mMutex);
    State mState GUARDED_BY(mMutex) = State::UNINITIALIZED;
    uint32_t mCaptureIdx GUARDED_BY(mMutex);
    uint32_t mLastCaptureIdx GUARDED_BY(mMutex);
    uint32_t mCaptureIdx GUARDED_BY(mMutex) = 0;
    uint32_t mLastCaptureIdx GUARDED_BY(mMutex) = 0;
    Visualizer::ScalingMode mScalingMode GUARDED_BY(mMutex) = Visualizer::ScalingMode::NORMALIZED;
    struct timespec mBufferUpdateTime GUARDED_BY(mMutex);
    // capture buf with 8 bits PCM
    std::array<uint8_t, kMaxCaptureBufSize> mCaptureBuf GUARDED_BY(mMutex);
    // no mutex, only accessed by parameters
    uint32_t mDownstreamLatency;
    uint32_t mCaptureSamples = kMaxCaptureBufSize;
    uint32_t mDownstreamLatency GUARDED_BY(mMutex) = 0;
    uint32_t mCaptureSamples GUARDED_BY(mMutex) = kMaxCaptureBufSize;

    // to avoid recomputing it every time a buffer is processed
    uint8_t mChannelCount GUARDED_BY(mMutex);
    uint8_t mChannelCount GUARDED_BY(mMutex) = 0;
    Visualizer::MeasurementMode mMeasurementMode GUARDED_BY(mMutex) =
            Visualizer::MeasurementMode::NONE;
    uint8_t mMeasurementWindowSizeInBuffers = kMeasurementWindowMaxSizeInBuffers;
    uint8_t mMeasurementBufferIdx GUARDED_BY(mMutex);
    uint8_t mMeasurementBufferIdx GUARDED_BY(mMutex) = 0;
    std::array<BufferStats, kMeasurementWindowMaxSizeInBuffers> mPastMeasurements;
    void init_params();