summaryrefslogtreecommitdiff
path: root/apps/sleeptimer.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2004-09-19 21:58:37 +0000
committerBjörn Stenberg <bjorn@haxx.se>2004-09-19 21:58:37 +0000
commit6c33c51a4ca9907d23e3154d956fd6781122f492 (patch)
treef0e598efaf064bb72c33c0a8a2edba4cf9ebb13c /apps/sleeptimer.c
parent17f54a40f100a3343a15a431d235699024aa76c8 (diff)
downloadrockbox-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.c96
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();