diff options
author | Björn Stenberg <bjorn@haxx.se> | 2004-09-19 21:58:37 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2004-09-19 21:58:37 +0000 |
commit | 6c33c51a4ca9907d23e3154d956fd6781122f492 (patch) | |
tree | f0e598efaf064bb72c33c0a8a2edba4cf9ebb13c /apps/sleeptimer.c | |
parent | 17f54a40f100a3343a15a431d235699024aa76c8 (diff) | |
download | rockbox-6c33c51a4ca9907d23e3154d956fd6781122f492.tar.gz rockbox-6c33c51a4ca9907d23e3154d956fd6781122f492.zip |
Redesigned the button handling. The code now uses symbolic function defines instead of checking for specific buttons. This makes it easier to add support for new devices with different button layouts.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5091 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/sleeptimer.c')
-rw-r--r-- | apps/sleeptimer.c | 96 |
1 files changed, 39 insertions, 57 deletions
diff --git a/apps/sleeptimer.c b/apps/sleeptimer.c index 4fc7515ac0..55599bf7b3 100644 --- a/apps/sleeptimer.c +++ b/apps/sleeptimer.c | |||
@@ -69,68 +69,50 @@ bool sleeptimer_screen(void) | |||
69 | button = button_get_w_tmo(HZ); | 69 | button = button_get_w_tmo(HZ); |
70 | switch(button) | 70 | switch(button) |
71 | { | 71 | { |
72 | #ifdef HAVE_RECORDER_KEYPAD | 72 | case SETTINGS_OK: |
73 | case BUTTON_LEFT: | 73 | done = true; |
74 | case BUTTON_PLAY: | 74 | break; |
75 | #else | 75 | |
76 | case BUTTON_PLAY: | 76 | case SETTINGS_CANCEL: |
77 | #endif | 77 | if (changed) { |
78 | done = true; | 78 | lcd_stop_scroll(); |
79 | break; | 79 | lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL)); |
80 | 80 | lcd_update(); | |
81 | #ifdef HAVE_RECORDER_KEYPAD | 81 | set_sleep_timer(org_timer); |
82 | case BUTTON_OFF: | 82 | sleep(HZ/2); |
83 | #else | 83 | } |
84 | case BUTTON_STOP: | 84 | done = true; |
85 | case BUTTON_MENU: | 85 | break; |
86 | #endif | 86 | |
87 | if (changed) { | 87 | case SETTINGS_INC: |
88 | lcd_stop_scroll(); | 88 | oldtime = (get_sleep_timer()+59) / 60; |
89 | lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL)); | 89 | if(oldtime < THRESHOLD) |
90 | lcd_update(); | 90 | amount = SMALL_STEP_SIZE; |
91 | set_sleep_timer(org_timer); | 91 | else |
92 | sleep(HZ/2); | 92 | amount = LARGE_STEP_SIZE; |
93 | } | ||
94 | done = true; | ||
95 | break; | ||
96 | |||
97 | #if defined(HAVE_PLAYER_KEYPAD) || defined(HAVE_NEO_KEYPAD) || defined(HAVE_ONDIO_KEYPAD) | ||
98 | case BUTTON_RIGHT: | ||
99 | #else | ||
100 | case BUTTON_UP: | ||
101 | #endif | ||
102 | oldtime = (get_sleep_timer()+59) / 60; | ||
103 | if(oldtime < THRESHOLD) | ||
104 | amount = SMALL_STEP_SIZE; | ||
105 | else | ||
106 | amount = LARGE_STEP_SIZE; | ||
107 | 93 | ||
108 | newtime = oldtime * 60 + amount; | 94 | newtime = oldtime * 60 + amount; |
109 | if(newtime > MAX_TIME) | 95 | if(newtime > MAX_TIME) |
110 | newtime = MAX_TIME; | 96 | newtime = MAX_TIME; |
111 | 97 | ||
112 | changed = sayit = true; | 98 | changed = sayit = true; |
113 | set_sleep_timer(newtime); | 99 | set_sleep_timer(newtime); |
114 | break; | 100 | break; |
115 | 101 | ||
116 | #if defined(HAVE_PLAYER_KEYPAD) || defined(HAVE_ONDIO_KEYPAD) | 102 | case SETTINGS_DEC: |
117 | case BUTTON_LEFT: | 103 | oldtime = (get_sleep_timer()+59) / 60; |
118 | #else | 104 | if(oldtime <= THRESHOLD) |
119 | case BUTTON_DOWN: | 105 | amount = SMALL_STEP_SIZE; |
120 | #endif | 106 | else |
121 | oldtime = (get_sleep_timer()+59) / 60; | 107 | amount = LARGE_STEP_SIZE; |
122 | if(oldtime <= THRESHOLD) | ||
123 | amount = SMALL_STEP_SIZE; | ||
124 | else | ||
125 | amount = LARGE_STEP_SIZE; | ||
126 | 108 | ||
127 | newtime = oldtime*60 - amount; | 109 | newtime = oldtime*60 - amount; |
128 | if(newtime < 0) | 110 | if(newtime < 0) |
129 | newtime = 0; | 111 | newtime = 0; |
130 | 112 | ||
131 | changed = sayit = true; | 113 | changed = sayit = true; |
132 | set_sleep_timer(newtime); | 114 | set_sleep_timer(newtime); |
133 | break; | 115 | break; |
134 | } | 116 | } |
135 | 117 | ||
136 | seconds = get_sleep_timer(); | 118 | seconds = get_sleep_timer(); |