diff options
author | Zakk Roberts <midk@rockbox.org> | 2004-12-14 02:47:59 +0000 |
---|---|---|
committer | Zakk Roberts <midk@rockbox.org> | 2004-12-14 02:47:59 +0000 |
commit | e232b0868181e6129e9cc0fdba772abd80e95228 (patch) | |
tree | ca4cbe8c92294e6a9fd7a98e563d1b4150fde7dd /apps/plugins/clock.c | |
parent | eb3b33ede2d7f91bd54fdeab47e77e2b125ef031 (diff) | |
download | rockbox-e232b0868181e6129e9cc0fdba772abd80e95228.tar.gz rockbox-e232b0868181e6129e9cc0fdba772abd80e95228.zip |
Fixed general settings typo, split up general settings function, added cursor animations and updated cursor look (rounded edges).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5483 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/clock.c')
-rw-r--r-- | apps/plugins/clock.c | 671 |
1 files changed, 444 insertions, 227 deletions
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c index ab2e05e7c2..03ac0921a1 100644 --- a/apps/plugins/clock.c +++ b/apps/plugins/clock.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id: clock.c,v 2.51 2003/12/8 | 8 | * $Id: clock.c,v 2.60 2003/12/8 |
9 | * | 9 | * |
10 | * Copyright (C) 2003 Zakk Roberts | 10 | * Copyright (C) 2003 Zakk Roberts |
11 | * | 11 | * |
@@ -20,6 +20,10 @@ | |||
20 | /***************************** | 20 | /***************************** |
21 | * RELEASE NOTES | 21 | * RELEASE NOTES |
22 | 22 | ||
23 | ***** VERSION 2.60 ** | ||
24 | Fixed general settings typo, split up settings function, added cursor animations, | ||
25 | and updated cursor look (rounded edges). | ||
26 | |||
23 | ***** VERSION 2.51 ** | 27 | ***** VERSION 2.51 ** |
24 | -"Show Counter" option is now saved to disk | 28 | -"Show Counter" option is now saved to disk |
25 | 29 | ||
@@ -76,7 +80,13 @@ Original release, featuring analog / digital modes and a few options. | |||
76 | 80 | ||
77 | #if defined(HAVE_LCD_BITMAP) && defined(HAVE_RTC) | 81 | #if defined(HAVE_LCD_BITMAP) && defined(HAVE_RTC) |
78 | 82 | ||
79 | #define CLOCK_VERSION "2.51" | 83 | #define CLOCK_VERSION "2.60" |
84 | |||
85 | #define MODE_ANALOG 1 | ||
86 | #define MODE_DIGITAL 2 | ||
87 | #define MODE_LCD 3 | ||
88 | #define MODE_BINARY 4 | ||
89 | #define MODE_FULLSCREEN 5 | ||
80 | 90 | ||
81 | /************ | 91 | /************ |
82 | * Prototypes | 92 | * Prototypes |
@@ -1279,7 +1289,7 @@ bool show_credits(void) | |||
1279 | /********************************************************************** | 1289 | /********************************************************************** |
1280 | * Cleanup on plugin return | 1290 | * Cleanup on plugin return |
1281 | **********************************************************************/ | 1291 | **********************************************************************/ |
1282 | 1292 | ||
1283 | void cleanup(void *parameter) | 1293 | void cleanup(void *parameter) |
1284 | { | 1294 | { |
1285 | (void)parameter; /* unused */ | 1295 | (void)parameter; /* unused */ |
@@ -1291,6 +1301,19 @@ void cleanup(void *parameter) | |||
1291 | rb->backlight_set_timeout(rb->global_settings->backlight_timeout); | 1301 | rb->backlight_set_timeout(rb->global_settings->backlight_timeout); |
1292 | } | 1302 | } |
1293 | 1303 | ||
1304 | /************** | ||
1305 | * Draws cursor | ||
1306 | *************/ | ||
1307 | void cursor(int x, int y, int w, int h) | ||
1308 | { | ||
1309 | rb->lcd_invertrect(x, y, w, h); | ||
1310 | |||
1311 | rb->lcd_clearpixel(x, y); | ||
1312 | rb->lcd_clearpixel(x+w-1, y); | ||
1313 | rb->lcd_clearpixel(x, y+h-1); | ||
1314 | rb->lcd_clearpixel(x+w-1, y+h-1); | ||
1315 | } | ||
1316 | |||
1294 | /****************** | 1317 | /****************** |
1295 | * F1 Screen - HELP | 1318 | * F1 Screen - HELP |
1296 | *****************/ | 1319 | *****************/ |
@@ -1436,7 +1459,7 @@ bool f1_screen(void) | |||
1436 | break; | 1459 | break; |
1437 | 1460 | ||
1438 | default: | 1461 | default: |
1439 | if(rb->default_event_handler_ex(button, cleanup, NULL) | 1462 | if(rb->default_event_handler_ex(button, cleanup, NULL) |
1440 | == SYS_USB_CONNECTED) | 1463 | == SYS_USB_CONNECTED) |
1441 | return PLUGIN_USB_CONNECTED; | 1464 | return PLUGIN_USB_CONNECTED; |
1442 | break; | 1465 | break; |
@@ -1456,16 +1479,164 @@ void draw_checkbox(bool setting, int x, int y) | |||
1456 | rb->lcd_bitmap(checkbox_empty, x, y, 8, 6, true); | 1479 | rb->lcd_bitmap(checkbox_empty, x, y, 8, 6, true); |
1457 | } | 1480 | } |
1458 | 1481 | ||
1482 | void draw_settings(void) | ||
1483 | { | ||
1484 | if(settings.clock == 1) | ||
1485 | { | ||
1486 | rb->lcd_puts(0, 0, "OPTIONS (Analog)"); | ||
1487 | |||
1488 | rb->lcd_puts(2, 4, "Digits"); | ||
1489 | |||
1490 | if(settings.analog_date == 0) | ||
1491 | rb->lcd_puts(2, 5, "Date: Off"); | ||
1492 | else if(settings.analog_date == 1) | ||
1493 | rb->lcd_puts(2, 5, "Date: American"); | ||
1494 | else | ||
1495 | rb->lcd_puts(2, 5, "Date: European"); | ||
1496 | |||
1497 | if(settings.analog_time == 0) | ||
1498 | rb->lcd_puts(2, 6, "Time Readout:Off"); | ||
1499 | else if(settings.analog_time == 1) | ||
1500 | rb->lcd_puts(2, 6, "Time Readout:24h"); | ||
1501 | else | ||
1502 | rb->lcd_puts(2, 6, "Time Readout:12h"); | ||
1503 | |||
1504 | rb->lcd_puts(2, 7, "Second Hand"); | ||
1505 | |||
1506 | /* Draw checkboxes */ | ||
1507 | draw_checkbox(settings.analog_digits, 1, 33); | ||
1508 | |||
1509 | if(settings.analog_date == 0) | ||
1510 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1511 | else if(settings.analog_date == 1) | ||
1512 | rb->lcd_bitmap(checkbox_half, 1, 41, 8, 6, true); | ||
1513 | else | ||
1514 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1515 | |||
1516 | if(settings.analog_time == 0) | ||
1517 | rb->lcd_bitmap(checkbox_empty, 1, 49, 8, 6, true); | ||
1518 | else if(settings.analog_time == 1) | ||
1519 | rb->lcd_bitmap(checkbox_half, 1, 49, 8, 6, true); | ||
1520 | else | ||
1521 | rb->lcd_bitmap(checkbox_full, 1, 49, 8, 6, true); | ||
1522 | |||
1523 | draw_checkbox(settings.analog_secondhand, 1, 57); | ||
1524 | } | ||
1525 | else if(settings.clock == 2) | ||
1526 | { | ||
1527 | rb->lcd_puts(0, 0, "OPTIONS (Digital)"); | ||
1528 | |||
1529 | if(settings.digital_date == 0) | ||
1530 | rb->lcd_puts(2, 4, "Date: Off"); | ||
1531 | else if(settings.digital_date == 1) | ||
1532 | rb->lcd_puts(2, 4, "Date: American"); | ||
1533 | else | ||
1534 | rb->lcd_puts(2, 4, "Date: European"); | ||
1535 | |||
1536 | if(settings.digital_seconds == 0) | ||
1537 | rb->lcd_puts(2, 5, "Seconds: Off"); | ||
1538 | else if(settings.digital_seconds == 1) | ||
1539 | rb->lcd_puts(2, 5, "Seconds: Text"); | ||
1540 | else if(settings.digital_seconds == 2) | ||
1541 | rb->lcd_puts(2, 5, "Seconds: Bar"); | ||
1542 | else | ||
1543 | rb->lcd_puts(2, 5, "Seconds: Inverse"); | ||
1544 | |||
1545 | rb->lcd_puts(2, 6, "Blinking Colon"); | ||
1546 | rb->lcd_puts(2, 7, "12-Hour Format"); | ||
1547 | |||
1548 | /* Draw checkboxes */ | ||
1549 | if(settings.digital_date == 0) | ||
1550 | rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); | ||
1551 | else if(settings.digital_date == 1) | ||
1552 | rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); | ||
1553 | else | ||
1554 | rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); | ||
1555 | |||
1556 | if(settings.digital_seconds == 0) | ||
1557 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1558 | else if(settings.digital_seconds == 1) | ||
1559 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
1560 | else if(settings.digital_seconds == 2) | ||
1561 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
1562 | else | ||
1563 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1564 | |||
1565 | draw_checkbox(settings.digital_blinkcolon, 1, 49); | ||
1566 | draw_checkbox(settings.digital_12h, 1, 57); | ||
1567 | } | ||
1568 | else if(settings.clock == 3) | ||
1569 | { | ||
1570 | rb->lcd_puts(0, 0, "OPTIONS (LCD)"); | ||
1571 | |||
1572 | if(settings.lcd_date == 0) | ||
1573 | rb->lcd_puts(2, 4, "Date: Off"); | ||
1574 | else if(settings.lcd_date == 1) | ||
1575 | rb->lcd_puts(2, 4, "Date: American"); | ||
1576 | else | ||
1577 | rb->lcd_puts(2, 4, "Date: European"); | ||
1578 | |||
1579 | if(settings.lcd_seconds == 0) | ||
1580 | rb->lcd_puts(2, 5, "Seconds: Off"); | ||
1581 | else if(settings.lcd_seconds == 1) | ||
1582 | rb->lcd_puts(2, 5, "Seconds: Text"); | ||
1583 | else if(settings.lcd_seconds == 2) | ||
1584 | rb->lcd_puts(2, 5, "Seconds: Bar"); | ||
1585 | else | ||
1586 | rb->lcd_puts(2, 5, "Seconds: Inverse"); | ||
1587 | |||
1588 | rb->lcd_puts(2, 6, "Blinking Colon"); | ||
1589 | rb->lcd_puts(2, 7, "12-Hour Format"); | ||
1590 | |||
1591 | /* Draw checkboxes */ | ||
1592 | if(settings.lcd_date == 0) | ||
1593 | rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); | ||
1594 | else if(settings.lcd_date == 1) | ||
1595 | rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); | ||
1596 | else | ||
1597 | rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); | ||
1598 | |||
1599 | if(settings.lcd_seconds == 0) | ||
1600 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1601 | else if(settings.lcd_seconds == 1) | ||
1602 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
1603 | else if(settings.lcd_seconds == 2) | ||
1604 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
1605 | else | ||
1606 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1607 | |||
1608 | draw_checkbox(settings.lcd_blinkcolon, 1, 49); | ||
1609 | draw_checkbox(settings.lcd_12h, 1, 57); | ||
1610 | } | ||
1611 | else if(settings.clock == 4) | ||
1612 | { | ||
1613 | rb->lcd_puts(0, 0, "OPTIONS (Full)"); | ||
1614 | |||
1615 | rb->lcd_puts(2, 4, "Border"); | ||
1616 | rb->lcd_puts(2, 5, "Second Hand"); | ||
1617 | rb->lcd_puts(2, 6, "Invert Seconds"); | ||
1618 | |||
1619 | draw_checkbox(settings.fullscreen_border, 1, 33); | ||
1620 | draw_checkbox(settings.fullscreen_secondhand, 1, 41); | ||
1621 | draw_checkbox(settings.fullscreen_invertseconds, 1, 49); | ||
1622 | } | ||
1623 | else if(settings.clock == 5) | ||
1624 | { | ||
1625 | rb->lcd_puts(0, 0, "OPTIONS (Binary)"); | ||
1626 | rb->lcd_puts(2, 4, "-- NO OPTIONS --"); | ||
1627 | } | ||
1628 | } | ||
1629 | |||
1459 | /********************* | 1630 | /********************* |
1460 | * F3 Screen - OPTIONS | 1631 | * F3 Screen - OPTIONS |
1461 | ********************/ | 1632 | ********************/ |
1462 | bool f3_screen(void) | 1633 | bool f3_screen(void) |
1463 | { | 1634 | { |
1464 | /* cursor positions */ | 1635 | /* cursor positions */ |
1465 | int invert_analog = 1; | 1636 | int invert_analog=1,analog_y,analog_dummy; |
1466 | int invert_digital = 1; | 1637 | int invert_digital=1,digital_y,digital_dummy; |
1467 | int invert_lcd = 1; | 1638 | int invert_lcd=1,lcd_y,lcd_dummy; |
1468 | int invert_fullscreen = 1; | 1639 | int invert_full=1,full_y,full_dummy; |
1469 | 1640 | ||
1470 | done = false; | 1641 | done = false; |
1471 | 1642 | ||
@@ -1476,72 +1647,52 @@ bool f3_screen(void) | |||
1476 | rb->lcd_puts(0, 1, "UP/DN: move, L/R:"); | 1647 | rb->lcd_puts(0, 1, "UP/DN: move, L/R:"); |
1477 | rb->lcd_puts(0, 2, "change, OFF: done"); | 1648 | rb->lcd_puts(0, 2, "change, OFF: done"); |
1478 | 1649 | ||
1650 | draw_settings(); | ||
1651 | |||
1479 | if(settings.clock == 1) | 1652 | if(settings.clock == 1) |
1480 | { | 1653 | { |
1481 | rb->lcd_puts(0, 0, "OPTIONS (Analog)"); | ||
1482 | |||
1483 | rb->lcd_puts(2, 4, "Digits"); | ||
1484 | |||
1485 | if(settings.analog_date == 0) | ||
1486 | rb->lcd_puts(2, 5, "Date: Off"); | ||
1487 | else if(settings.analog_date == 1) | ||
1488 | rb->lcd_puts(2, 5, "Date: American"); | ||
1489 | else | ||
1490 | rb->lcd_puts(2, 5, "Date: European"); | ||
1491 | |||
1492 | if(settings.analog_time == 0) | ||
1493 | rb->lcd_puts(2, 6, "Time Readout:Off"); | ||
1494 | else if(settings.analog_time == 1) | ||
1495 | rb->lcd_puts(2, 6, "Time Readout:24h"); | ||
1496 | else | ||
1497 | rb->lcd_puts(2, 6, "Time Readout:12h"); | ||
1498 | |||
1499 | rb->lcd_puts(2, 7, "Second Hand"); | ||
1500 | |||
1501 | /* Draw checkboxes */ | ||
1502 | draw_checkbox(settings.analog_digits, 1, 33); | ||
1503 | |||
1504 | if(settings.analog_date == 0) | ||
1505 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1506 | else if(settings.analog_date == 1) | ||
1507 | rb->lcd_bitmap(checkbox_half, 1, 41, 8, 6, true); | ||
1508 | else | ||
1509 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1510 | |||
1511 | if(settings.analog_time == 0) | ||
1512 | rb->lcd_bitmap(checkbox_empty, 1, 49, 8, 6, true); | ||
1513 | else if(settings.analog_time == 1) | ||
1514 | rb->lcd_bitmap(checkbox_half, 1, 49, 8, 6, true); | ||
1515 | else | ||
1516 | rb->lcd_bitmap(checkbox_full, 1, 49, 8, 6, true); | ||
1517 | |||
1518 | draw_checkbox(settings.analog_secondhand, 1, 57); | ||
1519 | |||
1520 | /* Draw line selector */ | 1654 | /* Draw line selector */ |
1521 | switch(invert_analog) | 1655 | switch(invert_analog) |
1522 | { | 1656 | { |
1523 | case 1: rb->lcd_invertrect(0, 32, 112, 8); break; | 1657 | case 1: cursor(0, 32, 112, 8); break; |
1524 | case 2: rb->lcd_invertrect(0, 40, 112, 8); break; | 1658 | case 2: cursor(0, 40, 112, 8); break; |
1525 | case 3: rb->lcd_invertrect(0, 48, 112, 8); break; | 1659 | case 3: cursor(0, 48, 112, 8); break; |
1526 | case 4: rb->lcd_invertrect(0, 56, 112, 8); break; | 1660 | case 4: cursor(0, 56, 112, 8); break; |
1527 | } | 1661 | } |
1528 | |||
1529 | rb->lcd_update(); | 1662 | rb->lcd_update(); |
1530 | 1663 | ||
1531 | switch(rb->button_get_w_tmo(HZ/4)) | 1664 | switch(rb->button_get_w_tmo(HZ/4)) |
1532 | { | 1665 | { |
1533 | case BUTTON_UP: | 1666 | case BUTTON_UP: |
1534 | if(invert_analog > 1) | 1667 | if(invert_analog > 1) |
1668 | { | ||
1669 | analog_y = 32+(8*(invert_analog-1)); | ||
1670 | analog_dummy = analog_y; | ||
1671 | for(; analog_y>analog_dummy-8; analog_y--) | ||
1672 | { | ||
1673 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1674 | draw_settings(); | ||
1675 | cursor(0, analog_y, 112, 8); | ||
1676 | rb->lcd_update(); | ||
1677 | } | ||
1535 | invert_analog--; | 1678 | invert_analog--; |
1536 | else | 1679 | } |
1537 | invert_analog = 4; | ||
1538 | break; | 1680 | break; |
1539 | 1681 | ||
1540 | case BUTTON_DOWN: | 1682 | case BUTTON_DOWN: |
1541 | if(invert_analog < 4) | 1683 | if(invert_analog < 4) |
1684 | { | ||
1685 | analog_y = 32+(8*(invert_analog-1)); | ||
1686 | analog_dummy = analog_y; | ||
1687 | for(; analog_y<analog_dummy+8; analog_y++) | ||
1688 | { | ||
1689 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1690 | draw_settings(); | ||
1691 | cursor(0, analog_y, 112, 8); | ||
1692 | rb->lcd_update(); | ||
1693 | } | ||
1542 | invert_analog++; | 1694 | invert_analog++; |
1543 | else | 1695 | } |
1544 | invert_analog = 1; | ||
1545 | break; | 1696 | break; |
1546 | 1697 | ||
1547 | case BUTTON_LEFT: | 1698 | case BUTTON_LEFT: |
@@ -1588,72 +1739,48 @@ bool f3_screen(void) | |||
1588 | } | 1739 | } |
1589 | else if(settings.clock == 2) | 1740 | else if(settings.clock == 2) |
1590 | { | 1741 | { |
1591 | rb->lcd_puts(0, 0, "OPTIONS (Digital)"); | ||
1592 | |||
1593 | if(settings.digital_date == 0) | ||
1594 | rb->lcd_puts(2, 4, "Date: Off"); | ||
1595 | else if(settings.digital_date == 1) | ||
1596 | rb->lcd_puts(2, 4, "Date: American"); | ||
1597 | else | ||
1598 | rb->lcd_puts(2, 4, "Date: European"); | ||
1599 | |||
1600 | if(settings.digital_seconds == 0) | ||
1601 | rb->lcd_puts(2, 5, "Seconds: Off"); | ||
1602 | else if(settings.digital_seconds == 1) | ||
1603 | rb->lcd_puts(2, 5, "Seconds: Text"); | ||
1604 | else if(settings.digital_seconds == 2) | ||
1605 | rb->lcd_puts(2, 5, "Seconds: Bar"); | ||
1606 | else | ||
1607 | rb->lcd_puts(2, 5, "Seconds: Inverse"); | ||
1608 | |||
1609 | rb->lcd_puts(2, 6, "Blinking Colon"); | ||
1610 | rb->lcd_puts(2, 7, "12-Hour Format"); | ||
1611 | |||
1612 | /* Draw checkboxes */ | ||
1613 | if(settings.digital_date == 0) | ||
1614 | rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); | ||
1615 | else if(settings.digital_date == 1) | ||
1616 | rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); | ||
1617 | else | ||
1618 | rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); | ||
1619 | |||
1620 | if(settings.digital_seconds == 0) | ||
1621 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1622 | else if(settings.digital_seconds == 1) | ||
1623 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
1624 | else if(settings.digital_seconds == 2) | ||
1625 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
1626 | else | ||
1627 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1628 | |||
1629 | draw_checkbox(settings.digital_blinkcolon, 1, 49); | ||
1630 | draw_checkbox(settings.digital_12h, 1, 57); | ||
1631 | |||
1632 | /* Draw a line selector */ | 1742 | /* Draw a line selector */ |
1633 | switch(invert_digital) | 1743 | switch(invert_digital) |
1634 | { | 1744 | { |
1635 | case 1: rb->lcd_invertrect(0, 32, 112, 8); break; | 1745 | case 1: cursor(0, 32, 112, 8); break; |
1636 | case 2: rb->lcd_invertrect(0, 40, 112, 8); break; | 1746 | case 2: cursor(0, 40, 112, 8); break; |
1637 | case 3: rb->lcd_invertrect(0, 48, 112, 8); break; | 1747 | case 3: cursor(0, 48, 112, 8); break; |
1638 | case 4: rb->lcd_invertrect(0, 56, 112, 8); break; | 1748 | case 4: cursor(0, 56, 112, 8); break; |
1639 | } | 1749 | } |
1640 | |||
1641 | rb->lcd_update(); | 1750 | rb->lcd_update(); |
1642 | 1751 | ||
1643 | switch(rb->button_get_w_tmo(HZ/4)) | 1752 | switch(rb->button_get_w_tmo(HZ/4)) |
1644 | { | 1753 | { |
1645 | case BUTTON_UP: | 1754 | case BUTTON_UP: |
1646 | if(invert_digital == 1) | 1755 | if(invert_digital > 1) |
1647 | invert_digital = 4; | 1756 | { |
1648 | else | 1757 | digital_y = 32+(8*(invert_digital-1)); |
1758 | digital_dummy = digital_y; | ||
1759 | for(; digital_y>digital_dummy-8; digital_y--) | ||
1760 | { | ||
1761 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1762 | draw_settings(); | ||
1763 | cursor(0, digital_y, 112, 8); | ||
1764 | rb->lcd_update(); | ||
1765 | } | ||
1649 | invert_digital--; | 1766 | invert_digital--; |
1767 | } | ||
1650 | break; | 1768 | break; |
1651 | 1769 | ||
1652 | case BUTTON_DOWN: | 1770 | case BUTTON_DOWN: |
1653 | if(invert_digital == 4) | 1771 | if(invert_digital < 4) |
1654 | invert_digital = 1; | 1772 | { |
1655 | else | 1773 | digital_y = 32+(8*(invert_digital-1)); |
1774 | digital_dummy = digital_y; | ||
1775 | for(; digital_y<digital_dummy+8; digital_y++) | ||
1776 | { | ||
1777 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1778 | draw_settings(); | ||
1779 | cursor(0, digital_y, 112, 8); | ||
1780 | rb->lcd_update(); | ||
1781 | } | ||
1656 | invert_digital++; | 1782 | invert_digital++; |
1783 | } | ||
1657 | break; | 1784 | break; |
1658 | 1785 | ||
1659 | case BUTTON_LEFT: | 1786 | case BUTTON_LEFT: |
@@ -1700,71 +1827,48 @@ bool f3_screen(void) | |||
1700 | } | 1827 | } |
1701 | else if(settings.clock == 3) | 1828 | else if(settings.clock == 3) |
1702 | { | 1829 | { |
1703 | rb->lcd_puts(0, 0, "OPTIONS (LCD)"); | ||
1704 | |||
1705 | if(settings.lcd_date == 0) | ||
1706 | rb->lcd_puts(2, 4, "Date: Off"); | ||
1707 | else if(settings.lcd_date == 1) | ||
1708 | rb->lcd_puts(2, 4, "Date: American"); | ||
1709 | else | ||
1710 | rb->lcd_puts(2, 4, "Date: European"); | ||
1711 | |||
1712 | if(settings.lcd_seconds == 0) | ||
1713 | rb->lcd_puts(2, 5, "Seconds: Off"); | ||
1714 | else if(settings.lcd_seconds == 1) | ||
1715 | rb->lcd_puts(2, 5, "Seconds: Text"); | ||
1716 | else if(settings.lcd_seconds == 2) | ||
1717 | rb->lcd_puts(2, 5, "Seconds: Bar"); | ||
1718 | else | ||
1719 | rb->lcd_puts(2, 5, "Seconds: Inverse"); | ||
1720 | |||
1721 | rb->lcd_puts(2, 6, "Blinking Colon"); | ||
1722 | rb->lcd_puts(2, 7, "12-Hour Format"); | ||
1723 | |||
1724 | /* Draw checkboxes */ | ||
1725 | if(settings.lcd_date == 0) | ||
1726 | rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); | ||
1727 | else if(settings.lcd_date == 1) | ||
1728 | rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); | ||
1729 | else | ||
1730 | rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); | ||
1731 | |||
1732 | if(settings.lcd_seconds == 0) | ||
1733 | rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); | ||
1734 | else if(settings.lcd_seconds == 1) | ||
1735 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
1736 | else if(settings.lcd_seconds == 2) | ||
1737 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
1738 | else | ||
1739 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
1740 | |||
1741 | draw_checkbox(settings.lcd_blinkcolon, 1, 49); | ||
1742 | draw_checkbox(settings.lcd_12h, 1, 57); | ||
1743 | |||
1744 | /* Draw a line selector */ | 1830 | /* Draw a line selector */ |
1745 | switch(invert_lcd) | 1831 | switch(invert_lcd) |
1746 | { | 1832 | { |
1747 | case 1: rb->lcd_invertrect(0, 32, 112, 8); break; | 1833 | case 1: cursor(0, 32, 112, 8); break; |
1748 | case 2: rb->lcd_invertrect(0, 40, 112, 8); break; | 1834 | case 2: cursor(0, 40, 112, 8); break; |
1749 | case 3: rb->lcd_invertrect(0, 48, 112, 8); break; | 1835 | case 3: cursor(0, 48, 112, 8); break; |
1750 | case 4: rb->lcd_invertrect(0, 56, 112, 8); break; | 1836 | case 4: cursor(0, 56, 112, 8); break; |
1751 | } | 1837 | } |
1752 | rb->lcd_update(); | 1838 | rb->lcd_update(); |
1753 | 1839 | ||
1754 | switch(rb->button_get_w_tmo(HZ/4)) | 1840 | switch(rb->button_get_w_tmo(HZ/4)) |
1755 | { | 1841 | { |
1756 | case BUTTON_UP: | 1842 | case BUTTON_UP: |
1757 | if(invert_lcd == 1) | 1843 | if(invert_lcd > 1) |
1758 | invert_lcd = 4; | 1844 | { |
1759 | else | 1845 | lcd_y = 32+(8*(invert_lcd-1)); |
1846 | lcd_dummy = lcd_y; | ||
1847 | for(; lcd_y>lcd_dummy-8; lcd_y--) | ||
1848 | { | ||
1849 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1850 | draw_settings(); | ||
1851 | cursor(0, lcd_y, 112, 8); | ||
1852 | rb->lcd_update(); | ||
1853 | } | ||
1760 | invert_lcd--; | 1854 | invert_lcd--; |
1855 | } | ||
1761 | break; | 1856 | break; |
1762 | 1857 | ||
1763 | case BUTTON_DOWN: | 1858 | case BUTTON_DOWN: |
1764 | if(invert_lcd == 4) | 1859 | if(invert_lcd < 4) |
1765 | invert_lcd = 1; | 1860 | { |
1766 | else | 1861 | lcd_y = 32+(8*(invert_lcd-1)); |
1862 | lcd_dummy = lcd_y; | ||
1863 | for(; lcd_y<lcd_dummy+8; lcd_y++) | ||
1864 | { | ||
1865 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1866 | draw_settings(); | ||
1867 | cursor(0, lcd_y, 112, 8); | ||
1868 | rb->lcd_update(); | ||
1869 | } | ||
1767 | invert_lcd++; | 1870 | invert_lcd++; |
1871 | } | ||
1768 | break; | 1872 | break; |
1769 | 1873 | ||
1770 | case BUTTON_LEFT: | 1874 | case BUTTON_LEFT: |
@@ -1811,24 +1915,13 @@ bool f3_screen(void) | |||
1811 | } | 1915 | } |
1812 | else if(settings.clock == 4) | 1916 | else if(settings.clock == 4) |
1813 | { | 1917 | { |
1814 | rb->lcd_puts(0, 0, "OPTIONS (Full)"); | 1918 | /* Draw a line selector */ |
1815 | 1919 | switch(invert_full) | |
1816 | rb->lcd_puts(2, 4, "Border"); | ||
1817 | rb->lcd_puts(2, 5, "Second Hand"); | ||
1818 | rb->lcd_puts(2, 6, "Invert Seconds"); | ||
1819 | |||
1820 | draw_checkbox(settings.fullscreen_border, 1, 33); | ||
1821 | draw_checkbox(settings.fullscreen_secondhand, 1, 41); | ||
1822 | draw_checkbox(settings.fullscreen_invertseconds, 1, 49); | ||
1823 | |||
1824 | /* Draw a line selector | ||
1825 | * There are 4 values here in case we decide to "up" the amount of settings */ | ||
1826 | switch(invert_fullscreen) | ||
1827 | { | 1920 | { |
1828 | case 1: rb->lcd_invertrect(0, 32, 112, 8); break; | 1921 | case 1: cursor(0, 32, 112, 8); break; |
1829 | case 2: rb->lcd_invertrect(0, 40, 112, 8); break; | 1922 | case 2: cursor(0, 40, 112, 8); break; |
1830 | case 3: rb->lcd_invertrect(0, 48, 112, 8); break; | 1923 | case 3: cursor(0, 48, 112, 8); break; |
1831 | case 4: rb->lcd_invertrect(0, 56, 112, 8); break; | 1924 | case 4: cursor(0, 56, 112, 8); break; |
1832 | } | 1925 | } |
1833 | 1926 | ||
1834 | rb->lcd_update(); | 1927 | rb->lcd_update(); |
@@ -1836,34 +1929,52 @@ bool f3_screen(void) | |||
1836 | switch(rb->button_get_w_tmo(HZ/4)) | 1929 | switch(rb->button_get_w_tmo(HZ/4)) |
1837 | { | 1930 | { |
1838 | case BUTTON_UP: | 1931 | case BUTTON_UP: |
1839 | if(invert_fullscreen == 1) | 1932 | if(invert_full > 1) |
1840 | invert_fullscreen = 3; | 1933 | { |
1841 | else | 1934 | full_y = 32+(8*(invert_full-1)); |
1842 | invert_fullscreen--; | 1935 | full_dummy = full_y; |
1936 | for(; full_y>full_dummy-8; full_y--) | ||
1937 | { | ||
1938 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1939 | draw_settings(); | ||
1940 | cursor(0, full_y, 112, 8); | ||
1941 | rb->lcd_update(); | ||
1942 | } | ||
1943 | invert_full--; | ||
1944 | } | ||
1843 | break; | 1945 | break; |
1844 | 1946 | ||
1845 | case BUTTON_DOWN: | 1947 | case BUTTON_DOWN: |
1846 | if(invert_fullscreen == 3) | 1948 | if(invert_full < 3) |
1847 | invert_fullscreen = 1; | 1949 | { |
1848 | else | 1950 | full_y = 32+(8*(invert_full-1)); |
1849 | invert_fullscreen++; | 1951 | full_dummy = full_y; |
1952 | for(; full_y<full_dummy+8; full_y++) | ||
1953 | { | ||
1954 | rb->lcd_clearrect(0, 32, 112, 32); | ||
1955 | draw_settings(); | ||
1956 | cursor(0, full_y, 112, 8); | ||
1957 | rb->lcd_update(); | ||
1958 | } | ||
1959 | invert_full++; | ||
1960 | } | ||
1850 | break; | 1961 | break; |
1851 | 1962 | ||
1852 | case BUTTON_LEFT: | 1963 | case BUTTON_LEFT: |
1853 | if(invert_fullscreen == 1) | 1964 | if(invert_full == 1) |
1854 | settings.fullscreen_border = false; | 1965 | settings.fullscreen_border = false; |
1855 | else if(invert_fullscreen == 2) | 1966 | else if(invert_full == 2) |
1856 | settings.fullscreen_secondhand = false; | 1967 | settings.fullscreen_secondhand = false; |
1857 | else if(invert_fullscreen ==3) | 1968 | else if(invert_full ==3) |
1858 | settings.fullscreen_invertseconds = false; | 1969 | settings.fullscreen_invertseconds = false; |
1859 | break; | 1970 | break; |
1860 | 1971 | ||
1861 | case BUTTON_RIGHT: | 1972 | case BUTTON_RIGHT: |
1862 | if(invert_fullscreen == 1) | 1973 | if(invert_full == 1) |
1863 | settings.fullscreen_border = true; | 1974 | settings.fullscreen_border = true; |
1864 | else if(invert_fullscreen == 2) | 1975 | else if(invert_full == 2) |
1865 | settings.fullscreen_secondhand = true; | 1976 | settings.fullscreen_secondhand = true; |
1866 | else if(invert_fullscreen ==3) | 1977 | else if(invert_full ==3) |
1867 | settings.fullscreen_invertseconds = true; | 1978 | settings.fullscreen_invertseconds = true; |
1868 | break; | 1979 | break; |
1869 | 1980 | ||
@@ -1877,10 +1988,6 @@ bool f3_screen(void) | |||
1877 | } | 1988 | } |
1878 | else | 1989 | else |
1879 | { | 1990 | { |
1880 | rb->lcd_puts(0, 0, "OPTIONS (Binary)"); | ||
1881 | |||
1882 | rb->lcd_puts(2, 4, "-- NO OPTIONS --"); | ||
1883 | |||
1884 | rb->lcd_update(); | 1991 | rb->lcd_update(); |
1885 | 1992 | ||
1886 | switch(rb->button_get_w_tmo(HZ/4)) | 1993 | switch(rb->button_get_w_tmo(HZ/4)) |
@@ -1943,8 +2050,7 @@ void confirm_reset(void) | |||
1943 | ***********************************/ | 2050 | ***********************************/ |
1944 | void general_settings(void) | 2051 | void general_settings(void) |
1945 | { | 2052 | { |
1946 | int cursorpos = 1; | 2053 | int cursorpos=1, cursor_y, cursor_dummy; |
1947 | |||
1948 | done = false; | 2054 | done = false; |
1949 | 2055 | ||
1950 | while(!done) | 2056 | while(!done) |
@@ -1968,7 +2074,7 @@ void general_settings(void) | |||
1968 | rb->snprintf(buf, sizeof(buf), "UP/DOWN to move"); | 2074 | rb->snprintf(buf, sizeof(buf), "UP/DOWN to move"); |
1969 | rb->lcd_getstringsize(buf, &buf_w, &buf_h); | 2075 | rb->lcd_getstringsize(buf, &buf_w, &buf_h); |
1970 | rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); | 2076 | rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); |
1971 | rb->snprintf(buf, sizeof(buf), "PLAY to select"); | 2077 | rb->snprintf(buf, sizeof(buf), "L/R to change"); |
1972 | rb->lcd_getstringsize(buf, &buf_w, &buf_h); | 2078 | rb->lcd_getstringsize(buf, &buf_w, &buf_h); |
1973 | rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); | 2079 | rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); |
1974 | 2080 | ||
@@ -1985,10 +2091,10 @@ void general_settings(void) | |||
1985 | 2091 | ||
1986 | switch(cursorpos) | 2092 | switch(cursorpos) |
1987 | { | 2093 | { |
1988 | case 1: rb->lcd_invertrect(0, 16, 112, 8); break; | 2094 | case 1: cursor(0, 16, 112, 8); break; |
1989 | case 2: rb->lcd_invertrect(0, 24, 112, 8); break; | 2095 | case 2: cursor(0, 24, 112, 8); break; |
1990 | case 3: rb->lcd_invertrect(0, 32, 112, 8); break; | 2096 | case 3: cursor(0, 32, 112, 8); break; |
1991 | case 4: rb->lcd_invertrect(0, 40, 112, 8); break; | 2097 | case 4: cursor(0, 40, 112, 8); break; |
1992 | } | 2098 | } |
1993 | 2099 | ||
1994 | rb->lcd_update(); | 2100 | rb->lcd_update(); |
@@ -2002,15 +2108,75 @@ void general_settings(void) | |||
2002 | done = true; | 2108 | done = true; |
2003 | break; | 2109 | break; |
2004 | 2110 | ||
2005 | case BUTTON_UP: | 2111 | case BUTTON_UP: |
2006 | if(cursorpos > 1) | 2112 | if(cursorpos > 1) |
2007 | cursorpos--; | 2113 | { |
2008 | break; | 2114 | cursor_y = 16+(8*(cursorpos-1)); |
2115 | cursor_dummy = cursor_y; | ||
2116 | for(; cursor_y>cursor_dummy-8; cursor_y--) | ||
2117 | { | ||
2118 | rb->lcd_clearrect(0, 16, 112, 32); | ||
2119 | |||
2120 | rb->lcd_puts(2, 2, "Reset Settings"); | ||
2121 | rb->lcd_puts(2, 3, "Save Settings"); | ||
2122 | rb->lcd_puts(2, 4, "Show Counter"); | ||
2123 | if(settings.save_mode == 1) /* save on exit */ | ||
2124 | rb->lcd_puts(2, 5, "Save: on Exit"); | ||
2125 | else if(settings.save_mode == 2) | ||
2126 | rb->lcd_puts(2, 5, "Save: Automatic"); | ||
2127 | else | ||
2128 | rb->lcd_puts(2, 5, "Save: Manually"); | ||
2129 | rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); | ||
2130 | rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); | ||
2131 | draw_checkbox(settings.display_counter, 1, 33); | ||
2132 | if(settings.save_mode == 1) | ||
2133 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
2134 | else if(settings.save_mode == 2) | ||
2135 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
2136 | else | ||
2137 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
2138 | |||
2139 | cursor(0, cursor_y, 112, 8); | ||
2140 | rb->lcd_update(); | ||
2141 | } | ||
2142 | cursorpos--; | ||
2143 | } | ||
2144 | break; | ||
2009 | 2145 | ||
2010 | case BUTTON_DOWN: | 2146 | case BUTTON_DOWN: |
2011 | if(cursorpos < 4) | 2147 | if(cursorpos < 4) |
2012 | cursorpos++; | 2148 | { |
2013 | break; | 2149 | cursor_y = 16+(8*(cursorpos-1)); |
2150 | cursor_dummy = cursor_y; | ||
2151 | for(; cursor_y<cursor_dummy+8; cursor_y++) | ||
2152 | { | ||
2153 | rb->lcd_clearrect(0, 16, 112, 32); | ||
2154 | |||
2155 | rb->lcd_puts(2, 2, "Reset Settings"); | ||
2156 | rb->lcd_puts(2, 3, "Save Settings"); | ||
2157 | rb->lcd_puts(2, 4, "Show Counter"); | ||
2158 | if(settings.save_mode == 1) /* save on exit */ | ||
2159 | rb->lcd_puts(2, 5, "Save: on Exit"); | ||
2160 | else if(settings.save_mode == 2) | ||
2161 | rb->lcd_puts(2, 5, "Save: Automatic"); | ||
2162 | else | ||
2163 | rb->lcd_puts(2, 5, "Save: Manually"); | ||
2164 | rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); | ||
2165 | rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); | ||
2166 | draw_checkbox(settings.display_counter, 1, 33); | ||
2167 | if(settings.save_mode == 1) | ||
2168 | rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); | ||
2169 | else if(settings.save_mode == 2) | ||
2170 | rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); | ||
2171 | else | ||
2172 | rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); | ||
2173 | |||
2174 | cursor(0, cursor_y, 112, 8); | ||
2175 | rb->lcd_update(); | ||
2176 | } | ||
2177 | cursorpos++; | ||
2178 | } | ||
2179 | break; | ||
2014 | 2180 | ||
2015 | case BUTTON_LEFT: | 2181 | case BUTTON_LEFT: |
2016 | if(cursorpos == 3) | 2182 | if(cursorpos == 3) |
@@ -2213,6 +2379,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second) | |||
2213 | void select_mode(void) | 2379 | void select_mode(void) |
2214 | { | 2380 | { |
2215 | int cursorpos = settings.clock; | 2381 | int cursorpos = settings.clock; |
2382 | int cursor_dummy, cursor_y; | ||
2216 | 2383 | ||
2217 | done = false; | 2384 | done = false; |
2218 | 2385 | ||
@@ -2239,30 +2406,80 @@ void select_mode(void) | |||
2239 | /* draw line selector */ | 2406 | /* draw line selector */ |
2240 | switch(cursorpos) | 2407 | switch(cursorpos) |
2241 | { | 2408 | { |
2242 | case 1: rb->lcd_invertrect(0, 8, 112, 8); break; | 2409 | case 1: cursor(0, 8, 112, 8); break; |
2243 | case 2: rb->lcd_invertrect(0, 16, 112, 8); break; | 2410 | case 2: cursor(0, 16, 112, 8); break; |
2244 | case 3: rb->lcd_invertrect(0, 24, 112, 8); break; | 2411 | case 3: cursor(0, 24, 112, 8); break; |
2245 | case 4: rb->lcd_invertrect(0, 32, 112, 8); break; | 2412 | case 4: cursor(0, 32, 112, 8); break; |
2246 | case 5: rb->lcd_invertrect(0, 40, 112, 8); break; | 2413 | case 5: cursor(0, 40, 112, 8); break; |
2247 | } | 2414 | } |
2248 | 2415 | ||
2249 | rb->lcd_update(); | 2416 | rb->lcd_update(); |
2250 | 2417 | ||
2251 | switch(rb->button_get_w_tmo(HZ/4)) | 2418 | switch(rb->button_get_w_tmo(HZ/4)) |
2252 | { | 2419 | { |
2253 | case BUTTON_UP: | 2420 | case BUTTON_UP: |
2254 | if(cursorpos > 1) | 2421 | if(cursorpos > 1) |
2255 | cursorpos--; | 2422 | { |
2256 | else | 2423 | cursor_y = 8+(8*(cursorpos-1)); |
2257 | cursorpos = 5; | 2424 | cursor_dummy = cursor_y; |
2258 | break; | 2425 | for(; cursor_y>cursor_dummy-8; cursor_y--) |
2426 | { | ||
2427 | rb->lcd_clearrect(0, 8, 112, 40); | ||
2428 | |||
2429 | rb->lcd_puts(0, 0, "MODE SELECTOR"); | ||
2430 | rb->lcd_puts(2, 1, "Analog"); | ||
2431 | rb->lcd_puts(2, 2, "Digital"); | ||
2432 | rb->lcd_puts(2, 3, "LCD"); | ||
2433 | rb->lcd_puts(2, 4, "Fullscreen"); | ||
2434 | rb->lcd_puts(2, 5, "Binary"); | ||
2435 | rb->lcd_puts(0, 6, "UP/DOWN: Choose"); | ||
2436 | rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel"); | ||
2437 | |||
2438 | /* draw an arrow next to all of them */ | ||
2439 | rb->lcd_bitmap(arrow, 1, 9, 8, 6, true); | ||
2440 | rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); | ||
2441 | rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); | ||
2442 | rb->lcd_bitmap(arrow, 1, 33, 8, 6, true); | ||
2443 | rb->lcd_bitmap(arrow, 1, 41, 8, 6, true); | ||
2444 | |||
2445 | cursor(0, cursor_y, 112, 8); | ||
2446 | rb->lcd_update(); | ||
2447 | } | ||
2448 | cursorpos--; | ||
2449 | } | ||
2450 | break; | ||
2259 | 2451 | ||
2260 | case BUTTON_DOWN: | 2452 | case BUTTON_DOWN: |
2261 | if(cursorpos < 5) | 2453 | if(cursorpos < 5) |
2262 | cursorpos++; | 2454 | { |
2263 | else | 2455 | cursor_y = 8+(8*(cursorpos-1)); |
2264 | cursorpos = 1; | 2456 | cursor_dummy = cursor_y; |
2265 | break; | 2457 | for(; cursor_y<cursor_dummy+8; cursor_y++) |
2458 | { | ||
2459 | rb->lcd_clearrect(0, 8, 112, 40); | ||
2460 | |||
2461 | rb->lcd_puts(0, 0, "MODE SELECTOR"); | ||
2462 | rb->lcd_puts(2, 1, "Analog"); | ||
2463 | rb->lcd_puts(2, 2, "Digital"); | ||
2464 | rb->lcd_puts(2, 3, "LCD"); | ||
2465 | rb->lcd_puts(2, 4, "Fullscreen"); | ||
2466 | rb->lcd_puts(2, 5, "Binary"); | ||
2467 | rb->lcd_puts(0, 6, "UP/DOWN: Choose"); | ||
2468 | rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel"); | ||
2469 | |||
2470 | /* draw an arrow next to all of them */ | ||
2471 | rb->lcd_bitmap(arrow, 1, 9, 8, 6, true); | ||
2472 | rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); | ||
2473 | rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); | ||
2474 | rb->lcd_bitmap(arrow, 1, 33, 8, 6, true); | ||
2475 | rb->lcd_bitmap(arrow, 1, 41, 8, 6, true); | ||
2476 | |||
2477 | cursor(0, cursor_y, 112, 8); | ||
2478 | rb->lcd_update(); | ||
2479 | } | ||
2480 | cursorpos++; | ||
2481 | } | ||
2482 | break; | ||
2266 | 2483 | ||
2267 | case BUTTON_PLAY: | 2484 | case BUTTON_PLAY: |
2268 | case BUTTON_RIGHT: | 2485 | case BUTTON_RIGHT: |
@@ -2905,7 +3122,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
2905 | break; | 3122 | break; |
2906 | 3123 | ||
2907 | default: | 3124 | default: |
2908 | if(rb->default_event_handler_ex(button, cleanup, NULL) | 3125 | if(rb->default_event_handler_ex(button, cleanup, NULL) |
2909 | == SYS_USB_CONNECTED) | 3126 | == SYS_USB_CONNECTED) |
2910 | return PLUGIN_USB_CONNECTED; | 3127 | return PLUGIN_USB_CONNECTED; |
2911 | break; | 3128 | break; |