diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2007-11-10 22:12:54 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2007-11-10 22:12:54 +0000 |
commit | d3c0a7f1692fd0b367a915a8f3a7144aaebb44a7 (patch) | |
tree | 0c5335fd08dda6c0e33ac42ca4feb0184290af21 /firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c | |
parent | a5e4cc9e68640ed9ee82c02e7b9796c8511cfccf (diff) | |
download | rockbox-d3c0a7f1692fd0b367a915a8f3a7144aaebb44a7.tar.gz rockbox-d3c0a7f1692fd0b367a915a8f3a7144aaebb44a7.zip |
Change the way the UART recieves data and how buttons pressed are processed. Also move some of the debug menu into the target tree and allow rockblox to build when the screen is rotated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15560 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c')
-rw-r--r-- | firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c | 56 |
1 files changed, 19 insertions, 37 deletions
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c index 10587a485f..837677250f 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c | |||
@@ -113,13 +113,11 @@ static void remote_heartbeat(void) | |||
113 | #define TOUCH_MARGIN 8 | 113 | #define TOUCH_MARGIN 8 |
114 | int button_read_device(int *data) | 114 | int button_read_device(int *data) |
115 | { | 115 | { |
116 | char c; | 116 | char buffer[5]; |
117 | int i = 0; | 117 | int button = BUTTON_NONE, retval; |
118 | int btn = BUTTON_NONE; | 118 | static int oldbutton = BUTTON_NONE; |
119 | *data = 0; | 119 | *data = 0; |
120 | 120 | ||
121 | if ((IO_GIO_BITSET0&0x01) == 0) | ||
122 | btn |= BUTTON_POWER; | ||
123 | if (touch_available) | 121 | if (touch_available) |
124 | { | 122 | { |
125 | short x,y; | 123 | short x,y; |
@@ -143,47 +141,31 @@ int button_read_device(int *data) | |||
143 | last_x = x; | 141 | last_x = x; |
144 | last_y = y; | 142 | last_y = y; |
145 | *data = touch_to_pixels(x, y); | 143 | *data = touch_to_pixels(x, y); |
146 | btn |= BUTTON_TOUCHPAD; | 144 | button |= BUTTON_TOUCHPAD; |
147 | } | 145 | } |
148 | last_touch = current_tick; | 146 | last_touch = current_tick; |
149 | touch_available = false; | 147 | touch_available = false; |
150 | } | 148 | } |
151 | remote_heartbeat(); | 149 | remote_heartbeat(); |
152 | while (uart1_getch(&c)) | 150 | |
151 | if ((IO_GIO_BITSET0&0x01) == 0) | ||
152 | button |= BUTTON_POWER; | ||
153 | |||
154 | retval=uart1_gets_queue(buffer, 5); | ||
155 | do | ||
153 | { | 156 | { |
154 | if (i==0 && (c == BUTTON_START_BYTE || c == BUTTON_START_BYTE2) ) | 157 | if(retval>=0) |
155 | { | 158 | { |
156 | i++; | 159 | button |= buffer[1]; |
160 | oldbutton=button; | ||
157 | } | 161 | } |
158 | else if (i) | 162 | else |
159 | { | 163 | { |
160 | i++; | 164 | button=oldbutton; |
161 | if(i==2) | ||
162 | { | ||
163 | if (c& (1<<7)) | ||
164 | btn |= BUTTON_RC_HEART; | ||
165 | if (c& (1<<6)) | ||
166 | btn |= BUTTON_RC_MODE; | ||
167 | if (c& (1<<5)) | ||
168 | btn |= BUTTON_RC_VOL_DOWN; | ||
169 | if (c& (1<<4)) | ||
170 | btn |= BUTTON_RC_VOL_UP; | ||
171 | if (c& (1<<3)) | ||
172 | btn |= BUTTON_RC_REW; | ||
173 | if (c& (1<<2)) | ||
174 | btn |= BUTTON_RC_FF; | ||
175 | if (c& (1<<1)) | ||
176 | btn |= BUTTON_RC_DOWN; | ||
177 | if (c& (1<<0)) | ||
178 | btn |= BUTTON_RC_PLAY; | ||
179 | } | ||
180 | else if(i==5) | ||
181 | { | ||
182 | i=0; | ||
183 | } | ||
184 | } | 165 | } |
185 | } | 166 | } while((retval=uart1_gets_queue(buffer, 5))>=5); |
186 | return btn; | 167 | |
168 | return button; | ||
187 | } | 169 | } |
188 | 170 | ||
189 | /* Touchpad data available interupt */ | 171 | /* Touchpad data available interupt */ |