diff options
| author | Uwe Freese <thebreaker@rockbox.org> | 2003-01-22 12:50:34 +0000 |
|---|---|---|
| committer | Uwe Freese <thebreaker@rockbox.org> | 2003-01-22 12:50:34 +0000 |
| commit | 86352ccc3f47bc0f6bdcdcdc7b752f0836900fcd (patch) | |
| tree | 6bb892fcae88e04a3a45239236cd3dde97d8d7ce /apps | |
| parent | fa2229559802f7066b55cc2ab0761c9e742658f7 (diff) | |
| download | rockbox-86352ccc3f47bc0f6bdcdcdc7b752f0836900fcd.zip rockbox-86352ccc3f47bc0f6bdcdcdc7b752f0836900fcd.tar.gz rockbox-86352ccc3f47bc0f6bdcdcdc7b752f0836900fcd.tar.bz2 rockbox-86352ccc3f47bc0f6bdcdcdc7b752f0836900fcd.tar.xz | |
Code for alarm mod. Enable with adding -DHAVE_ALARM_MOD in Makefile (EXTRA_DEFINES).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3150 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/alarm_menu.c | 154 | ||||
| -rw-r--r-- | apps/alarm_menu.h | 24 | ||||
| -rw-r--r-- | apps/lang/deutsch.lang | 80 | ||||
| -rw-r--r-- | apps/lang/english.lang | 30 | ||||
| -rw-r--r-- | apps/main_menu.c | 13 |
5 files changed, 298 insertions, 3 deletions
diff --git a/apps/alarm_menu.c b/apps/alarm_menu.c new file mode 100644 index 0000000..ba16743 --- /dev/null +++ b/apps/alarm_menu.c @@ -0,0 +1,154 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2003 Uwe Freese + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#include "config.h" +#include "options.h" + +#include "lcd.h" +#include "font.h" +#include "button.h" +#include "kernel.h" +#include "sprintf.h" +#include <string.h> +#include "settings.h" +#include "power.h" +#include "status.h" +#include "rtc.h" +#include <stdbool.h> + +#include "lang.h" +#include "power.h" +#include "alarm_menu.h" +#include "backlight.h" + +#ifdef HAVE_ALARM_MOD + +bool alarm_screen(void) +{ + /* get alarm time from RTC */ + + int h, m, hour, minute; + + rtc_get_alarm(&h, &m); + + m = m / 5 * 5; /* 5 min accuracy should be enough */ + + bool done=false; + char buf[32]; + + lcd_clear_display(); + lcd_puts(0,1, str(LANG_ALARM_MOD_KEYS)); + + while(!done) { + snprintf(buf, 32, str(LANG_ALARM_MOD_TIME), h, m); + lcd_puts(0,0, buf); + lcd_update(); + + switch(button_get(true)) { + case BUTTON_PLAY: + /* prevent that an alarm occurs in the shutdown procedure */ + /* accept alarms only if they are in 2 minutes or more */ + hour = rtc_read(0x03); + hour = ((hour & 0x30) >> 4) * 10 + (hour & 0x0f); + minute = rtc_read(0x02); + minute = ((minute & 0x70) >> 4) * 10 + (minute & 0x0f); + int togo = (m + h * 60 - minute - hour * 60 + 1440) % 1440; + if (togo > 1) { + lcd_clear_display(); + snprintf(buf, 32, str(LANG_ALARM_MOD_TIME_TO_GO), togo / 60, togo % 60); + lcd_puts(0,0, buf); + lcd_update(); + rtc_init(); + rtc_set_alarm(h,m); + /* in some cases enabling the alarm results in an activated AF flag */ + /* this should not happen, but it does */ + /* if you know why, tell me! */ + /* for now, we try again forever in this case */ + while (rtc_enable_alarm(true)) { /* error occured */ + sleep(HZ / 10); + rtc_init(); + rtc_set_alarm(h,m); + } + sleep(HZ); + lcd_puts(0,1,str(LANG_ALARM_MOD_SHUTDOWN)); + lcd_update(); + sleep(HZ); + power_off(); + } else { + lcd_clear_display(); + lcd_puts(0,0,str(LANG_ALARM_MOD_ERROR)); + lcd_update(); + sleep(HZ); + lcd_clear_display(); + lcd_puts(0,1,str(LANG_ALARM_MOD_KEYS)); + } + break; + + /* inc(m) */ + case BUTTON_RIGHT: + case BUTTON_RIGHT | BUTTON_REPEAT: + m += 5; + if (m == 60) { + h += 1; + m = 0; + } + if (h == 24) + h = 0; + break; + + /* dec(m) */ + case BUTTON_LEFT: + case BUTTON_LEFT | BUTTON_REPEAT: + m -= 5; + if (m == -5) { + h -= 1; + m = 55; + } + if (h == -1) + h = 23; + break; + +#ifdef HAVE_RECORDER_KEYPAD + /* inc(h) */ + case BUTTON_UP: + case BUTTON_UP | BUTTON_REPEAT: + h = (h+1) % 24; + break; + + /* dec(h) */ + case BUTTON_DOWN: + case BUTTON_DOWN | BUTTON_REPEAT: + h = (h+23) % 24; + break; +#endif + +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_OFF: +#else + case BUTTON_STOP: + case BUTTON_MENU: +#endif + done = true; + break; + } + } + + return false; +} + +#endif /* HAVE_ALARM_MOD */
\ No newline at end of file diff --git a/apps/alarm_menu.h b/apps/alarm_menu.h new file mode 100644 index 0000000..8ad062e --- /dev/null +++ b/apps/alarm_menu.h @@ -0,0 +1,24 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2003 Uwe Freese + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#ifndef _ALARM_MENU_H +#define _ALARM_MENU_H + +bool alarm_screen(void); + +#endif diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang index e5914cf..8607769 100644 --- a/apps/lang/deutsch.lang +++ b/apps/lang/deutsch.lang @@ -1208,3 +1208,83 @@ id: LANG_QUEUE_TOTAL desc: number of queued tracks %d eng: "Total queued: %d" new: "Anzahl: %d" + +id: LANG_ALARM_MOD_ALARM_MENU +desc: The name of the additional entry in the main menu for the RTC alarm mod. +eng: "Wake-Up Alarm" +new: "Wecker" + +id: LANG_ALARM_MOD_ERROR +desc: The text that tells that the time is incorrect (for the RTC alarm mod). +eng: "Alarm time is too soon!" +new: "Weckzeit ist zu früh!" + +id: LANG_ALARM_MOD_KEYS +desc: Shown key functions in alarm menu (for the RTC alarm mod). +eng: "PLAY=Set OFF=Cancel" +new: "PLAY=OK OFF=Abbruch" + +id: LANG_ALARM_MOD_SHUTDOWN +desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod). +eng: "Shutting down..." +new: "Schalte aus..." + +id: LANG_ALARM_MOD_TIME +desc: The current alarm time shown in the alarm menu for the RTC alarm mod. +eng: "Alarm time: %02d:%02d" +new: "Weckzeit: %02d:%02d" + +id: LANG_ALARM_MOD_TIME_TO_GO +desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod. +eng: "Waking up in %d:%02d" +new: "Einschalten in %d:%02d" + +id: LANG_DELETE +desc: The verb/action Delete +eng: "Delete" +new: "Löschen" + +id: LANG_DELETED +desc: A file has beed deleted +eng: "Deleted" +new: "Gelöscht" + +id: LANG_FAILED +desc: Something failed. To be appended after above actions +eng: "failed" +new: "fehlgeschlagen" + +id: LANG_MENU_SETTING_CANCEL +desc: Visual confirmation of canceling a changed setting +eng: "Canceled" +new: "Abgebrochen" + +id: LANG_MENU_SETTING_OK +desc: Visual confirmation of changing a setting +eng: "OK" +new: "OK" + +id: LANG_PLAYER_ONPLAY_1 +desc: +eng: "\x81 Queue" +new: "\x81 Warteschlange" + +id: LANG_PLAYER_ONPLAY_2 +desc: +eng: "- Ren + Del" +new: "- Umb + Ent" + +id: LANG_QUEUE +desc: The verb/action Queue +eng: "Queue" +new: "in Warteschlange stellen" + +id: LANG_REALLY_DELETE +desc: Really Delete? +eng: "Delete?" +new: "Löschen?" + +id: LANG_RENAME +desc: The verb/action Rename +eng: "Rename" +new: "Umbenennen" diff --git a/apps/lang/english.lang b/apps/lang/english.lang index aa47808..9e80f95 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -1286,3 +1286,33 @@ id: LANG_FAILED desc: Something failed. To be appended after above actions eng: "failed" new: + +id: LANG_ALARM_MOD_ALARM_MENU +desc: The name of the additional entry in the main menu for the RTC alarm mod. +eng: "Wake-Up Alarm" +new: + +id: LANG_ALARM_MOD_TIME +desc: The current alarm time shown in the alarm menu for the RTC alarm mod. +eng: "Alarm time: %02d:%02d" +new: + +id: LANG_ALARM_MOD_TIME_TO_GO +desc: The time until the alarm will go off shown in the alarm menu for the RTC alarm mod. +eng: "Waking up in %d:%02d" +new: + +id: LANG_ALARM_MOD_SHUTDOWN +desc: The text that tells the user that the alarm time is ok and the device shuts off (for the RTC alarm mod). +eng: "Shutting down..." +new: + +id: LANG_ALARM_MOD_ERROR +desc: The text that tells that the time is incorrect (for the RTC alarm mod). +eng: "Alarm time is too soon!" +new: + +id: LANG_ALARM_MOD_KEYS +desc: Shown key functions in alarm menu (for the RTC alarm mod). +eng: "PLAY=Set OFF=Cancel" +new: diff --git a/apps/main_menu.c b/apps/main_menu.c index 0b51a79..9eb6643 100644 --- a/apps/main_menu.c +++ b/apps/main_menu.c @@ -47,6 +47,10 @@ #include "recording.h" #endif +#ifdef HAVE_ALARM_MOD +#include "alarm_menu.h" +#endif + #ifdef HAVE_LCD_BITMAP #include "bmp.h" #include "icons.h" @@ -253,10 +257,13 @@ bool main_menu(void) struct menu_items items[] = { { str(LANG_SOUND_SETTINGS), sound_menu }, { str(LANG_GENERAL_SETTINGS), settings_menu }, - { str(LANG_SLEEP_TIMER), sleeptimer_screen }, + { str(LANG_SLEEP_TIMER), sleeptimer_screen }, +#ifdef HAVE_ALARM_MOD + { str(LANG_ALARM_MOD_ALARM_MENU), alarm_screen }, +#endif #ifdef HAVE_MAS3587F - { str(LANG_RECORDING_SETTINGS), recording_menu }, - { str(LANG_RECORDING), recording_screen }, + { str(LANG_RECORDING_SETTINGS), recording_menu }, + { str(LANG_RECORDING), recording_screen }, #endif #ifdef HAVE_LCD_BITMAP #ifdef USE_GAMES |