summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:23:45 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:23:45 +0000
commit921484de874d33f6cde0aae3857f5e6c644ded71 (patch)
tree18ba71eb67c7c2af7a1233b3f5fc33d220444aed /apps
parent3c67c0a5121454277f52a60368d713bfc7547cf7 (diff)
downloadrockbox-921484de874d33f6cde0aae3857f5e6c644ded71.tar.gz
rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.zip
Now uses button_get_w_tmo()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1577 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/wps.c425
1 files changed, 212 insertions, 213 deletions
diff --git a/apps/wps.c b/apps/wps.c
index 506cba7d15..c3398e2ea4 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -171,6 +171,8 @@ int wps_show(void)
171 bool menu_button_is_down = false; 171 bool menu_button_is_down = false;
172 bool pending_keylock = true; /* Keylock will go ON next time */ 172 bool pending_keylock = true; /* Keylock will go ON next time */
173 int old_release_mask; 173 int old_release_mask;
174 int button;
175 char buffer[32];
174 176
175 old_release_mask = button_set_release(RELEASE_MASK); 177 old_release_mask = button_set_release(RELEASE_MASK);
176 178
@@ -182,9 +184,8 @@ int wps_show(void)
182 184
183 while ( 1 ) 185 while ( 1 )
184 { 186 {
185 int i; 187 button = button_get_w_tmo(HZ/5);
186 char buffer[32]; 188
187
188 if(mpeg_has_changed_track()) 189 if(mpeg_has_changed_track())
189 { 190 {
190 lcd_stop_scroll(); 191 lcd_stop_scroll();
@@ -192,267 +193,265 @@ int wps_show(void)
192 draw_screen(id3); 193 draw_screen(id3);
193 } 194 }
194 195
195 if (mpeg_is_playing() && id3) 196 switch(button)
196 { 197 {
197#ifdef HAVE_LCD_BITMAP 198 case BUTTON_ON:
198 snprintf(buffer,sizeof(buffer), "Time: %d:%02d / %d:%02d", 199 if (keys_locked)
199 id3->elapsed / 60000, 200 {
200 id3->elapsed % 60000 / 1000, 201 display_keylock_text(keys_locked);
201 id3->length / 60000, 202 draw_screen(id3);
202 id3->length % 60000 / 1000 ); 203 break;
203 204 }
204 lcd_puts(0, 6, buffer);
205
206 lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5,
207 id3->elapsed*100/id3->length,
208 BAR_RIGHT);
209
210 lcd_update();
211#else
212 /* Display time with the filename scroll only because
213 the screen has room. */
214 if (global_settings.wps_display == PLAY_DISPLAY_FILENAME_SCROLL)
215 {
216 snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d",
217 id3->elapsed / 60000,
218 id3->elapsed % 60000 / 1000,
219 id3->length / 60000,
220 id3->length % 60000 / 1000 );
221
222 lcd_puts(0, 1, buffer);
223 lcd_update();
224 }
225#endif
226 }
227
228 status_draw();
229
230#ifdef HAVE_LCD_BITMAP
231 /* draw battery indicator line */
232 lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1);
233 lcd_drawline(0,LCD_HEIGHT-1,battery_level() * (LCD_WIDTH-1) / 100, LCD_HEIGHT-1);
234#endif
235
236 for ( i=0;i<5;i++ ) {
237 int button = button_get(false);
238
239 switch ( button )
240 {
241 case BUTTON_ON:
242 if (keys_locked)
243 {
244 display_keylock_text(keys_locked);
245 draw_screen(id3);
246 break;
247 }
248 205
249#ifdef HAVE_LCD_CHARCELLS 206#ifdef HAVE_LCD_CHARCELLS
250 lcd_icon(ICON_RECORD, false); 207 lcd_icon(ICON_RECORD, false);
251#endif 208#endif
252 button_set_release(old_release_mask); 209 button_set_release(old_release_mask);
253 return 0; 210 return 0;
254 211
255#ifdef HAVE_RECORDER_KEYPAD 212#ifdef HAVE_RECORDER_KEYPAD
256 case BUTTON_PLAY: 213 case BUTTON_PLAY:
257#else 214#else
258 case BUTTON_UP: 215 case BUTTON_UP:
259#endif 216#endif
260 if (keys_locked) 217 if (keys_locked)
261 { 218 {
262 display_keylock_text(keys_locked); 219 display_keylock_text(keys_locked);
263 draw_screen(id3); 220 draw_screen(id3);
264 break;
265 }
266
267 if ( mpeg_is_playing() )
268 {
269 mpeg_pause();
270 status_set_playmode(STATUS_PAUSE);
271 }
272 else
273 {
274 mpeg_resume();
275 status_set_playmode(STATUS_PLAY);
276 }
277 break; 221 break;
222 }
278 223
279#ifdef HAVE_RECORDER_KEYPAD 224 if ( mpeg_is_playing() )
280 case BUTTON_UP: 225 {
281 case BUTTON_UP | BUTTON_REPEAT: 226 mpeg_pause();
282 if (keys_locked) 227 status_set_playmode(STATUS_PAUSE);
283 { 228 }
284 display_keylock_text(keys_locked); 229 else
285 draw_screen(id3); 230 {
286 break; 231 mpeg_resume();
287 } 232 status_set_playmode(STATUS_PLAY);
233 }
234 break;
288 235
289 global_settings.volume++; 236#ifdef HAVE_RECORDER_KEYPAD
290 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) 237 case BUTTON_UP:
291 global_settings.volume = mpeg_sound_max(SOUND_VOLUME); 238 case BUTTON_UP | BUTTON_REPEAT:
292 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 239 if (keys_locked)
240 {
241 display_keylock_text(keys_locked);
242 draw_screen(id3);
293 break; 243 break;
244 }
294 245
295 case BUTTON_DOWN: 246 global_settings.volume++;
296 case BUTTON_DOWN | BUTTON_REPEAT: 247 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME))
297 if (keys_locked) 248 global_settings.volume = mpeg_sound_max(SOUND_VOLUME);
298 { 249 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
299 display_keylock_text(keys_locked); 250 break;
300 draw_screen(id3);
301 break;
302 }
303 251
304 global_settings.volume--; 252 case BUTTON_DOWN:
305 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) 253 case BUTTON_DOWN | BUTTON_REPEAT:
306 global_settings.volume = mpeg_sound_min(SOUND_VOLUME); 254 if (keys_locked)
307 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 255 {
256 display_keylock_text(keys_locked);
257 draw_screen(id3);
308 break; 258 break;
309#endif 259 }
310 260
311 case BUTTON_LEFT: 261 global_settings.volume--;
312 if (keys_locked) 262 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME))
313 { 263 global_settings.volume = mpeg_sound_min(SOUND_VOLUME);
314 display_keylock_text(keys_locked); 264 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
315 draw_screen(id3); 265 break;
316 break; 266#endif
317 }
318 267
319 mpeg_prev(); 268 case BUTTON_LEFT:
269 if (keys_locked)
270 {
271 display_keylock_text(keys_locked);
272 draw_screen(id3);
320 break; 273 break;
274 }
321 275
322 case BUTTON_RIGHT: 276 mpeg_prev();
323 if (keys_locked) 277 break;
324 { 278
325 display_keylock_text(keys_locked); 279 case BUTTON_RIGHT:
326 draw_screen(id3); 280 if (keys_locked)
327 break; 281 {
328 } 282 display_keylock_text(keys_locked);
329 mpeg_next(); 283 draw_screen(id3);
330 break; 284 break;
285 }
286 mpeg_next();
287 break;
331 288
332#ifdef HAVE_PLAYER_KEYPAD 289#ifdef HAVE_PLAYER_KEYPAD
333 case BUTTON_MENU | BUTTON_LEFT: 290 case BUTTON_MENU | BUTTON_LEFT:
334 case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT: 291 case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT:
335 dont_go_to_menu = true; 292 dont_go_to_menu = true;
336 global_settings.volume--; 293 global_settings.volume--;
337 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) 294 if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME))
338 global_settings.volume = mpeg_sound_min(SOUND_VOLUME); 295 global_settings.volume = mpeg_sound_min(SOUND_VOLUME);
339 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 296 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
340 break; 297 break;
341 298
342 case BUTTON_MENU | BUTTON_RIGHT: 299 case BUTTON_MENU | BUTTON_RIGHT:
343 case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT: 300 case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT:
344 dont_go_to_menu = true; 301 dont_go_to_menu = true;
345 global_settings.volume++; 302 global_settings.volume++;
346 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) 303 if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME))
347 global_settings.volume = mpeg_sound_max(SOUND_VOLUME); 304 global_settings.volume = mpeg_sound_max(SOUND_VOLUME);
348 mpeg_sound_set(SOUND_VOLUME, global_settings.volume); 305 mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
349 break; 306 break;
350 307
351 case BUTTON_MENU: 308 case BUTTON_MENU:
352 lcd_icon(ICON_PARAM, true); 309 lcd_icon(ICON_PARAM, true);
353 menu_button_is_down = true; 310 menu_button_is_down = true;
354 break; 311 break;
355 312
356 case BUTTON_STOP | BUTTON_REL: 313 case BUTTON_STOP | BUTTON_REL:
357 /* The STOP key has been release while the MENU key 314 /* The STOP key has been release while the MENU key
358 was held */ 315 was held */
359 if(menu_button_is_down) 316 if(menu_button_is_down)
360 pending_keylock = !pending_keylock; 317 pending_keylock = !pending_keylock;
361 break; 318 break;
362#else 319#else
363 case BUTTON_F1: 320 case BUTTON_F1:
364 menu_button_is_down = true; 321 menu_button_is_down = true;
365 break; 322 break;
366 323
367 case BUTTON_DOWN | BUTTON_REL: 324 case BUTTON_DOWN | BUTTON_REL:
368 /* The DOWN key has been release while the F1 key 325 /* The DOWN key has been release while the F1 key
369 was held */ 326 was held */
370 if(menu_button_is_down) 327 if(menu_button_is_down)
371 { 328 {
372 pending_keylock = !pending_keylock; 329 pending_keylock = !pending_keylock;
373 debugf("pending: %d\n", pending_keylock); 330 debugf("pending: %d\n", pending_keylock);
374 } 331 }
375 break; 332 break;
376#endif 333#endif
377 334
378#ifdef HAVE_RECORDER_KEYPAD 335#ifdef HAVE_RECORDER_KEYPAD
379 case BUTTON_F1 | BUTTON_DOWN: 336 case BUTTON_F1 | BUTTON_DOWN:
380#else 337#else
381 case BUTTON_MENU | BUTTON_STOP: 338 case BUTTON_MENU | BUTTON_STOP:
382#endif 339#endif
383 if(keys_locked != pending_keylock) 340 if(keys_locked != pending_keylock)
384 { 341 {
385 keys_locked = pending_keylock; 342 keys_locked = pending_keylock;
386 343
387#ifdef HAVE_LCD_CHARCELLS 344#ifdef HAVE_LCD_CHARCELLS
388 if(keys_locked) 345 if(keys_locked)
389 lcd_icon(ICON_RECORD, true); 346 lcd_icon(ICON_RECORD, true);
390 else 347 else
391 lcd_icon(ICON_RECORD, false); 348 lcd_icon(ICON_RECORD, false);
392#endif 349#endif
393 display_keylock_text(keys_locked); 350 display_keylock_text(keys_locked);
394 draw_screen(id3); 351 draw_screen(id3);
395 } 352 }
396 353
397 dont_go_to_menu = true; 354 dont_go_to_menu = true;
398 break; 355 break;
399 356
400#ifdef HAVE_RECORDER_KEYPAD 357#ifdef HAVE_RECORDER_KEYPAD
401 case BUTTON_F1 | BUTTON_REL: 358 case BUTTON_F1 | BUTTON_REL:
402#else 359#else
403 case BUTTON_MENU | BUTTON_REL: 360 case BUTTON_MENU | BUTTON_REL:
404#endif 361#endif
405#ifdef HAVE_LCD_CHARCELLS 362#ifdef HAVE_LCD_CHARCELLS
406 lcd_icon(ICON_PARAM, false); 363 lcd_icon(ICON_PARAM, false);
407#endif 364#endif
408 if(!keys_locked && !dont_go_to_menu && menu_button_is_down) 365 if(!keys_locked && !dont_go_to_menu && menu_button_is_down)
409 { 366 {
410 lcd_stop_scroll(); 367 lcd_stop_scroll();
411 button_set_release(old_release_mask); 368 button_set_release(old_release_mask);
412 main_menu(); 369 main_menu();
413 old_release_mask = button_set_release(RELEASE_MASK); 370 old_release_mask = button_set_release(RELEASE_MASK);
414 id3 = mpeg_current_track(); 371 id3 = mpeg_current_track();
415 draw_screen(id3); 372 draw_screen(id3);
416 } 373 }
417 else 374 else
418 { 375 {
419 dont_go_to_menu = false; 376 dont_go_to_menu = false;
420 } 377 }
421 menu_button_is_down = false; 378 menu_button_is_down = false;
422 break; 379 break;
423 380
424#ifdef HAVE_RECORDER_KEYPAD 381#ifdef HAVE_RECORDER_KEYPAD
425 case BUTTON_OFF: 382 case BUTTON_OFF:
426#else 383#else
427 case BUTTON_STOP: 384 case BUTTON_STOP:
428#endif 385#endif
429 if (keys_locked) 386 if (keys_locked)
430 { 387 {
431 display_keylock_text(keys_locked); 388 display_keylock_text(keys_locked);
432 draw_screen(id3); 389 draw_screen(id3);
433 break; 390 break;
434 } 391 }
435 392
436 mpeg_stop(); 393 mpeg_stop();
437 status_set_playmode(STATUS_STOP); 394 status_set_playmode(STATUS_STOP);
438 button_set_release(old_release_mask); 395 button_set_release(old_release_mask);
439 return 0; 396 return 0;
440 397
441#ifndef SIMULATOR 398#ifndef SIMULATOR
442 case SYS_USB_CONNECTED: 399 case SYS_USB_CONNECTED:
443 /* Tell the USB thread that we are safe */ 400 /* Tell the USB thread that we are safe */
444 DEBUGF("wps got SYS_USB_CONNECTED\n"); 401 DEBUGF("wps got SYS_USB_CONNECTED\n");
445 usb_acknowledge(SYS_USB_CONNECTED_ACK); 402 usb_acknowledge(SYS_USB_CONNECTED_ACK);
446 403
447 /* Wait until the USB cable is extracted again */ 404 /* Wait until the USB cable is extracted again */
448 usb_wait_for_disconnect(&button_queue); 405 usb_wait_for_disconnect(&button_queue);
449 406
450 /* Signal to our caller that we have been in USB mode */ 407 /* Signal to our caller that we have been in USB mode */
451 return SYS_USB_CONNECTED; 408 return SYS_USB_CONNECTED;
452 break; 409 break;
453#endif 410#endif
454 } 411 case BUTTON_NONE: /* Timeout */
455 sleep(HZ/10); 412 if (mpeg_is_playing() && id3)
413 {
414#ifdef HAVE_LCD_BITMAP
415 snprintf(buffer,sizeof(buffer),
416 "Time: %d:%02d / %d:%02d",
417 id3->elapsed / 60000,
418 id3->elapsed % 60000 / 1000,
419 id3->length / 60000,
420 id3->length % 60000 / 1000 );
421
422 lcd_puts(0, 6, buffer);
423
424 lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5,
425 id3->elapsed*100/id3->length,
426 BAR_RIGHT);
427
428 lcd_update();
429#else
430 /* Display time with the filename scroll only because
431 the screen has room. */
432 if (global_settings.wps_display ==
433 PLAY_DISPLAY_FILENAME_SCROLL)
434 {
435 snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d",
436 id3->elapsed / 60000,
437 id3->elapsed % 60000 / 1000,
438 id3->length / 60000,
439 id3->length % 60000 / 1000 );
440
441 lcd_puts(0, 1, buffer);
442 lcd_update();
443 }
444#endif
445 }
446
447 status_draw();
448#ifdef HAVE_LCD_BITMAP
449 /* draw battery indicator line */
450 lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1);
451 lcd_drawline(0,LCD_HEIGHT-1,battery_level() *
452 (LCD_WIDTH-1) / 100, LCD_HEIGHT-1);
453#endif
454 break;
456 } 455 }
457 } 456 }
458} 457}