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
This commit is contained in:
parent
47bc31a174
commit
f48d0ef7a2
1 changed files with 42 additions and 135 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue