|
15 | 15 | #ifndef PRESETEXTENSION_H |
16 | 16 | #define PRESETEXTENSION_H |
17 | 17 | #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 | + |
18 | 28 | 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); |
59 | 77 | } |
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"]; |
100 | 100 | } |
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"]; |
121 | 115 | } |
122 | 116 |
|
123 | 117 | 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"]; |
125 | 119 | } |
126 | 120 | } |
127 | 121 | #endif // PRESETEXTENSION_H |
0 commit comments