summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2007-11-10 22:12:54 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2007-11-10 22:12:54 +0000
commitd3c0a7f1692fd0b367a915a8f3a7144aaebb44a7 (patch)
tree0c5335fd08dda6c0e33ac42ca4feb0184290af21 /firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c
parenta5e4cc9e68640ed9ee82c02e7b9796c8511cfccf (diff)
downloadrockbox-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.c56
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
114int button_read_device(int *data) 114int 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 */