Skip to content

Commit 5fb1ea5

Browse files
author
ThePBone
committed
Rewrite eq, dynsys and colm preset lookup method
1 parent bb85b14 commit 5fb1ea5

File tree

4 files changed

+164
-156
lines changed

4 files changed

+164
-156
lines changed

V4L_Frontend.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ HEADERS += \
110110
misc/converter.h \
111111
misc/eventfilter.h \
112112
misc/findbinary.h \
113+
misc/initializableqmap.h \
113114
misc/loghelper.h \
114115
misc/mathfunctions.h \
115116
misc/overlaymsgproxy.h \

mainwindow.cpp

Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -838,24 +838,24 @@ void MainWindow::EqPresetSelectionUpdated(){
838838
else ResetEQ();
839839
}
840840
void MainWindow::DynsysPresetSelectionUpdated(){
841-
const int* data = EQ::lookupDynsysPreset(ui->dynsys_preset->currentText());
842-
if(data==nullptr)return;
841+
const auto data = EQ::lookupDynsysPreset(ui->dynsys_preset->currentText());
842+
if(data.size() <= 1)return;
843843
lockapply=true;
844-
ui->dyn_xcoeff1->setValue(data[0]);
845-
ui->dyn_xcoeff2->setValue(data[1]);
846-
ui->dyn_ycoeff1->setValue(data[2]);
847-
ui->dyn_ycoeff2->setValue(data[3]);
848-
ui->dyn_sidegain1->setValue(data[4]);
849-
ui->dyn_sidegain2->setValue(data[5]);
844+
ui->dyn_xcoeff1->setValue(data.begin()[0]);
845+
ui->dyn_xcoeff2->setValue(data.begin()[1]);
846+
ui->dyn_ycoeff1->setValue(data.begin()[2]);
847+
ui->dyn_ycoeff2->setValue(data.begin()[3]);
848+
ui->dyn_sidegain1->setValue(data.begin()[4]);
849+
ui->dyn_sidegain2->setValue(data.begin()[5]);
850850
lockapply=false;
851851
OnUpdate(true);
852852
}
853853
void MainWindow::ColmPresetSelectionUpdated(){
854854
QString selection = ui->colmpreset->text();
855-
const int* data = EQ::lookupColmPreset(selection);
855+
const auto data = EQ::lookupColmPreset(selection);
856856
lockapply=true;
857-
ui->colmwide->setValue(data[0]);
858-
ui->colmdepth->setValue(data[1]);
857+
ui->colmwide->setValue(data.begin()[0]);
858+
ui->colmdepth->setValue(data.begin()[1]);
859859
lockapply=false;
860860
OnUpdate(true);
861861
}
@@ -984,51 +984,52 @@ void MainWindow::UpdateTooltipLabelUnit(QObject* sender,QString text,bool viasig
984984
w->setToolTip(text);
985985
if(viasignal)ui->info->setText(text);
986986
}
987+
#define VAL_OBJ_PAIR(x) ui->x->value(),ui->x
987988
void MainWindow::UpdateAllUnitLabels(){
988-
UpdateUnitLabel(ui->colmwide->value(),ui->colmwide);
989-
UpdateUnitLabel(ui->colmdepth->value(),ui->colmdepth);
990-
UpdateUnitLabel(ui->colmmidimg->value(),ui->colmmidimg);
991-
UpdateUnitLabel(ui->vcmode->value(),ui->vcmode);
992-
UpdateUnitLabel(ui->vclvl->value(),ui->vclvl);
993-
UpdateUnitLabel(ui->vbmode->value(),ui->vbmode);
994-
UpdateUnitLabel(ui->vbfreq->value(),ui->vbfreq);
995-
UpdateUnitLabel(ui->vbgain->value(),ui->vbgain);
996-
UpdateUnitLabel(ui->vhplvl->value(),ui->vhplvl);
997-
UpdateUnitLabel(ui->difflvl->value(),ui->difflvl);
998-
UpdateUnitLabel(ui->roomsize->value(),ui->roomsize);
999-
UpdateUnitLabel(ui->roomwidth->value(),ui->roomwidth);
1000-
UpdateUnitLabel(ui->roomdamp->value(),ui->roomdamp);
1001-
UpdateUnitLabel(ui->wet->value(),ui->wet);
1002-
UpdateUnitLabel(ui->dry->value(),ui->dry);
1003-
UpdateUnitLabel(ui->gain->value(),ui->gain);
1004-
UpdateUnitLabel(ui->maxgain->value(),ui->maxgain);
1005-
UpdateUnitLabel(ui->maxvol->value(),ui->maxvol);
1006-
UpdateUnitLabel(ui->limiter->value(),ui->limiter);
1007-
UpdateUnitLabel(ui->outputpan->value(),ui->outputpan);
1008-
UpdateUnitLabel(ui->outvolume->value(),ui->outvolume);
1009-
UpdateUnitLabel(ui->comp_thres->value(),ui->comp_thres);
1010-
UpdateUnitLabel(ui->compgain->value(),ui->compgain);
1011-
UpdateUnitLabel(ui->compwidth->value(),ui->compwidth);
1012-
UpdateUnitLabel(ui->comp_ratio->value(),ui->comp_ratio);
1013-
UpdateUnitLabel(ui->compattack->value(),ui->compattack);
1014-
UpdateUnitLabel(ui->comprelease->value(),ui->comprelease);
1015-
UpdateUnitLabel(ui->a_adapt->value(),ui->a_adapt);
1016-
UpdateUnitLabel(ui->a_crest->value(),ui->a_crest);
1017-
UpdateUnitLabel(ui->a_maxatk->value(),ui->a_maxatk);
1018-
UpdateUnitLabel(ui->a_maxrel->value(),ui->a_maxrel);
1019-
UpdateUnitLabel(ui->a_kneewidth->value(),ui->a_kneewidth);
1020-
UpdateUnitLabel(ui->vcurelvl->value(),ui->vcurelvl);
1021-
UpdateUnitLabel(ui->axmode->value(),ui->axmode);
1022-
UpdateUnitLabel(ui->barkcon->value(),ui->barkcon);
1023-
UpdateUnitLabel(ui->barkfreq->value(),ui->barkfreq);
1024-
UpdateUnitLabel(ui->convcc->value(),ui->convcc);
1025-
UpdateUnitLabel(ui->dyn_xcoeff1->value(),ui->dyn_xcoeff1);
1026-
UpdateUnitLabel(ui->dyn_xcoeff2->value(),ui->dyn_xcoeff2);
1027-
UpdateUnitLabel(ui->dyn_ycoeff1->value(),ui->dyn_ycoeff1);
1028-
UpdateUnitLabel(ui->dyn_ycoeff2->value(),ui->dyn_ycoeff2);
1029-
UpdateUnitLabel(ui->dyn_sidegain1->value(),ui->dyn_sidegain1);
1030-
UpdateUnitLabel(ui->dyn_sidegain2->value(),ui->dyn_sidegain2);
1031-
UpdateUnitLabel(ui->dyn_bassgain->value(),ui->dyn_bassgain);
989+
UpdateUnitLabel(VAL_OBJ_PAIR(colmwide));
990+
UpdateUnitLabel(VAL_OBJ_PAIR(colmdepth));
991+
UpdateUnitLabel(VAL_OBJ_PAIR(colmmidimg));
992+
UpdateUnitLabel(VAL_OBJ_PAIR(vcmode));
993+
UpdateUnitLabel(VAL_OBJ_PAIR(vclvl));
994+
UpdateUnitLabel(VAL_OBJ_PAIR(vbmode));
995+
UpdateUnitLabel(VAL_OBJ_PAIR(vbfreq));
996+
UpdateUnitLabel(VAL_OBJ_PAIR(vbgain));
997+
UpdateUnitLabel(VAL_OBJ_PAIR(vhplvl));
998+
UpdateUnitLabel(VAL_OBJ_PAIR(difflvl));
999+
UpdateUnitLabel(VAL_OBJ_PAIR(roomsize));
1000+
UpdateUnitLabel(VAL_OBJ_PAIR(roomwidth));
1001+
UpdateUnitLabel(VAL_OBJ_PAIR(roomdamp));
1002+
UpdateUnitLabel(VAL_OBJ_PAIR(wet));
1003+
UpdateUnitLabel(VAL_OBJ_PAIR(dry));
1004+
UpdateUnitLabel(VAL_OBJ_PAIR(gain));
1005+
UpdateUnitLabel(VAL_OBJ_PAIR(maxgain));
1006+
UpdateUnitLabel(VAL_OBJ_PAIR(maxvol));
1007+
UpdateUnitLabel(VAL_OBJ_PAIR(limiter));
1008+
UpdateUnitLabel(VAL_OBJ_PAIR(outputpan));
1009+
UpdateUnitLabel(VAL_OBJ_PAIR(outvolume));
1010+
UpdateUnitLabel(VAL_OBJ_PAIR(comp_thres));
1011+
UpdateUnitLabel(VAL_OBJ_PAIR(compgain));
1012+
UpdateUnitLabel(VAL_OBJ_PAIR(compwidth));
1013+
UpdateUnitLabel(VAL_OBJ_PAIR(comp_ratio));
1014+
UpdateUnitLabel(VAL_OBJ_PAIR(compattack));
1015+
UpdateUnitLabel(VAL_OBJ_PAIR(comprelease));
1016+
UpdateUnitLabel(VAL_OBJ_PAIR(a_adapt));
1017+
UpdateUnitLabel(VAL_OBJ_PAIR(a_crest));
1018+
UpdateUnitLabel(VAL_OBJ_PAIR(a_maxatk));
1019+
UpdateUnitLabel(VAL_OBJ_PAIR(a_maxrel));
1020+
UpdateUnitLabel(VAL_OBJ_PAIR(a_kneewidth));
1021+
UpdateUnitLabel(VAL_OBJ_PAIR(vcurelvl));
1022+
UpdateUnitLabel(VAL_OBJ_PAIR(axmode));
1023+
UpdateUnitLabel(VAL_OBJ_PAIR(barkcon));
1024+
UpdateUnitLabel(VAL_OBJ_PAIR(barkfreq));
1025+
UpdateUnitLabel(VAL_OBJ_PAIR(convcc));
1026+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_xcoeff1));
1027+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_xcoeff2));
1028+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_ycoeff1));
1029+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_ycoeff2));
1030+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_sidegain1));
1031+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_sidegain2));
1032+
UpdateUnitLabel(VAL_OBJ_PAIR(dyn_bassgain));
10321033
}
10331034

10341035
//---Helper

misc/initializableqmap.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifndef INITIALIZABLEQMAP_H
2+
#define INITIALIZABLEQMAP_H
3+
#include <QMap>
4+
5+
template <class Key, class T> class InitializableQMap : public QMap<Key,T>
6+
{
7+
public:
8+
inline InitializableQMap<Key,T> &operator<< (const QPair<Key,T> &t)
9+
{ this->insert(t.first,t.second); return *this; }
10+
};
11+
12+
#endif // INITIALIZABLEQMAP_H

misc/presetextension.h

Lines changed: 95 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -15,113 +15,107 @@
1515
#ifndef PRESETEXTENSION_H
1616
#define PRESETEXTENSION_H
1717
#include <QString>
18+
#include <QMap>
19+
#include "initializableqmap.h"
20+
21+
#define FLOAT_LIST std::initializer_list<float>
22+
#define INT_LIST std::initializer_list<int>
23+
24+
#define EQ_UNIT QString,FLOAT_LIST
25+
#define DYNSYS_UNIT QString,INT_LIST
26+
#define COLM_UNIT QString,INT_LIST
27+
1828
namespace EQ {
19-
inline const std::initializer_list<float> lookupEQPreset(QString preset){
20-
if(preset == "Pop")
21-
return std::initializer_list<float>({0,0,0,1.25,2.50,5.00,-1.50,-3.00,-3.00,-3.00});
22-
else if(preset == "Rock")
23-
return std::initializer_list<float>({0,0,3.00,-10.00,-1.50,0.75,3.00,3.00,3.00,3.00});
24-
else if(preset == "Jazz")
25-
return std::initializer_list<float>({0,0,2.73,6.00,-6.00,-2.50,2.50,-0.75,-0.75,-0.75});
26-
else if(preset == "Classic")
27-
return std::initializer_list<float>({0,0,-9.00,0,1.50,0,0,9.00,9.00,9.00});
28-
else if(preset == "Bass")
29-
return std::initializer_list<float>({11.50,8.50,5.00,2.00,0,0,0,0,0,0});
30-
else if(preset == "Clear")
31-
return std::initializer_list<float>({3.50,6.50,9.50,6.50,3.50,1.25,5.00,9.00,11.00,9.00});
32-
else if(preset == "Volume Boost")
33-
return std::initializer_list<float>({12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00});
34-
else if(preset == "Hip-Hop")
35-
return std::initializer_list<float>({4.50,4.00,1.50,3.00,-1.50,-1.50,1.50,-1.00,1.50,3.00});
36-
else if(preset == "Dubstep")
37-
return std::initializer_list<float>({12.00,0.50,-2.00,-5.00,-5.00,-4.50,-2.50,0,-3.00,-.050});
38-
else if(preset == "Movie")
39-
return std::initializer_list<float>({3.00,6.00,9.00,7.00,6.00,5.00,6.00,3.50,10.50,8.00});
40-
else if(preset == "Metal")
41-
return std::initializer_list<float>({10.50,7.50,0,5.50,0,0,6.00,0,9.00,12.00});
42-
else if(preset == "Vocal Booster")
43-
return std::initializer_list<float>({-1.50,-3.00,-3.00,1.50,3.50,3.50,3.00,1.50,0,-1.50});
44-
else if(preset == "Hardstyle")
45-
return std::initializer_list<float>({6.00,12.00,0,-12.00,3.00,6.50,0,-4.50,-8.00,-10.50});
46-
else if(preset == "Acoustic")
47-
return std::initializer_list<float>({5.00,4.50,3.50,1.00,1.50,1.50,3.00,3.50,3.00,3.00});
48-
else if(preset == "R&B")
49-
return std::initializer_list<float>({3.00,7.00,6.00,1.50,-2.00,-1.50,2.00,3.00,3.50,4.00});
50-
else if(preset == "Electronic")
51-
return std::initializer_list<float>({4.00,3.50,0.50,-0.50,-2.00,1.50,0,0.50,3.00,4.50});
52-
else if(preset == "Deep Bass")
53-
return std::initializer_list<float>({12.00,0,-12.00,-9.00,-3.50,-6.00,0,-5.00,0,3.00});
54-
else if(preset == "Beats")
55-
return std::initializer_list<float>({-5.50,-4.50,-4.00,-3.00,-1.50,0,0,0,0,0});
56-
else if(preset == "Soft Bass")
57-
return std::initializer_list<float>({12.00,10.34,9.00,7.00,6.00,5.00,6.00,3.50,10.50,8.00});
58-
return std::initializer_list<float>({});
29+
inline const QMap<EQ_UNIT> EQ_LOOKUP_TABLE(){
30+
InitializableQMap<EQ_UNIT> table;
31+
table << QPair<EQ_UNIT>("Default",FLOAT_LIST({0,0,0,0,0,0,0,0,0,0}))
32+
<< QPair<EQ_UNIT>("Pop",FLOAT_LIST({0,0,0,1.25,2.50,5.00,-1.50,-3.00,-3.00,-3.00}))
33+
<< QPair<EQ_UNIT>("Rock",FLOAT_LIST({0,0,3.00,-10.00,-1.50,0.75,3.00,3.00,3.00,3.00}))
34+
<< QPair<EQ_UNIT>("Jazz",FLOAT_LIST({0,0,2.73,6.00,-6.00,-2.50,2.50,-0.75,-0.75,-0.75}))
35+
<< QPair<EQ_UNIT>("Classic",FLOAT_LIST({0,0,-9.00,0,1.50,0,0,9.00,9.00,9.00}))
36+
<< QPair<EQ_UNIT>("Bass",FLOAT_LIST({11.50,8.50,5.00,2.00,0,0,0,0,0,0}))
37+
<< QPair<EQ_UNIT>("Clear",FLOAT_LIST({0,0,0,1.25,2.50,5.00,-1.50,-3.00,-3.00,-3.00}))
38+
<< QPair<EQ_UNIT>("Volume Boost",FLOAT_LIST({12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00,12.00}))
39+
<< QPair<EQ_UNIT>("Hip-Hop",FLOAT_LIST({4.50,4.00,1.50,3.00,-1.50,-1.50,1.50,-1.00,1.50,3.00}))
40+
<< QPair<EQ_UNIT>("Dubstep",FLOAT_LIST({12.00,0.50,-2.00,-5.00,-5.00,-4.50,-2.50,0,-3.00,-.050}))
41+
<< QPair<EQ_UNIT>("Movie",FLOAT_LIST({3.00,6.00,9.00,7.00,6.00,5.00,6.00,3.50,10.50,8.00}))
42+
<< QPair<EQ_UNIT>("Metal",FLOAT_LIST({10.50,7.50,0,5.50,0,0,6.00,0,9.00,12.00}))
43+
<< QPair<EQ_UNIT>("Vocal Booster",FLOAT_LIST({-1.50,-3.00,-3.00,1.50,3.50,3.50,3.00,1.50,0,-1.50}))
44+
<< QPair<EQ_UNIT>("Hardstyle",FLOAT_LIST({6.00,12.00,0,-12.00,3.00,6.50,0,-4.50,-8.00,-10.50}))
45+
<< QPair<EQ_UNIT>("Acoustic",FLOAT_LIST({5.00,4.50,3.50,1.00,1.50,1.50,3.00,3.50,3.00,3.00}))
46+
<< QPair<EQ_UNIT>("R&B",FLOAT_LIST({3.00,7.00,6.00,1.50,-2.00,-1.50,2.00,3.00,3.50,4.00}))
47+
<< QPair<EQ_UNIT>("Electronic",FLOAT_LIST({4.00,3.50,0.50,-0.50,-2.00,1.50,0,0.50,3.00,4.50}))
48+
<< QPair<EQ_UNIT>("Deep Bass",FLOAT_LIST({12.00,0,-12.00,-9.00,-3.50,-6.00,0,-5.00,0,3.00}))
49+
<< QPair<EQ_UNIT>("Beats",FLOAT_LIST({-5.50,-4.50,-4.00,-3.00,-1.50,0,0,0,0,0}))
50+
<< QPair<EQ_UNIT>("Soft Bass",FLOAT_LIST({12.00,10.34,9.00,7.00,6.00,5.00,6.00,3.50,10.50,8.00}));
51+
return std::move(table);
52+
}
53+
54+
inline const QMap<DYNSYS_UNIT> DYNSYS_LOOKUP_TABLE(){
55+
InitializableQMap<DYNSYS_UNIT> table;
56+
table << QPair<DYNSYS_UNIT>("Unknown",INT_LIST({0}))
57+
<< QPair<DYNSYS_UNIT>("Extreme Headphone (v2)",INT_LIST({140,6200,40,60,10,80}))
58+
<< QPair<DYNSYS_UNIT>("High-end Headphone (v2)",INT_LIST({180,5800,55,80,10,70}))
59+
<< QPair<DYNSYS_UNIT>("Common Headphone (v2)",INT_LIST({300,5600,60,105,10,50}))
60+
<< QPair<DYNSYS_UNIT>("Low-end Headphone (v2)",INT_LIST({600,5400,60,105,10,20}))
61+
<< QPair<DYNSYS_UNIT>("Common Earphone (v2)",INT_LIST({100,5600,40,80,50,50}))
62+
<< QPair<DYNSYS_UNIT>("Extreme Headphone (v1)",INT_LIST({1200,6200,40,80,0,20}))
63+
<< QPair<DYNSYS_UNIT>("High-end Headphone (v1)",INT_LIST({1000,6200,40,80,0,10}))
64+
<< QPair<DYNSYS_UNIT>("Common Headphone (v1)",INT_LIST({800,6200,40,80,10,0}))
65+
<< QPair<DYNSYS_UNIT>("Common Earphone (v1)",INT_LIST({400,6200,40,80,10,0}))
66+
<< QPair<DYNSYS_UNIT>("Apple Earphone",INT_LIST({1200,6200,50,90,15,10}))
67+
<< QPair<DYNSYS_UNIT>("Monster Earphone",INT_LIST({1000,6200,50,90,30,10}))
68+
<< QPair<DYNSYS_UNIT>("Moto Earphone",INT_LIST({1100,6200,60,100,20,0}))
69+
<< QPair<DYNSYS_UNIT>("Philips Earphone",INT_LIST({1200,6200,50,100,10,50}))
70+
<< QPair<DYNSYS_UNIT>("SHP2000",INT_LIST({1200,6200,60,100,0,30}))
71+
<< QPair<DYNSYS_UNIT>("SHP9000",INT_LIST({1200,6200,40,80,0,30}))
72+
<< QPair<DYNSYS_UNIT>("Unknown Type I",INT_LIST({1000,6200,60,100,0,0}))
73+
<< QPair<DYNSYS_UNIT>("Unknown Type II",INT_LIST({1000,6200,60,120,0,0}))
74+
<< QPair<DYNSYS_UNIT>("Unknown Type III",INT_LIST({1000,6200,80,140,0,0}))
75+
<< QPair<DYNSYS_UNIT>("Unknown Type IV",INT_LIST({800,6200,80,140,0,0}));
76+
return std::move(table);
5977
}
60-
inline const int* lookupDynsysPreset(QString preset){
61-
if(preset == "Extreme Headphone (v2)")
62-
return std::initializer_list<int>({140,6200,40,60,10,80}).begin();
63-
else if(preset == "High-end Headphone (v2)")
64-
return std::initializer_list<int>({180,5800,55,80,10,70}).begin();
65-
else if(preset == "Common Headphone (v2)")
66-
return std::initializer_list<int>({300,5600,60,105,10,50}).begin();
67-
else if(preset == "Low-end Headphone (v2)")
68-
return std::initializer_list<int>({600,5400,60,105,10,20}).begin();
69-
else if(preset == "Common Earphone (v2)")
70-
return std::initializer_list<int>({100,5600,40,80,50,50}).begin();
71-
else if(preset == "Extreme Headphone (v1)")
72-
return std::initializer_list<int>({1200,6200,40,80,0,20}).begin();
73-
else if(preset == "High-end Headphone (v1)")
74-
return std::initializer_list<int>({1000,6200,40,80,0,10}).begin();
75-
else if(preset == "Common Headphone (v1)")
76-
return std::initializer_list<int>({800,6200,40,80,10,0}).begin();
77-
else if(preset == "Common Earphone (v1)")
78-
return std::initializer_list<int>({400,6200,40,80,10,0}).begin();
79-
else if(preset == "Apple Earphone")
80-
return std::initializer_list<int>({1200,6200,50,90,15,10}).begin();
81-
else if(preset == "Monster Earphone")
82-
return std::initializer_list<int>({1000,6200,50,90,30,10}).begin();
83-
else if(preset == "Moto Earphone")
84-
return std::initializer_list<int>({1100,6200,60,100,20,0}).begin();
85-
else if(preset == "Philips Earphone")
86-
return std::initializer_list<int>({1200,6200,50,100,10,50}).begin();
87-
else if(preset == "SHP2000")
88-
return std::initializer_list<int>({1200,6200,60,100,0,30}).begin();
89-
else if(preset == "SHP9000")
90-
return std::initializer_list<int>({1200,6200,40,80,0,30}).begin();
91-
else if(preset == "Unknown Type I")
92-
return std::initializer_list<int>({1000,6200,60,100,0,0}).begin();
93-
else if(preset == "Unknown Type II")
94-
return std::initializer_list<int>({1000,6200,60,120,0,0}).begin();
95-
else if(preset == "Unknown Type III")
96-
return std::initializer_list<int>({1000,6200,80,140,0,0}).begin();
97-
else if(preset == "Unknown Type IV")
98-
return std::initializer_list<int>({800,6200,80,140,0,0}).begin();
99-
return nullptr;
78+
79+
inline const QMap<COLM_UNIT> COLM_LOOKUP_TABLE(){
80+
InitializableQMap<COLM_UNIT> table;
81+
table << QPair<COLM_UNIT>("Unknown",INT_LIST({0,0}))
82+
<< QPair<COLM_UNIT>("Slight",INT_LIST({120,200}))
83+
<< QPair<COLM_UNIT>("Level 1",INT_LIST({130,275}))
84+
<< QPair<COLM_UNIT>("Level 2",INT_LIST({140,350}))
85+
<< QPair<COLM_UNIT>("Level 3",INT_LIST({150,425}))
86+
<< QPair<COLM_UNIT>("Level 4",INT_LIST({160,500}))
87+
<< QPair<COLM_UNIT>("Level 5",INT_LIST({170,575}))
88+
<< QPair<COLM_UNIT>("Level 6",INT_LIST({180,650}))
89+
<< QPair<COLM_UNIT>("Level 7",INT_LIST({190,725}))
90+
<< QPair<COLM_UNIT>("Extreme",INT_LIST({200,800}));
91+
return std::move(table);
92+
}
93+
94+
inline const FLOAT_LIST lookupEQPreset(QString preset){
95+
auto table = EQ_LOOKUP_TABLE();
96+
if(table.contains(preset))
97+
return table[preset];
98+
else
99+
return table["Default"];
100100
}
101-
inline const int* lookupColmPreset(QString preset){
102-
if(preset == "Slight")
103-
return std::initializer_list<int>({120,200}).begin();
104-
else if(preset == "Level 1")
105-
return std::initializer_list<int>({130,275}).begin();
106-
else if(preset == "Level 2")
107-
return std::initializer_list<int>({140,350}).begin();
108-
else if(preset == "Level 3")
109-
return std::initializer_list<int>({150,425}).begin();
110-
else if(preset == "Level 4")
111-
return std::initializer_list<int>({160,500}).begin();
112-
else if(preset == "Level 5")
113-
return std::initializer_list<int>({170,575}).begin();
114-
else if(preset == "Level 6")
115-
return std::initializer_list<int>({180,650}).begin();
116-
else if(preset == "Level 7")
117-
return std::initializer_list<int>({190,725}).begin();
118-
else if(preset == "Extreme")
119-
return std::initializer_list<int>({200,800}).begin();
120-
return nullptr;
101+
inline const INT_LIST lookupDynsysPreset(QString preset){
102+
auto table = DYNSYS_LOOKUP_TABLE();
103+
if(table.contains(preset))
104+
return table[preset];
105+
else
106+
return table["Unknown"];
107+
}
108+
109+
inline const INT_LIST lookupColmPreset(QString preset){
110+
auto table = COLM_LOOKUP_TABLE();
111+
if(table.contains(preset))
112+
return table[preset];
113+
else
114+
return table["Unknown"];
121115
}
122116

123117
inline const std::initializer_list<float> defaultEQPreset(){
124-
return std::initializer_list<float>({0,0,0,0,0,0,0,0,0,0});
118+
return EQ_LOOKUP_TABLE()["Default"];
125119
}
126120
}
127121
#endif // PRESETEXTENSION_H

0 commit comments

Comments
 (0)