diff options
Diffstat (limited to 'firmware/target/arm/ipod/button-mini1g.c')
-rw-r--r-- | firmware/target/arm/ipod/button-mini1g.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/firmware/target/arm/ipod/button-mini1g.c b/firmware/target/arm/ipod/button-mini1g.c index f02e6acaac..1ff0a19bdb 100644 --- a/firmware/target/arm/ipod/button-mini1g.c +++ b/firmware/target/arm/ipod/button-mini1g.c | |||
@@ -47,8 +47,7 @@ int int_btn = BUTTON_NONE; | |||
47 | static bool send_events = true; | 47 | static bool send_events = true; |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | /* iPod 3G and mini 1G, mini 2G uses iPod 4G code */ | 50 | static void handle_scroll_wheel(int new_scroll, int was_hold) |
51 | void handle_scroll_wheel(int new_scroll, int was_hold, int reverse) | ||
52 | { | 51 | { |
53 | int wheel_keycode = BUTTON_NONE; | 52 | int wheel_keycode = BUTTON_NONE; |
54 | static int prev_scroll = -1; | 53 | static int prev_scroll = -1; |
@@ -73,26 +72,14 @@ void handle_scroll_wheel(int new_scroll, int was_hold, int reverse) | |||
73 | reset_poweroff_timer(); | 72 | reset_poweroff_timer(); |
74 | if (++count == 6) { /* reduce sensitivity */ | 73 | if (++count == 6) { /* reduce sensitivity */ |
75 | count = 0; | 74 | count = 0; |
75 | /* Mini 1st Gen wheel has inverse direction mapping | ||
76 | * compared to 1st..3rd Gen wheel. */ | ||
76 | switch (direction) { | 77 | switch (direction) { |
77 | case 1: | 78 | case 1: |
78 | if (reverse) { | 79 | wheel_keycode = BUTTON_SCROLL_FWD; |
79 | /* 'r' keypress */ | ||
80 | wheel_keycode = BUTTON_SCROLL_FWD; | ||
81 | } | ||
82 | else { | ||
83 | /* 'l' keypress */ | ||
84 | wheel_keycode = BUTTON_SCROLL_BACK; | ||
85 | } | ||
86 | break; | 80 | break; |
87 | case -1: | 81 | case -1: |
88 | if (reverse) { | 82 | wheel_keycode = BUTTON_SCROLL_BACK; |
89 | /* 'l' keypress */ | ||
90 | wheel_keycode = BUTTON_SCROLL_BACK; | ||
91 | } | ||
92 | else { | ||
93 | /* 'r' keypress */ | ||
94 | wheel_keycode = BUTTON_SCROLL_FWD; | ||
95 | } | ||
96 | break; | 83 | break; |
97 | default: | 84 | default: |
98 | /* only happens if we get out of sync */ | 85 | /* only happens if we get out of sync */ |
@@ -147,7 +134,7 @@ static int ipod_mini_button_read(void) | |||
147 | btn |= BUTTON_LEFT; | 134 | btn |= BUTTON_LEFT; |
148 | 135 | ||
149 | if (wheel_source & 0x30) { | 136 | if (wheel_source & 0x30) { |
150 | handle_scroll_wheel((wheel_state & 0x30) >> 4, was_hold, 1); | 137 | handle_scroll_wheel((wheel_state & 0x30) >> 4, was_hold); |
151 | } | 138 | } |
152 | } | 139 | } |
153 | 140 | ||