summaryrefslogtreecommitdiff
path: root/apps/plugins/stopwatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/stopwatch.c')
-rw-r--r--apps/plugins/stopwatch.c62
1 files changed, 23 insertions, 39 deletions
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 801c735f00..db9cfd57da 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -277,23 +277,7 @@
277#define STOPWATCH_SCROLL_UP BUTTON_UP 277#define STOPWATCH_SCROLL_UP BUTTON_UP
278#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 278#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
279 279
280#elif CONFIG_KEYPAD == XDUOO_X3_PAD 280#elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
281#define STOPWATCH_QUIT BUTTON_POWER
282#define STOPWATCH_START_STOP BUTTON_NEXT
283#define STOPWATCH_RESET_TIMER BUTTON_PREV
284#define STOPWATCH_LAP_TIMER BUTTON_PLAY
285#define STOPWATCH_SCROLL_UP BUTTON_HOME
286#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
287
288#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
289#define STOPWATCH_QUIT BUTTON_POWER
290#define STOPWATCH_START_STOP BUTTON_NEXT
291#define STOPWATCH_RESET_TIMER BUTTON_PREV
292#define STOPWATCH_LAP_TIMER BUTTON_PLAY
293#define STOPWATCH_SCROLL_UP BUTTON_HOME
294#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
295
296#elif CONFIG_KEYPAD == XDUOO_X20_PAD
297#define STOPWATCH_QUIT BUTTON_POWER 281#define STOPWATCH_QUIT BUTTON_POWER
298#define STOPWATCH_START_STOP BUTTON_NEXT 282#define STOPWATCH_START_STOP BUTTON_NEXT
299#define STOPWATCH_RESET_TIMER BUTTON_PREV 283#define STOPWATCH_RESET_TIMER BUTTON_PREV
@@ -309,7 +293,7 @@
309#define STOPWATCH_SCROLL_UP BUTTON_HOME 293#define STOPWATCH_SCROLL_UP BUTTON_HOME
310#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION 294#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
311 295
312#elif CONFIG_KEYPAD == IHIFI_770_PAD 296#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
313#define STOPWATCH_QUIT BUTTON_POWER 297#define STOPWATCH_QUIT BUTTON_POWER
314#define STOPWATCH_START_STOP BUTTON_NEXT 298#define STOPWATCH_START_STOP BUTTON_NEXT
315#define STOPWATCH_RESET_TIMER BUTTON_PREV 299#define STOPWATCH_RESET_TIMER BUTTON_PREV
@@ -317,13 +301,13 @@
317#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP 301#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP
318#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN 302#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN
319 303
320#elif CONFIG_KEYPAD == IHIFI_800_PAD 304#elif CONFIG_KEYPAD == EROSQ_PAD
321#define STOPWATCH_QUIT BUTTON_POWER 305#define STOPWATCH_QUIT BUTTON_POWER
322#define STOPWATCH_START_STOP BUTTON_NEXT 306#define STOPWATCH_START_STOP BUTTON_PLAY
323#define STOPWATCH_RESET_TIMER BUTTON_PREV 307#define STOPWATCH_RESET_TIMER BUTTON_BACK
324#define STOPWATCH_LAP_TIMER BUTTON_PLAY 308#define STOPWATCH_LAP_TIMER BUTTON_MENU
325#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP 309#define STOPWATCH_SCROLL_UP BUTTON_SCROLL_FWD
326#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN 310#define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_BACK
327 311
328#else 312#else
329#error No keymap defined! 313#error No keymap defined!
@@ -405,24 +389,24 @@ static void ticks_to_string(int ticks,int lap,int buflen, char * buf)
405 } 389 }
406} 390}
407 391
408/* 392/*
409 * Load saved stopwatch state, if exists. 393 * Load saved stopwatch state, if exists.
410 */ 394 */
411static void load_stopwatch(void) 395static void load_stopwatch(void)
412{ 396{
413 int fd; 397 int fd;
414 398
415 fd = rb->open(STOPWATCH_FILE, O_RDONLY); 399 fd = rb->open(STOPWATCH_FILE, O_RDONLY);
416 400
417 if (fd < 0) 401 if (fd < 0)
418 { 402 {
419 return; 403 return;
420 } 404 }
421 405
422 /* variable stopwatch isn't saved/loaded, because it is only used 406 /* variable stopwatch isn't saved/loaded, because it is only used
423 * temporarily in main loop 407 * temporarily in main loop
424 */ 408 */
425 409
426 rb->read(fd, &start_at, sizeof(start_at)); 410 rb->read(fd, &start_at, sizeof(start_at));
427 rb->read(fd, &prev_total, sizeof(prev_total)); 411 rb->read(fd, &prev_total, sizeof(prev_total));
428 rb->read(fd, &counting, sizeof(counting)); 412 rb->read(fd, &counting, sizeof(counting));
@@ -430,7 +414,7 @@ static void load_stopwatch(void)
430 rb->read(fd, &lap_scroll, sizeof(lap_scroll)); 414 rb->read(fd, &lap_scroll, sizeof(lap_scroll));
431 rb->read(fd, &lap_start, sizeof(lap_start)); 415 rb->read(fd, &lap_start, sizeof(lap_start));
432 rb->read(fd, lap_times, sizeof(lap_times)); 416 rb->read(fd, lap_times, sizeof(lap_times));
433 417
434 if (counting && start_at > *rb->current_tick) 418 if (counting && start_at > *rb->current_tick)
435 { 419 {
436 /* Stopwatch started in the future? Unlikely; probably started on a 420 /* Stopwatch started in the future? Unlikely; probably started on a
@@ -441,28 +425,28 @@ static void load_stopwatch(void)
441 start_at = 0; 425 start_at = 0;
442 counting = false; 426 counting = false;
443 } 427 }
444 428
445 rb->close(fd); 429 rb->close(fd);
446} 430}
447 431
448/* 432/*
449 * Save stopwatch state. 433 * Save stopwatch state.
450 */ 434 */
451static void save_stopwatch(void) 435static void save_stopwatch(void)
452{ 436{
453 int fd; 437 int fd;
454 438
455 fd = rb->open(STOPWATCH_FILE, O_CREAT|O_WRONLY|O_TRUNC, 0666); 439 fd = rb->open(STOPWATCH_FILE, O_CREAT|O_WRONLY|O_TRUNC, 0666);
456 440
457 if (fd < 0) 441 if (fd < 0)
458 { 442 {
459 return; 443 return;
460 } 444 }
461 445
462 /* variable stopwatch isn't saved/loaded, because it is only used 446 /* variable stopwatch isn't saved/loaded, because it is only used
463 * temporarily in main loop 447 * temporarily in main loop
464 */ 448 */
465 449
466 rb->write(fd, &start_at, sizeof(start_at)); 450 rb->write(fd, &start_at, sizeof(start_at));
467 rb->write(fd, &prev_total, sizeof(prev_total)); 451 rb->write(fd, &prev_total, sizeof(prev_total));
468 rb->write(fd, &counting, sizeof(counting)); 452 rb->write(fd, &counting, sizeof(counting));
@@ -470,7 +454,7 @@ static void save_stopwatch(void)
470 rb->write(fd, &lap_scroll, sizeof(lap_scroll)); 454 rb->write(fd, &lap_scroll, sizeof(lap_scroll));
471 rb->write(fd, &lap_start, sizeof(lap_start)); 455 rb->write(fd, &lap_start, sizeof(lap_start));
472 rb->write(fd, lap_times, sizeof(lap_times)); 456 rb->write(fd, lap_times, sizeof(lap_times));
473 457
474 rb->close(fd); 458 rb->close(fd);
475} 459}
476 460
@@ -491,9 +475,9 @@ enum plugin_status plugin_start(const void* parameter)
491 lines = (LCD_HEIGHT / h) - (LAP_Y); 475 lines = (LCD_HEIGHT / h) - (LAP_Y);
492 476
493 load_stopwatch(); 477 load_stopwatch();
494 478
495 rb->lcd_clear_display(); 479 rb->lcd_clear_display();
496 480
497 while (!done) 481 while (!done)
498 { 482 {
499 if (counting) 483 if (counting)