diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/button.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index e2a4e82a58..cdbb9f5374 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c | |||
@@ -128,7 +128,6 @@ static int ipod_4g_button_read(void) | |||
128 | static int clickwheel_down = 0; | 128 | static int clickwheel_down = 0; |
129 | static int old_wheel_value = -1; | 129 | static int old_wheel_value = -1; |
130 | int wheel_keycode = BUTTON_NONE; | 130 | int wheel_keycode = BUTTON_NONE; |
131 | int wheel_delta, wheel_delta_abs; | ||
132 | int new_wheel_value; | 131 | int new_wheel_value; |
133 | int btn = BUTTON_NONE; | 132 | int btn = BUTTON_NONE; |
134 | 133 | ||
@@ -162,17 +161,16 @@ static int ipod_4g_button_read(void) | |||
162 | clickwheel_down = 1; | 161 | clickwheel_down = 1; |
163 | backlight_on(); | 162 | backlight_on(); |
164 | if (old_wheel_value != -1) { | 163 | if (old_wheel_value != -1) { |
165 | wheel_delta = new_wheel_value - old_wheel_value; | 164 | int wheel_delta; |
166 | wheel_delta_abs = wheel_delta < 0 ? -wheel_delta | 165 | if (old_wheel_value > new_wheel_value + 48) { |
167 | : wheel_delta; | 166 | /* Forward wrapping case */ |
168 | 167 | wheel_delta = new_wheel_value + 96 - old_wheel_value; | |
169 | if (wheel_delta_abs > 48) { | 168 | } else { |
170 | if (old_wheel_value > new_wheel_value) | 169 | wheel_delta = new_wheel_value - old_wheel_value; |
171 | /* wrapped around the top going clockwise */ | 170 | if (wheel_delta > 48) |
172 | wheel_delta += 96; | 171 | wheel_delta -= 96; /* Backward wrapping case */ |
173 | else if (old_wheel_value < new_wheel_value) | ||
174 | /* wrapped around the top going counterclockwise */ wheel_delta -= 96; | ||
175 | } | 172 | } |
173 | |||
176 | /* TODO: these thresholds should most definitely be | 174 | /* TODO: these thresholds should most definitely be |
177 | settings, and we're probably going to want a more | 175 | settings, and we're probably going to want a more |
178 | advanced scheme than this anyway. */ | 176 | advanced scheme than this anyway. */ |