@@ -46,117 +46,119 @@ namespace edit_mode_step {
46
46
47
47
using data::Value;
48
48
49
- static const Value CONF_GUI_U_STEPS[] = {
50
- Value (5 .0f , UNIT_VOLT),
51
- Value (2 .0f , UNIT_VOLT),
52
- Value (1 .0f , UNIT_VOLT),
53
- Value (0 .5f , UNIT_VOLT),
54
- Value (0 .1f , UNIT_VOLT)
49
+ #define NUM_UNITS 6
50
+ #define NUM_STEPS_PER_UNIT 5
51
+
52
+ static const Value CONF_GUI_UNIT_STEPS_LIST[NUM_UNITS][NUM_STEPS_PER_UNIT] = {
53
+ {
54
+ Value (5 .0f , UNIT_VOLT),
55
+ Value (2 .0f , UNIT_VOLT),
56
+ Value (1 .0f , UNIT_VOLT),
57
+ Value (0 .5f , UNIT_VOLT),
58
+ Value (0 .1f , UNIT_VOLT)
59
+ },
60
+ {
61
+ Value (0 .5f , UNIT_AMPER),
62
+ Value (0 .25f , UNIT_AMPER),
63
+ Value (0 .1f , UNIT_AMPER),
64
+ Value (0 .05f , UNIT_AMPER),
65
+ Value (0 .01f , UNIT_AMPER)
66
+ },
67
+ {
68
+ Value (0 .005f , UNIT_AMPER),
69
+ Value (0 .0025f , UNIT_AMPER),
70
+ Value (0 .001f , UNIT_AMPER),
71
+ Value (0 .0005f , UNIT_AMPER),
72
+ Value (0 .0001f , UNIT_AMPER)
73
+ },
74
+ {
75
+ Value (10 .0f , UNIT_WATT),
76
+ Value (5 .0f , UNIT_WATT),
77
+ Value (2 .0f , UNIT_WATT),
78
+ Value (1 .0f , UNIT_WATT),
79
+ Value (0 .5f , UNIT_WATT)
80
+ },
81
+ {
82
+ Value (20 .0f , UNIT_CELSIUS),
83
+ Value (10 .0f , UNIT_CELSIUS),
84
+ Value (5 .0f , UNIT_CELSIUS),
85
+ Value (2 .0f , UNIT_CELSIUS),
86
+ Value (1 .0f , UNIT_CELSIUS)
87
+ },
88
+ {
89
+ Value (30 .0f , UNIT_SECOND),
90
+ Value (20 .0f , UNIT_SECOND),
91
+ Value (10 .0f , UNIT_SECOND),
92
+ Value (5 .0f , UNIT_SECOND),
93
+ Value (1 .0f , UNIT_SECOND)
94
+ },
55
95
};
56
96
57
- static const Value CONF_GUI_I_STEPS[] = {
58
- Value (0 .5f , UNIT_AMPER),
59
- Value (0 .25f , UNIT_AMPER),
60
- Value (0 .1f , UNIT_AMPER),
61
- Value (0 .05f , UNIT_AMPER),
62
- Value (0 .01f , UNIT_AMPER)
63
- };
64
-
65
- static const Value CONF_GUI_I_LOW_STEPS[] = {
66
- Value (0 .005f , UNIT_AMPER),
67
- Value (0 .0025f , UNIT_AMPER),
68
- Value (0 .001f , UNIT_AMPER),
69
- Value (0 .0005f , UNIT_AMPER),
70
- Value (0 .0001f , UNIT_AMPER)
71
- };
72
-
73
- static const Value CONF_GUI_P_STEPS[] = {
74
- Value (10 .0f , UNIT_WATT),
75
- Value (5 .0f , UNIT_WATT),
76
- Value (2 .0f , UNIT_WATT),
77
- Value (1 .0f , UNIT_WATT),
78
- Value (0 .5f , UNIT_WATT)
79
- };
80
-
81
- static const Value CONF_GUI_TEMP_STEPS[] = {
82
- Value (20 .0f , UNIT_CELSIUS),
83
- Value (10 .0f , UNIT_CELSIUS),
84
- Value (5 .0f , UNIT_CELSIUS),
85
- Value (2 .0f , UNIT_CELSIUS),
86
- Value (1 .0f , UNIT_CELSIUS)
87
- };
97
+ static int g_stepIndexes[NUM_UNITS][CH_MAX];
88
98
89
- static const Value CONF_GUI_TIME_STEPS[] = {
90
- Value (30 .0f , UNIT_SECOND),
91
- Value (20 .0f , UNIT_SECOND),
92
- Value (10 .0f , UNIT_SECOND),
93
- Value (5 .0f , UNIT_SECOND),
94
- Value (1 .0f , UNIT_SECOND)
95
- };
96
-
97
- static int g_stepIndex[CH_MAX][2 ];
98
-
99
- static const int DEFAULT_INDEX = 3 ;
99
+ static const int DEFAULT_INDEX = 2 ;
100
100
101
101
static bool g_changed;
102
102
static int g_startPos;
103
103
104
- float getStepValue () {
105
- if (edit_mode::getUnit () == UNIT_VOLT) {
106
- return getStepValues ()[getStepIndex ()].getFloat ();
107
- } else {
108
- return getStepValues ()[getStepIndex ()].getFloat ();
109
- }
110
- }
111
-
112
104
int getStepValuesCount () {
113
- return 5 ;
105
+ return NUM_STEPS_PER_UNIT ;
114
106
}
115
107
116
- const Value * getStepValues (Unit unit) {
108
+ int getUnitStepValuesIndex (Unit unit) {
117
109
if (unit == UNIT_VOLT) {
118
- return CONF_GUI_U_STEPS;
119
- } else if (unit == UNIT_AMPER) {
110
+ return 0 ;
111
+ }
112
+
113
+ if (unit == UNIT_AMPER) {
120
114
if (Channel::get (g_focusCursor.i ).flags .currentRangeSelectionMode == CURRENT_RANGE_SELECTION_ALWAYS_LOW) {
121
- return CONF_GUI_I_LOW_STEPS ;
115
+ return 2 ;
122
116
}
123
- return CONF_GUI_I_STEPS;
124
- } else if (unit == UNIT_WATT) {
125
- return CONF_GUI_P_STEPS;
126
- } else if (unit == UNIT_CELSIUS) {
127
- return CONF_GUI_TEMP_STEPS;
128
- } else if (unit == UNIT_SECOND) {
129
- return CONF_GUI_TIME_STEPS;
130
- } else {
131
- return CONF_GUI_U_STEPS;
117
+ return 1 ;
118
+ }
119
+
120
+ if (unit == UNIT_WATT) {
121
+ return 3 ;
122
+ }
123
+
124
+ if (unit == UNIT_CELSIUS) {
125
+ return 4 ;
126
+ }
127
+
128
+ if (unit == UNIT_SECOND) {
129
+ return 5 ;
132
130
}
131
+
132
+ return 0 ;
133
133
}
134
134
135
- const Value *getStepValues ( ) {
136
- return getStepValues ( edit_mode::getUnit ()) ;
135
+ const Value *getUnitStepValues (Unit unit ) {
136
+ return CONF_GUI_UNIT_STEPS_LIST[ getUnitStepValuesIndex (unit)] ;
137
137
}
138
138
139
139
int getStepIndex () {
140
- int value;
141
- if (edit_mode::getUnit () == UNIT_VOLT) {
142
- value = g_stepIndex[g_focusCursor.i ][0 ];
143
- } else {
144
- value = g_stepIndex[g_focusCursor.i ][1 ];
140
+ int stepIndex = g_stepIndexes[getUnitStepValuesIndex (edit_mode::getUnit ())][g_focusCursor.i ];
141
+ if (stepIndex == 0 ) {
142
+ return DEFAULT_INDEX;
145
143
}
144
+ return stepIndex - 1 ;
145
+ }
146
146
147
- if (value == 0 ) {
148
- value = DEFAULT_INDEX;
149
- }
147
+ void setStepIndex (int value) {
148
+ int unitStepValuesIndex = getUnitStepValuesIndex (edit_mode::getUnit ());
149
+ g_stepIndexes[unitStepValuesIndex][g_focusCursor.i ] = 1 + value;
150
+ }
150
151
151
- return value - 1 ;
152
+ void switchToNextStepIndex () {
153
+ g_stepIndexes[getUnitStepValuesIndex (edit_mode::getUnit ())][g_focusCursor.i ] = 1 + ((getStepIndex () + 1 ) % NUM_STEPS_PER_UNIT);
152
154
}
153
155
154
- void setStepIndex ( int value ) {
155
- if (edit_mode::getUnit () == UNIT_VOLT) {
156
- g_stepIndex[g_focusCursor. i ][ 0 ] = value + 1 ;
157
- } else {
158
- g_stepIndex[g_focusCursor. i ][ 1 ] = value + 1 ;
159
- }
156
+ const Value * getStepValues ( ) {
157
+ return getUnitStepValues (edit_mode::getUnit ());
158
+ }
159
+
160
+ float getStepValue () {
161
+ return getStepValues ()[ getStepIndex ()]. getFloat ();
160
162
}
161
163
162
164
void increment (int counter, bool playClick) {
@@ -199,7 +201,6 @@ void increment(int counter, bool playClick) {
199
201
#if OPTION_ENCODER
200
202
201
203
void onEncoder (int counter) {
202
- mcu::encoder::enableAcceleration (false );
203
204
increment (counter, false );
204
205
}
205
206
@@ -228,7 +229,7 @@ void onTouchUp() {
228
229
229
230
Value getCurrentEncoderStepValue () {
230
231
auto editValue = data::getEditValue (g_focusCursor, g_focusDataId);
231
- auto stepValues = getStepValues (editValue.getUnit ());
232
+ auto stepValues = getUnitStepValues (editValue.getUnit ());
232
233
return stepValues[mcu::encoder::ENCODER_MODE_STEP5 - mcu::encoder::g_encoderMode];
233
234
}
234
235
0 commit comments