summaryrefslogtreecommitdiff
path: root/apps/plugins/stopwatch.c
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2004-10-16 00:07:43 +0000
committerJens Arnold <amiconn@rockbox.org>2004-10-16 00:07:43 +0000
commitcc8cff2ec02caf29b7d0cf565e1f9e2ebd9b0e99 (patch)
treea5427744a2aa55546f3d5982e15bed2a8d5e5f49 /apps/plugins/stopwatch.c
parent4a5df8e8d178702d603bd7cd185525c7ff6a3064 (diff)
downloadrockbox-cc8cff2ec02caf29b7d0cf565e1f9e2ebd9b0e99.tar.gz
rockbox-cc8cff2ec02caf29b7d0cf565e1f9e2ebd9b0e99.zip
Plugin rework 1: (most) Compile-time keyboard configuration, for Ondio adaption. (all) Now using the default event handler, standard placement is now in switch() default case. (snow) Made USB aware. (video) Added contrast setting to Ondio version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5291 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/stopwatch.c')
-rw-r--r--apps/plugins/stopwatch.c71
1 files changed, 40 insertions, 31 deletions
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 370a1b51a6..6157dda038 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -31,6 +31,30 @@
31#define MAX_LAPS 10 31#define MAX_LAPS 10
32#define MAX_SCROLL (MAX_LAPS - LAP_LINES) 32#define MAX_SCROLL (MAX_LAPS - LAP_LINES)
33 33
34/* variable button definitions */
35#if CONFIG_KEYPAD == RECORDER_PAD
36#define STOPWATCH_QUIT BUTTON_OFF
37#define STOPWATCH_START_STOP BUTTON_PLAY
38#define STOPWATCH_RESET_TIMER BUTTON_LEFT
39#define STOPWATCH_LAP_TIMER BUTTON_ON
40#define STOPWATCH_SCROLL_UP BUTTON_UP
41#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
42#elif CONFIG_KEYPAD == ONDIO_PAD
43#define STOPWATCH_QUIT BUTTON_OFF
44#define STOPWATCH_START_STOP BUTTON_RIGHT
45#define STOPWATCH_RESET_TIMER BUTTON_LEFT
46#define STOPWATCH_LAP_TIMER BUTTON_MENU
47#define STOPWATCH_SCROLL_UP BUTTON_UP
48#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
49#elif CONFIG_KEYPAD == PLAYER_PAD
50#define STOPWATCH_QUIT BUTTON_MENU
51#define STOPWATCH_START_STOP BUTTON_PLAY
52#define STOPWATCH_RESET_TIMER BUTTON_STOP
53#define STOPWATCH_LAP_TIMER BUTTON_ON
54#define STOPWATCH_SCROLL_UP BUTTON_RIGHT
55#define STOPWATCH_SCROLL_DOWN BUTTON_LEFT
56#endif
57
34static struct plugin_api* rb; 58static struct plugin_api* rb;
35 59
36static int stopwatch = 0; 60static int stopwatch = 0;
@@ -102,17 +126,13 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
102 switch (button) 126 switch (button)
103 { 127 {
104 128
105 /* OFF/MENU key to exit */ 129 /* exit */
106#if CONFIG_KEYPAD == RECORDER_PAD 130 case STOPWATCH_QUIT:
107 case BUTTON_OFF:
108#else
109 case BUTTON_MENU:
110#endif
111 done = true; 131 done = true;
112 break; 132 break;
113 133
114 /* PLAY = Stop/Start toggle */ 134 /* Stop/Start toggle */
115 case BUTTON_PLAY: 135 case STOPWATCH_START_STOP:
116 counting = ! counting; 136 counting = ! counting;
117 if (counting) 137 if (counting)
118 { 138 {
@@ -126,12 +146,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
126 } 146 }
127 break; 147 break;
128 148
129 /* LEFT = Reset timer */ 149 /* Reset timer */
130#if CONFIG_KEYPAD == RECORDER_PAD 150 case STOPWATCH_RESET_TIMER:
131 case BUTTON_LEFT:
132#else
133 case BUTTON_STOP:
134#endif
135 if (!counting) 151 if (!counting)
136 { 152 {
137 prev_total = 0; 153 prev_total = 0;
@@ -140,19 +156,15 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
140 } 156 }
141 break; 157 break;
142 158
143 /* ON = Lap timer */ 159 /* Lap timer */
144 case BUTTON_ON: 160 case STOPWATCH_LAP_TIMER:
145 lap_times[curr_lap%MAX_LAPS] = stopwatch; 161 lap_times[curr_lap%MAX_LAPS] = stopwatch;
146 curr_lap++; 162 curr_lap++;
147 update_lap = true; 163 update_lap = true;
148 break; 164 break;
149 165
150 /* UP (RIGHT/+) = Scroll Lap timer up */ 166 /* Scroll Lap timer up */
151#if CONFIG_KEYPAD == RECORDER_PAD 167 case STOPWATCH_SCROLL_UP:
152 case BUTTON_UP:
153#else
154 case BUTTON_RIGHT:
155#endif
156 if (lap_scroll > 0) 168 if (lap_scroll > 0)
157 { 169 {
158 lap_scroll --; 170 lap_scroll --;
@@ -160,12 +172,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
160 } 172 }
161 break; 173 break;
162 174
163 /* DOWN (LEFT/-) = Scroll Lap timer down */ 175 /* Scroll Lap timer down */
164#if CONFIG_KEYPAD == RECORDER_PAD 176 case STOPWATCH_SCROLL_DOWN:
165 case BUTTON_DOWN:
166#else
167 case BUTTON_LEFT:
168#endif
169 if ((lap_scroll < curr_lap - LAP_LINES) && 177 if ((lap_scroll < curr_lap - LAP_LINES) &&
170 (lap_scroll < MAX_SCROLL) ) 178 (lap_scroll < MAX_SCROLL) )
171 { 179 {
@@ -174,9 +182,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
174 } 182 }
175 break; 183 break;
176 184
177 case SYS_USB_CONNECTED: 185 default:
178 rb->usb_screen(); 186 if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
179 return PLUGIN_USB_CONNECTED; 187 return PLUGIN_USB_CONNECTED;
188 break;
180 } 189 }
181 190
182 if (counting) 191 if (counting)