diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/settings.c | 43 | ||||
-rw-r--r-- | apps/sleeptimer.c | 47 |
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 | } |