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

Commit 395096c6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Initialize volume level of volume control effect as lowest level."

parents 8dd5e1a4 4e24653e
Loading
Loading
Loading
Loading
+25 −17
Original line number Original line Diff line number Diff line
@@ -1058,6 +1058,13 @@ status_t AudioFlinger::EffectModule::configure()
                    &size,
                    &size,
                    &cmdStatus);
                    &cmdStatus);
        }
        }

        if (isVolumeControl()) {
            // Force initializing the volume as 0 for volume control effect for safer ramping
            uint32_t left = 0;
            uint32_t right = 0;
            setVolumeInternal(&left, &right, true /*controller*/);
        }
    }
    }


    // mConfig.outputCfg.buffer.frameCount cannot be zero.
    // mConfig.outputCfg.buffer.frameCount cannot be zero.
@@ -1431,15 +1438,17 @@ status_t AudioFlinger::EffectModule::setVolume(uint32_t *left, uint32_t *right,
            ((mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_CTRL ||
            ((mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_CTRL ||
             (mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_IND ||
             (mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_IND ||
             (mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_MONITOR)) {
             (mDescriptor.flags & EFFECT_FLAG_VOLUME_MASK) == EFFECT_FLAG_VOLUME_MONITOR)) {
        uint32_t volume[2];
        status = setVolumeInternal(left, right, controller);
        uint32_t *pVolume = NULL;
    }
        uint32_t size = sizeof(volume);
    return status;
        volume[0] = *left;
        volume[1] = *right;
        if (controller) {
            pVolume = volume;
}
}
        status = mEffectInterface->command(EFFECT_CMD_SET_VOLUME,

status_t AudioFlinger::EffectModule::setVolumeInternal(
        uint32_t *left, uint32_t *right, bool controller) {
    uint32_t volume[2] = {*left, *right};
    uint32_t *pVolume = controller ? volume : nullptr;
    uint32_t size = sizeof(volume);
    status_t status = mEffectInterface->command(EFFECT_CMD_SET_VOLUME,
                                                size,
                                                size,
                                                volume,
                                                volume,
                                                &size,
                                                &size,
@@ -1448,7 +1457,6 @@ status_t AudioFlinger::EffectModule::setVolume(uint32_t *left, uint32_t *right,
        *left = volume[0];
        *left = volume[0];
        *right = volume[1];
        *right = volume[1];
    }
    }
    }
    return status;
    return status;
}
}


+2 −0
Original line number Original line Diff line number Diff line
@@ -306,6 +306,8 @@ private:
                ? EFFECT_BUFFER_ACCESS_WRITE : EFFECT_BUFFER_ACCESS_ACCUMULATE;
                ? EFFECT_BUFFER_ACCESS_WRITE : EFFECT_BUFFER_ACCESS_ACCUMULATE;
    }
    }


    status_t setVolumeInternal(uint32_t *left, uint32_t *right, bool controller);



    effect_config_t     mConfig;    // input and output audio configuration
    effect_config_t     mConfig;    // input and output audio configuration
    sp<EffectHalInterface> mEffectInterface; // Effect module HAL
    sp<EffectHalInterface> mEffectInterface; // Effect module HAL