diff options
Diffstat (limited to 'apps/sleeptimer.c')
-rw-r--r-- | apps/sleeptimer.c | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/apps/sleeptimer.c b/apps/sleeptimer.c index ba554cc91c..b47d93698a 100644 --- a/apps/sleeptimer.c +++ b/apps/sleeptimer.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "power.h" | 29 | #include "power.h" |
30 | #include "powermgmt.h" | 30 | #include "powermgmt.h" |
31 | #include "status.h" | 31 | #include "status.h" |
32 | #include "debug.h" | ||
32 | 33 | ||
33 | #include "lang.h" | 34 | #include "lang.h" |
34 | 35 | ||
@@ -49,6 +50,8 @@ bool sleeptimer_screen(void) | |||
49 | char buf[32]; | 50 | char buf[32]; |
50 | int oldtime, newtime; | 51 | int oldtime, newtime; |
51 | int amount = 0; | 52 | int amount = 0; |
53 | int org_timer=get_sleep_timer(); | ||
54 | bool changed=false; | ||
52 | 55 | ||
53 | #ifdef HAVE_LCD_BITMAP | 56 | #ifdef HAVE_LCD_BITMAP |
54 | lcd_setfont(FONT_UI); | 57 | lcd_setfont(FONT_UI); |
@@ -56,19 +59,42 @@ bool sleeptimer_screen(void) | |||
56 | lcd_setmargins(w, 8); | 59 | lcd_setmargins(w, 8); |
57 | #endif | 60 | #endif |
58 | 61 | ||
62 | lcd_clear_display(); | ||
63 | lcd_puts_scroll(0, 0, str(LANG_SLEEP_TIMER)); | ||
64 | |||
59 | while(!done) | 65 | while(!done) |
60 | { | 66 | { |
61 | button = button_get_w_tmo(HZ/20); | 67 | button = button_get_w_tmo(HZ); |
62 | switch(button) | 68 | switch(button) |
63 | { | 69 | { |
64 | #ifdef HAVE_PLAYER_KEYPAD | 70 | #ifdef HAVE_RECORDER_KEYPAD |
65 | case BUTTON_STOP: | 71 | case BUTTON_LEFT: |
72 | case BUTTON_PLAY: | ||
66 | #else | 73 | #else |
74 | case BUTTON_PLAY: | ||
75 | #endif | ||
76 | done = true; | ||
77 | if (changed) { | ||
78 | lcd_stop_scroll(); | ||
79 | lcd_puts(0, 0, str(LANG_MENU_SETTING_OK)); | ||
80 | sleep(HZ/2); | ||
81 | } | ||
82 | break; | ||
83 | |||
84 | #ifdef HAVE_RECORDER_KEYPAD | ||
67 | case BUTTON_OFF: | 85 | case BUTTON_OFF: |
68 | case BUTTON_LEFT: | 86 | #else |
87 | case BUTTON_STOP: | ||
88 | case BUTTON_MENU: | ||
69 | #endif | 89 | #endif |
70 | done = true; | 90 | if (changed) { |
71 | break; | 91 | lcd_stop_scroll(); |
92 | lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL)); | ||
93 | set_sleep_timer(org_timer); | ||
94 | sleep(HZ/2); | ||
95 | } | ||
96 | done = true; | ||
97 | break; | ||
72 | 98 | ||
73 | #ifdef HAVE_PLAYER_KEYPAD | 99 | #ifdef HAVE_PLAYER_KEYPAD |
74 | case BUTTON_RIGHT: | 100 | case BUTTON_RIGHT: |
@@ -76,7 +102,6 @@ bool sleeptimer_screen(void) | |||
76 | case BUTTON_UP: | 102 | case BUTTON_UP: |
77 | #endif | 103 | #endif |
78 | oldtime = (get_sleep_timer()+59) / 60; | 104 | oldtime = (get_sleep_timer()+59) / 60; |
79 | |||
80 | if(oldtime < THRESHOLD) | 105 | if(oldtime < THRESHOLD) |
81 | amount = SMALL_STEP_SIZE; | 106 | amount = SMALL_STEP_SIZE; |
82 | else | 107 | else |
@@ -85,7 +110,8 @@ bool sleeptimer_screen(void) | |||
85 | newtime = oldtime * 60 + amount; | 110 | newtime = oldtime * 60 + amount; |
86 | if(newtime > MAX_TIME) | 111 | if(newtime > MAX_TIME) |
87 | newtime = MAX_TIME; | 112 | newtime = MAX_TIME; |
88 | 113 | ||
114 | changed=true; | ||
89 | set_sleep_timer(newtime); | 115 | set_sleep_timer(newtime); |
90 | break; | 116 | break; |
91 | 117 | ||
@@ -95,7 +121,6 @@ bool sleeptimer_screen(void) | |||
95 | case BUTTON_DOWN: | 121 | case BUTTON_DOWN: |
96 | #endif | 122 | #endif |
97 | oldtime = (get_sleep_timer()+59) / 60; | 123 | oldtime = (get_sleep_timer()+59) / 60; |
98 | |||
99 | if(oldtime <= THRESHOLD) | 124 | if(oldtime <= THRESHOLD) |
100 | amount = SMALL_STEP_SIZE; | 125 | amount = SMALL_STEP_SIZE; |
101 | else | 126 | else |
@@ -105,14 +130,13 @@ bool sleeptimer_screen(void) | |||
105 | if(newtime < 0) | 130 | if(newtime < 0) |
106 | newtime = 0; | 131 | newtime = 0; |
107 | 132 | ||
133 | changed=true; | ||
108 | set_sleep_timer(newtime); | 134 | set_sleep_timer(newtime); |
109 | break; | 135 | break; |
110 | } | 136 | } |
111 | 137 | ||
112 | seconds = get_sleep_timer(); | 138 | seconds = get_sleep_timer(); |
113 | 139 | ||
114 | lcd_clear_display(); | ||
115 | lcd_puts(0, 0, str(LANG_SLEEP_TIMER)); | ||
116 | if(seconds) | 140 | if(seconds) |
117 | { | 141 | { |
118 | seconds += 59; /* Round up for a "friendlier" display */ | 142 | seconds += 59; /* Round up for a "friendlier" display */ |
@@ -131,5 +155,6 @@ bool sleeptimer_screen(void) | |||
131 | 155 | ||
132 | lcd_update(); | 156 | lcd_update(); |
133 | } | 157 | } |
158 | lcd_stop_scroll(); | ||
134 | return false; | 159 | return false; |
135 | } | 160 | } |