summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/settings.c43
-rw-r--r--apps/sleeptimer.c47
2 files changed, 79 insertions, 11 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 1e857d24f3..5357a950c4 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -934,6 +934,7 @@ bool set_int(char* string,
934{ 934{
935 bool done = false; 935 bool done = false;
936 int button; 936 int button;
937 int org_value=*variable;
937 938
938#ifdef HAVE_LCD_BITMAP 939#ifdef HAVE_LCD_BITMAP
939 if(global_settings.statusbar) 940 if(global_settings.statusbar)
@@ -978,10 +979,30 @@ bool set_int(char* string,
978 979
979#ifdef HAVE_RECORDER_KEYPAD 980#ifdef HAVE_RECORDER_KEYPAD
980 case BUTTON_LEFT: 981 case BUTTON_LEFT:
982 case BUTTON_PLAY:
983#else
984 case BUTTON_PLAY:
985#endif
986 done = true;
987 if (*variable != org_value) {
988 lcd_stop_scroll();
989 lcd_puts(0, 0, str(LANG_MENU_SETTING_OK));
990 sleep(HZ/2);
991 }
992 break;
993
994#ifdef HAVE_RECORDER_KEYPAD
995 case BUTTON_OFF:
981#else 996#else
982 case BUTTON_STOP: 997 case BUTTON_STOP:
983 case BUTTON_MENU: 998 case BUTTON_MENU:
984#endif 999#endif
1000 if (*variable != org_value) {
1001 *variable=org_value;
1002 lcd_stop_scroll();
1003 lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL));
1004 sleep(HZ/2);
1005 }
985 done = true; 1006 done = true;
986 break; 1007 break;
987 1008
@@ -1009,6 +1030,7 @@ bool set_option(char* string, int* variable, char* options[],
1009{ 1030{
1010 bool done = false; 1031 bool done = false;
1011 int button; 1032 int button;
1033 int org_value=*variable;
1012 1034
1013#ifdef HAVE_LCD_BITMAP 1035#ifdef HAVE_LCD_BITMAP
1014 if(global_settings.statusbar) 1036 if(global_settings.statusbar)
@@ -1016,6 +1038,7 @@ bool set_option(char* string, int* variable, char* options[],
1016 else 1038 else
1017 lcd_setmargins(0, 0); 1039 lcd_setmargins(0, 0);
1018#endif 1040#endif
1041
1019 lcd_clear_display(); 1042 lcd_clear_display();
1020 lcd_puts_scroll(0, 0, string); 1043 lcd_puts_scroll(0, 0, string);
1021 1044
@@ -1056,10 +1079,30 @@ bool set_option(char* string, int* variable, char* options[],
1056 1079
1057#ifdef HAVE_RECORDER_KEYPAD 1080#ifdef HAVE_RECORDER_KEYPAD
1058 case BUTTON_LEFT: 1081 case BUTTON_LEFT:
1082 case BUTTON_PLAY:
1083#else
1084 case BUTTON_PLAY:
1085#endif
1086 done = true;
1087 if (*variable != org_value) {
1088 lcd_stop_scroll();
1089 lcd_puts(0, 0, str(LANG_MENU_SETTING_OK));
1090 sleep(HZ/2);
1091 }
1092 break;
1093
1094#ifdef HAVE_RECORDER_KEYPAD
1095 case BUTTON_OFF:
1059#else 1096#else
1060 case BUTTON_STOP: 1097 case BUTTON_STOP:
1061 case BUTTON_MENU: 1098 case BUTTON_MENU:
1062#endif 1099#endif
1100 if (*variable != org_value) {
1101 *variable=org_value;
1102 lcd_stop_scroll();
1103 lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL));
1104 sleep(HZ/2);
1105 }
1063 done = true; 1106 done = true;
1064 break; 1107 break;
1065 1108
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}