1 #pragma once 2 3 #include <QObject> 4 5 #include "effects/effectmanifest.h" 6 7 class EqualizerUtil { 8 public: 9 // Creates common EQ parameters like low/mid/high gain and kill buttons. createCommonParameters(EffectManifest * pManifest,bool linear)10 static void createCommonParameters(EffectManifest* pManifest, bool linear) { 11 EffectManifestParameter::ControlHint controlHint = 12 EffectManifestParameter::ControlHint::KNOB_LOGARITHMIC; 13 double maximum = 4.0; 14 if (linear) { 15 controlHint = EffectManifestParameter::ControlHint::KNOB_LINEAR; 16 maximum = 2.0; 17 } 18 19 EffectManifestParameterPointer low = pManifest->addParameter(); 20 low->setId("low"); 21 low->setName(QObject::tr("Low")); 22 low->setDescription(QObject::tr("Gain for Low Filter")); 23 low->setControlHint(controlHint); 24 low->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 25 low->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 26 low->setNeutralPointOnScale(0.5); 27 low->setDefault(1.0); 28 low->setMinimum(0); 29 low->setMaximum(maximum); 30 31 EffectManifestParameterPointer killLow = pManifest->addParameter(); 32 killLow->setId("killLow"); 33 killLow->setName(QObject::tr("Kill Low")); 34 killLow->setDescription(QObject::tr("Kill the Low Filter")); 35 killLow->setControlHint(EffectManifestParameter::ControlHint::TOGGLE_STEPPING); 36 killLow->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 37 killLow->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 38 killLow->setDefault(0); 39 killLow->setMinimum(0); 40 killLow->setMaximum(1); 41 42 EffectManifestParameterPointer mid = pManifest->addParameter(); 43 mid->setId("mid"); 44 mid->setName(QObject::tr("Mid")); 45 mid->setDescription(QObject::tr("Gain for Mid Filter")); 46 mid->setControlHint(controlHint); 47 mid->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 48 mid->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 49 mid->setNeutralPointOnScale(0.5); 50 mid->setDefault(1.0); 51 mid->setMinimum(0); 52 mid->setMaximum(maximum); 53 54 EffectManifestParameterPointer killMid = pManifest->addParameter(); 55 killMid->setId("killMid"); 56 killMid->setName(QObject::tr("Kill Mid")); 57 killMid->setDescription(QObject::tr("Kill the Mid Filter")); 58 killMid->setControlHint(EffectManifestParameter::ControlHint::TOGGLE_STEPPING); 59 killMid->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 60 killMid->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 61 killMid->setDefault(0); 62 killMid->setMinimum(0); 63 killMid->setMaximum(1); 64 65 EffectManifestParameterPointer high = pManifest->addParameter(); 66 high->setId("high"); 67 high->setName(QObject::tr("High")); 68 high->setDescription(QObject::tr("Gain for High Filter")); 69 high->setControlHint(controlHint); 70 high->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 71 high->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 72 high->setNeutralPointOnScale(0.5); 73 high->setDefault(1.0); 74 high->setMinimum(0); 75 high->setMaximum(maximum); 76 77 EffectManifestParameterPointer killHigh = pManifest->addParameter(); 78 killHigh->setId("killHigh"); 79 killHigh->setName(QObject::tr("Kill High")); 80 killHigh->setDescription(QObject::tr("Kill the High Filter")); 81 killHigh->setControlHint(EffectManifestParameter::ControlHint::TOGGLE_STEPPING); 82 killHigh->setSemanticHint(EffectManifestParameter::SemanticHint::UNKNOWN); 83 killHigh->setUnitsHint(EffectManifestParameter::UnitsHint::UNKNOWN); 84 killHigh->setDefault(0); 85 killHigh->setMinimum(0); 86 killHigh->setMaximum(1); 87 } 88 adjustFrequencyShelvesTip()89 static QString adjustFrequencyShelvesTip() { 90 return QObject::tr( 91 "To adjust frequency shelves, go to Preferences -> Equalizers."); 92 } 93 }; 94