summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ipod/button-mini1g.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/ipod/button-mini1g.c')
-rw-r--r--firmware/target/arm/ipod/button-mini1g.c25
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 */ 50static void handle_scroll_wheel(int new_scroll, int was_hold)
51void 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