Example #1
0
bool EnvironmentalReverb::getParameters(CMdaAudioOutputStream *stream,
    QList<EffectParameter>& parameters)
{
    bool supported = false;

    QScopedPointer<CEnvironmentalReverb> effect;
    TRAPD(err, effect.reset(CEnvironmentalReverb::NewL(*stream)));

    if (KErrNone == err) {
        supported = true;

        TInt32 min, max;
        TUint32 umin, umax;

        effect->DecayHFRatioRange(umin, umax);
        //: DecayHFRatio: Ratio of high-frequency decay time to the value specified by
        //: DecayTime.
        parameters.append(createParameter(
            DecayHFRatio, tr("Decay HF ratio (%)"), effect->DecayHFRatio(),
            umin, umax));

        effect->DecayTimeRange(umin, umax);
        //: DecayTime: Time over which reverberation is diminished.
        parameters.append(createParameter(
            DecayTime, tr("Decay time (ms)"), effect->DecayTime(),
            umin, umax));

        //: Density Delay between first and subsequent reflections.
        //: Note that the S60 platform documentation does not make clear
        //: the distinction between this value and the Diffusion value.
        parameters.append(createParameter(
            Density, tr("Density (%)"), effect->Density(), 0, 100));

        //: Diffusion: Delay between first and subsequent reflections.
        //: Note that the S60 platform documentation does not make clear
        //: the distinction between this value and the Density value.
        parameters.append(createParameter(
            Diffusion, tr("Diffusion (%)"), effect->Diffusion(), 0, 100));

        //: ReflectionsDelay: Amount of delay between the arrival of the direct
        //: path from the source and the arrival of the first reflection.
        parameters.append(createParameter(
            ReflectionsDelay, tr("Reflections delay (ms)"),
            effect->ReflectionsDelay(), 0, effect->ReflectionsDelayMax()));

        effect->ReflectionLevelRange(min, max);
        //: ReflectionsLevel: Amplitude of reflections. This value is
        //: corrected by the RoomLevel to give the final reflection amplitude.
        parameters.append(createParameter(
            ReflectionsLevel, tr("Reflections level (mB)"),
            effect->ReflectionsLevel(),
            min, max, EffectParameter::LogarithmicHint));

        //: ReverbDelay: Amount of time between arrival of the first
        //: reflection and start of the late reverberation.
        parameters.append(createParameter(
            ReverbDelay, tr("Reverb delay (ms)"), effect->ReverbDelay(),
            0, effect->ReverbDelayMax()));

        effect->ReverbLevelRange(min, max);
        //: ReverbLevel: Amplitude of reverberations.  This value is
        //: corrected by the RoomLevel to give the final reverberation
        //: amplitude.
        parameters.append(createParameter(
            ReverbLevel, tr("Reverb level (mB)"), effect->ReverbLevel(),
            min, max, EffectParameter::LogarithmicHint));

        effect->RoomHFLevelRange(min, max);
        //: RoomHFLevel: Amplitude of low-pass filter used to attenuate the
        //: high frequency component of reflected sound.
        parameters.append(createParameter(
            RoomHFLevel, tr("Room HF level"), effect->RoomHFLevel(),
            min, max));

        effect->RoomLevelRange(min, max);
        //: RoomLevel: Master volume control for all reflected sound.
        parameters.append(createParameter(
            RoomLevel, tr("Room level (mB)"), effect->RoomLevel(),
            min, max, EffectParameter::LogarithmicHint));
    }

    return supported;
}