summaryrefslogtreecommitdiff
path: root/apps/plugins/clock.c
diff options
context:
space:
mode:
authorKevin Ferrare <kevin@rockbox.org>2007-07-31 06:17:28 +0000
committerKevin Ferrare <kevin@rockbox.org>2007-07-31 06:17:28 +0000
commitf48d0ef7a23af5da9ddd6e8f5289e48f90c62ddd (patch)
tree68ca6c633db5f89f02ca3892f46a9d411be7c561 /apps/plugins/clock.c
parent47bc31a174fff4981814186dd6dde3f729ae2d06 (diff)
downloadrockbox-f48d0ef7a23af5da9ddd6e8f5289e48f90c62ddd.zip
rockbox-f48d0ef7a23af5da9ddd6e8f5289e48f90c62ddd.tar.gz
rockbox-f48d0ef7a23af5da9ddd6e8f5289e48f90c62ddd.tar.bz2
rockbox-f48d0ef7a23af5da9ddd6e8f5289e48f90c62ddd.tar.xz
Removed duplicated code for menu items definition, made the plugin use the action API
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14089 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/clock.c')
-rw-r--r--apps/plugins/clock.c177
1 files changed, 42 insertions, 135 deletions
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index 8d0efee..c3df3ba 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -94,6 +94,7 @@ Original release, featuring analog/digital modes and a few options.
#include "xlcd.h"
#include "oldmenuapi.h"
#include "fixedpoint.h"
+#include "pluginlib_actions.h"
PLUGIN_HEADER
@@ -168,66 +169,17 @@ PLUGIN_HEADER
#define SMALLSEG_YOFS(x) (LCD_HEIGHT-x*SMALLSEG_HEIGHT)/2
/* Keymaps */
-#if (CONFIG_KEYPAD == RECORDER_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_ON|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_ON|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_PLAY
-#define ALT_MENU_BUTTON BUTTON_F1
-#define EXIT_BUTTON BUTTON_OFF
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_ON|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_ON|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_SELECT
-#define ALT_MENU_BUTTON BUTTON_F1
-#define EXIT_BUTTON BUTTON_OFF
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_PLAY|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_SELECT
-#define EXIT_BUTTON BUTTON_MENU
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == IRIVER_H300_PAD) || (CONFIG_KEYPAD == IRIVER_H100_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_ON|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_ON|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_SELECT
-#define EXIT_BUTTON BUTTON_OFF
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#define EXIT_RC_BUTTON BUTTON_RC_STOP
-#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_PLAY|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_SELECT
-#define EXIT_BUTTON BUTTON_POWER
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
-#define COUNTER_TOGGLE_BUTTON BUTTON_UP
-#define COUNTER_RESET_BUTTON BUTTON_DOWN
-#define MENU_BUTTON BUTTON_SELECT
-#define EXIT_BUTTON BUTTON_POWER
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_PLAY|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_PLAY|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_REW
-#define EXIT_BUTTON BUTTON_POWER
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
-#define COUNTER_TOGGLE_BUTTON (BUTTON_SELECT|BUTTON_REL)
-#define COUNTER_RESET_BUTTON (BUTTON_SELECT|BUTTON_REPEAT)
-#define MENU_BUTTON BUTTON_MENU
-#define EXIT_BUTTON BUTTON_A
-#define MODE_NEXT_BUTTON BUTTON_RIGHT
-#define MODE_PREV_BUTTON BUTTON_LEFT
-#endif
+const struct button_mapping* plugin_contexts[]={
+ generic_actions,
+ generic_directions
+};
+
+#define ACTION_COUNTER_TOGGLE PLA_FIRE
+#define ACTION_COUNTER_RESET PLA_FIRE_REPEAT
+#define ACTION_MENU PLA_MENU
+#define ACTION_EXIT PLA_QUIT
+#define ACTION_MODE_NEXT PLA_RIGHT
+#define ACTION_MODE_PREV PLA_LEFT
/************
* Prototypes
@@ -349,14 +301,7 @@ static const struct opt_items noyes_text[2] = {
{ "No", -1 },
{ "Yes", -1 }
};
-static const struct opt_items saving_options_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items show_counter_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
+
static const struct opt_items backlight_settings_text[3] = {
{ "Always Off", -1 },
{ "Rockbox setting", -1 },
@@ -370,66 +315,27 @@ static const struct opt_items counting_direction_text[2] = {
{"Down", -1},
{"Up", -1}
};
-static const struct opt_items analog_date_text[3] = {
+static const struct opt_items date_format_text[] = {
{ "No", -1 },
{ "American format", -1 },
{ "European format", -1 }
};
-static const struct opt_items analog_secondhand_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
+
static const struct opt_items analog_time_text[3] = {
{ "No", -1 },
{ "24-hour Format", -1 },
{ "12-hour Format", -1 }
};
-static const struct opt_items digital_seconds_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items digital_date_text[3] = {
- { "No", -1 },
- { "American format", -1 },
- { "European format", -1 }
-};
-static const struct opt_items digital_blinkcolon_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items digital_format_text[2] = {
+
+static const struct opt_items time_format_text[2] = {
{ "24-hour Format", -1 },
{ "12-hour Format", -1 }
};
-static const struct opt_items fullscreen_border_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items fullscreen_secondhand_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
+
static const struct opt_items binary_mode_text[2] = {
{ "Numbers", -1 },
{ "Dots", -1 }
};
-static const struct opt_items plain_date_text[3] = {
- { "No", -1 },
- { "American format", -1 },
- { "European format", -1 }
-};
-static const struct opt_items plain_seconds_text[3] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items plain_blinkcolon_text[2] = {
- { "No", -1 },
- { "Yes", -1 }
-};
-static const struct opt_items plain_format_text[3] = {
- { "24-hour Format", -1 },
- { "12-hour Format", -1 }
-};
/*****************************************
* All settings, saved to default_filename
@@ -1057,11 +963,11 @@ void analog_settings_menu(void)
{
case 0:
rb->set_option("Show Date", &settings.analog[analog_date],
- INT, analog_date_text, 3, NULL);
+ INT, date_format_text, 3, NULL);
break;
case 1:
rb->set_option("Show Second Hand", &settings.analog[analog_secondhand],
- INT, analog_secondhand_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 2:
rb->set_option("Show Time", &settings.analog[analog_time],
@@ -1102,19 +1008,19 @@ void digital_settings_menu(void)
{
case 0:
rb->set_option("Show Seconds", &settings.digital[digital_seconds],
- INT, digital_seconds_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 1:
rb->set_option("Show Date", &settings.digital[digital_date],
- INT, digital_date_text, 3, NULL);
+ INT, date_format_text, 3, NULL);
break;
case 2:
rb->set_option("Blinking Colon", &settings.digital[digital_blinkcolon],
- INT, digital_blinkcolon_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 3:
rb->set_option("Time Format", &settings.digital[digital_format],
- INT, digital_format_text, 2, NULL);
+ INT, time_format_text, 2, NULL);
break;
default:
@@ -1151,11 +1057,11 @@ void fullscreen_settings_menu(void)
{
case 0:
rb->set_option("Show Border", &settings.fullscreen[fullscreen_border],
- INT, fullscreen_border_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 1:
rb->set_option("Show Second Hand", &settings.fullscreen[fullscreen_secondhand],
- INT, fullscreen_secondhand_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
default:
@@ -1229,19 +1135,19 @@ void plain_settings_menu(void)
{
case 0:
rb->set_option("Show Date", &settings.plain[plain_date],
- INT, plain_date_text, 3, NULL);
+ INT, date_format_text, 3, NULL);
break;
case 1:
rb->set_option("Show Seconds", &settings.plain[plain_seconds],
- INT, plain_seconds_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 2:
rb->set_option("Blinking Colon", &settings.plain[plain_blinkcolon],
- INT, plain_blinkcolon_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 3:
rb->set_option("Time Format", &settings.plain[plain_format],
- INT, plain_format_text, 2, NULL);
+ INT, time_format_text, 2, NULL);
break;
default:
@@ -1323,7 +1229,7 @@ void general_settings(void)
case 2:
rb->set_option("Save On Exit", &settings.general[general_savesetting],
- INT, saving_options_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
/* if we no longer save on exit, we better save now to remember that */
if(settings.general[general_savesetting] == 0)
@@ -1332,7 +1238,7 @@ void general_settings(void)
case 3:
rb->set_option("Show Counter", &settings.general[general_counter],
- INT, show_counter_text, 2, NULL);
+ INT, noyes_text, 2, NULL);
break;
case 4:
@@ -1843,10 +1749,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
/*************************
* Scan for button presses
************************/
- button = rb->button_get_w_tmo(HZ/10);
+ button = pluginlib_getaction(rb, HZ/10, plugin_contexts, 2);
switch (button)
{
- case COUNTER_TOGGLE_BUTTON: /* start/stop counter */
+ case ACTION_COUNTER_TOGGLE: /* start/stop counter */
if(settings.general[general_counter])
{
if(!counter_btn_held) /* Ignore if the counter was reset */
@@ -1866,7 +1772,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
}
break;
- case COUNTER_RESET_BUTTON: /* reset counter */
+ case ACTION_COUNTER_RESET: /* reset counter */
if(settings.general[general_counter])
{
counter_btn_held = true; /* Ignore the release event */
@@ -1875,7 +1781,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
}
break;
- case MODE_NEXT_BUTTON:
+ case ACTION_MODE_NEXT:
if(settings.clock < CLOCK_MODES)
settings.clock++;
else
@@ -1884,7 +1790,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
set_digital_colors();
break;
- case MODE_PREV_BUTTON:
+ case ACTION_MODE_PREV:
if(settings.clock > 1)
settings.clock--;
else
@@ -1893,13 +1799,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
set_digital_colors();
break;
- case MENU_BUTTON: /* main menu */
-#ifdef ALT_MENU_BUTTON
- case ALT_MENU_BUTTON:
-#endif
+ case ACTION_MENU: /* main menu */
main_menu();
break;
+ case ACTION_EXIT: /* main menu */
+ exit_clock=true;
+ break;
+
default:
if(rb->default_event_handler_ex(button, cleanup, NULL)
== SYS_USB_CONNECTED)