Example #1
0
EngineEffect::EngineEffect(const EffectManifest& manifest,
                           const QSet<QString>& registeredGroups,
                           EffectInstantiatorPointer pInstantiator)
        : m_manifest(manifest),
          m_bEnabled(true),
          m_parameters(manifest.parameters().size()),
          m_buttonParameters(manifest.buttonParameters().size()) {
    const QList<EffectManifestParameter>& parameters = m_manifest.parameters();
    for (int i = 0; i < parameters.size(); ++i) {
        const EffectManifestParameter& parameter = parameters.at(i);
        EngineEffectParameter* pParameter =
                new EngineEffectParameter(parameter);
        m_parameters[i] = pParameter;
        m_parametersById[parameter.id()] = pParameter;
    }

    const QList<EffectManifestParameter>& buttonParameters =
                                                m_manifest.buttonParameters();
    for (int i = 0; i < buttonParameters.size(); ++i) {
        const EffectManifestParameter& parameter = buttonParameters.at(i);
        EngineEffectParameter* pParameter =
                new EngineEffectParameter(parameter);
        m_buttonParameters[i] = pParameter;
        m_buttonParametersById[parameter.id()] = pParameter;
    }

    // Creating the processor must come last.
    m_pProcessor = pInstantiator->instantiate(this, manifest);
    m_pProcessor->initialize(registeredGroups);
}
Example #2
0
EngineEffect::EngineEffect(const EffectManifest& manifest,
                           const QSet<ChannelHandleAndGroup>& registeredChannels,
                           EffectInstantiatorPointer pInstantiator)
        : m_manifest(manifest),
          m_enableState(EffectProcessor::ENABLING),
          m_parameters(manifest.parameters().size()) {
    const QList<EffectManifestParameter>& parameters = m_manifest.parameters();
    for (int i = 0; i < parameters.size(); ++i) {
        const EffectManifestParameter& parameter = parameters.at(i);
        EngineEffectParameter* pParameter =
                new EngineEffectParameter(parameter);
        m_parameters[i] = pParameter;
        m_parametersById[parameter.id()] = pParameter;
    }

    // Creating the processor must come last.
    m_pProcessor = pInstantiator->instantiate(this, manifest);
    m_pProcessor->initialize(registeredChannels);
    m_effectRampsFromDry = manifest.effectRampsFromDry();
}
// static
EffectManifest ThreeBandBiquadEQEffect::getManifest() {
    EffectManifest manifest;
    manifest.setId(getId());
    manifest.setName(QObject::tr("Biquad Equalizer"));
    manifest.setShortName(QObject::tr("BQ EQ"));
    manifest.setAuthor("The Mixxx Team");
    manifest.setVersion("1.0");
    manifest.setDescription(QObject::tr(
        "A 3-band Equalizer with two biquad bell filters, a shelving high pass and kill switches.") +
        " " + EqualizerUtil::adjustFrequencyShelvesTip());
    manifest.setEffectRampsFromDry(true);
    manifest.setIsMixingEQ(true);

    EqualizerUtil::createCommonParameters(&manifest);

    for (auto&& parameter : manifest.parameters()) {
        if (parameter.id() == "low" || parameter.id() == "mid" ||
                parameter.id() == "high") {
            parameter.setControlHint(EffectManifestParameter::ControlHint::KNOB_LINEAR);
            parameter.setMaximum(2.0);
        }
    }
    return manifest;
}