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