forked from len0rd/rockbox
Slight simplification of scroll button driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8939 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
40d0d752aa
commit
b5648000ba
1 changed files with 9 additions and 11 deletions
|
|
@ -128,7 +128,6 @@ static int ipod_4g_button_read(void)
|
||||||
static int clickwheel_down = 0;
|
static int clickwheel_down = 0;
|
||||||
static int old_wheel_value = -1;
|
static int old_wheel_value = -1;
|
||||||
int wheel_keycode = BUTTON_NONE;
|
int wheel_keycode = BUTTON_NONE;
|
||||||
int wheel_delta, wheel_delta_abs;
|
|
||||||
int new_wheel_value;
|
int new_wheel_value;
|
||||||
int btn = BUTTON_NONE;
|
int btn = BUTTON_NONE;
|
||||||
|
|
||||||
|
|
@ -162,17 +161,16 @@ static int ipod_4g_button_read(void)
|
||||||
clickwheel_down = 1;
|
clickwheel_down = 1;
|
||||||
backlight_on();
|
backlight_on();
|
||||||
if (old_wheel_value != -1) {
|
if (old_wheel_value != -1) {
|
||||||
|
int wheel_delta;
|
||||||
|
if (old_wheel_value > new_wheel_value + 48) {
|
||||||
|
/* Forward wrapping case */
|
||||||
|
wheel_delta = new_wheel_value + 96 - old_wheel_value;
|
||||||
|
} else {
|
||||||
wheel_delta = new_wheel_value - old_wheel_value;
|
wheel_delta = new_wheel_value - old_wheel_value;
|
||||||
wheel_delta_abs = wheel_delta < 0 ? -wheel_delta
|
if (wheel_delta > 48)
|
||||||
: wheel_delta;
|
wheel_delta -= 96; /* Backward wrapping case */
|
||||||
|
|
||||||
if (wheel_delta_abs > 48) {
|
|
||||||
if (old_wheel_value > new_wheel_value)
|
|
||||||
/* wrapped around the top going clockwise */
|
|
||||||
wheel_delta += 96;
|
|
||||||
else if (old_wheel_value < new_wheel_value)
|
|
||||||
/* wrapped around the top going counterclockwise */ wheel_delta -= 96;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: these thresholds should most definitely be
|
/* TODO: these thresholds should most definitely be
|
||||||
settings, and we're probably going to want a more
|
settings, and we're probably going to want a more
|
||||||
advanced scheme than this anyway. */
|
advanced scheme than this anyway. */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue