mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-01-26 22:37:13 -05:00
Revert encoder sensitivity change (#1314)
This commit is contained in:
parent
b27c738b69
commit
e7c5a862da
@ -480,12 +480,10 @@ class SetEncoderDialView : public View {
|
|||||||
|
|
||||||
OptionsField field_encoder_dial_sensitivity{
|
OptionsField field_encoder_dial_sensitivity{
|
||||||
{20 * 8, 3 * 16},
|
{20 * 8, 3 * 16},
|
||||||
7,
|
6,
|
||||||
{{"LOWEST", encoder_dial_sensitivity::DIAL_SENSITIVITY_LOWEST},
|
{{"LOW", encoder_dial_sensitivity::DIAL_SENSITIVITY_LOW},
|
||||||
{"LOW", encoder_dial_sensitivity::DIAL_SENSITIVITY_LOW},
|
|
||||||
{"NORMAL", encoder_dial_sensitivity::DIAL_SENSITIVITY_NORMAL},
|
{"NORMAL", encoder_dial_sensitivity::DIAL_SENSITIVITY_NORMAL},
|
||||||
{"HIGH", encoder_dial_sensitivity::DIAL_SENSITIVITY_HIGH},
|
{"HIGH", encoder_dial_sensitivity::DIAL_SENSITIVITY_HIGH}}};
|
||||||
{"HIGHEST", encoder_dial_sensitivity::DIAL_SENSITIVITY_HIGHEST}}};
|
|
||||||
|
|
||||||
Button button_save{
|
Button button_save{
|
||||||
{2 * 8, 16 * 16, 12 * 8, 32},
|
{2 * 8, 16 * 16, 12 * 8, 32},
|
||||||
|
@ -32,24 +32,66 @@
|
|||||||
// 12 degrees of rotation.
|
// 12 degrees of rotation.
|
||||||
//
|
//
|
||||||
// For each encoder "pulse" there are 4 state transitions, and we can choose
|
// For each encoder "pulse" there are 4 state transitions, and we can choose
|
||||||
// how many transitions are needed before movement is registered
|
// between looking at all of them (high sensitivity), half of them (medium/default),
|
||||||
static const int8_t transition_map[16] = {
|
// or one quarter of them (low sensitivity).
|
||||||
0, // 0000: noop
|
static const int8_t transition_map[][16] = {
|
||||||
-1, // 0001: ccw start
|
// Normal (Medium) Sensitivity -- default
|
||||||
1, // 0010: cw start
|
{
|
||||||
0, // 0011: rate
|
0, // 0000: noop
|
||||||
1, // 0100: cw end
|
0, // 0001: ccw start
|
||||||
0, // 0101: noop
|
0, // 0010: cw start
|
||||||
0, // 0110: rate
|
0, // 0011: rate
|
||||||
-1, // 0111: ccw end
|
1, // 0100: cw end
|
||||||
-1, // 1000: ccw end
|
0, // 0101: noop
|
||||||
0, // 1001: rate
|
0, // 0110: rate
|
||||||
0, // 1010: noop
|
-1, // 0111: ccw end
|
||||||
1, // 1011: cw end
|
-1, // 1000: ccw end
|
||||||
0, // 1100: rate
|
0, // 1001: rate
|
||||||
1, // 1101: cw start
|
0, // 1010: noop
|
||||||
-1, // 1110: ccw start
|
1, // 1011: cw end
|
||||||
0, // 1111: noop
|
0, // 1100: rate
|
||||||
|
0, // 1101: cw start
|
||||||
|
0, // 1110: ccw start
|
||||||
|
0, // 1111: noop
|
||||||
|
},
|
||||||
|
// Low Sensitivity
|
||||||
|
{
|
||||||
|
0, // 0000: noop
|
||||||
|
0, // 0001: ccw start
|
||||||
|
0, // 0010: cw start
|
||||||
|
0, // 0011: rate
|
||||||
|
1, // 0100: cw end
|
||||||
|
0, // 0101: noop
|
||||||
|
0, // 0110: rate
|
||||||
|
0, // 0111: ccw end
|
||||||
|
-1, // 1000: ccw end
|
||||||
|
0, // 1001: rate
|
||||||
|
0, // 1010: noop
|
||||||
|
0, // 1011: cw end
|
||||||
|
0, // 1100: rate
|
||||||
|
0, // 1101: cw start
|
||||||
|
0, // 1110: ccw start
|
||||||
|
0, // 1111: noop
|
||||||
|
},
|
||||||
|
// High Sensitivity
|
||||||
|
{
|
||||||
|
0, // 0000: noop
|
||||||
|
-1, // 0001: ccw start
|
||||||
|
1, // 0010: cw start
|
||||||
|
0, // 0011: rate
|
||||||
|
1, // 0100: cw end
|
||||||
|
0, // 0101: noop
|
||||||
|
0, // 0110: rate
|
||||||
|
-1, // 0111: ccw end
|
||||||
|
-1, // 1000: ccw end
|
||||||
|
0, // 1001: rate
|
||||||
|
0, // 1010: noop
|
||||||
|
1, // 1011: cw end
|
||||||
|
0, // 1100: rate
|
||||||
|
1, // 1101: cw start
|
||||||
|
-1, // 1110: ccw start
|
||||||
|
0, // 1111: noop
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
int_fast8_t Encoder::update(
|
int_fast8_t Encoder::update(
|
||||||
@ -60,13 +102,6 @@ int_fast8_t Encoder::update(
|
|||||||
state <<= 1;
|
state <<= 1;
|
||||||
state |= phase_1;
|
state |= phase_1;
|
||||||
|
|
||||||
int_fast8_t retval = transition_map[state & 0xf];
|
// dial sensitivity setting is stored in pmem
|
||||||
|
return transition_map[portapack::persistent_memory::config_encoder_dial_sensitivity()][state & 0xf];
|
||||||
transition_count += retval;
|
|
||||||
if (abs(transition_count) > portapack::persistent_memory::config_encoder_dial_sensitivity())
|
|
||||||
transition_count = 0;
|
|
||||||
else
|
|
||||||
retval = 0;
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ class Encoder {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
uint_fast8_t state{0};
|
uint_fast8_t state{0};
|
||||||
int_fast8_t transition_count{0};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*__ENCODER_H__*/
|
#endif /*__ENCODER_H__*/
|
||||||
|
@ -80,7 +80,7 @@ constexpr clkout_freq_range_t clkout_freq_range{10, 60000};
|
|||||||
constexpr uint16_t clkout_freq_reset_value{10000};
|
constexpr uint16_t clkout_freq_reset_value{10000};
|
||||||
|
|
||||||
enum data_structure_version_enum : uint32_t {
|
enum data_structure_version_enum : uint32_t {
|
||||||
VERSION_CURRENT = 0x10000004,
|
VERSION_CURRENT = 0x10000005,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint32_t TOUCH_CALIBRATION_MAGIC = 0x074af82f;
|
static const uint32_t TOUCH_CALIBRATION_MAGIC = 0x074af82f;
|
||||||
|
@ -107,11 +107,9 @@ struct backlight_config_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum encoder_dial_sensitivity {
|
enum encoder_dial_sensitivity {
|
||||||
DIAL_SENSITIVITY_HIGHEST = 0,
|
DIAL_SENSITIVITY_NORMAL = 0,
|
||||||
DIAL_SENSITIVITY_HIGH = 1,
|
DIAL_SENSITIVITY_LOW = 1,
|
||||||
DIAL_SENSITIVITY_NORMAL = 2,
|
DIAL_SENSITIVITY_HIGH = 2,
|
||||||
DIAL_SENSITIVITY_LOW = 3,
|
|
||||||
DIAL_SENSITIVITY_LOWEST = 4,
|
|
||||||
NUM_DIAL_SENSITIVITY
|
NUM_DIAL_SENSITIVITY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user