diff options
author | Brandon Low <lostlogic@rockbox.org> | 2006-03-07 04:56:55 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2006-03-07 04:56:55 +0000 |
commit | b5648000ba63476b99823046a6702881a28fd6c0 (patch) | |
tree | 7e43b04aeccb64f62d19fa6e8e2e84f9449df42e /firmware/drivers | |
parent | 40d0d752aa94e162b28a89f1730d989bd9e45aee (diff) | |
download | rockbox-b5648000ba63476b99823046a6702881a28fd6c0.tar.gz rockbox-b5648000ba63476b99823046a6702881a28fd6c0.zip |
Slight simplification of scroll button driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8939 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-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. */ |