1
0
Fork 0
forked from len0rd/rockbox

Change Disktidy to use the standard menu api and adapt it to work on the Archos Player. Change the default clean value from 'Mac' to 'Both.'

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12059 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Tom Ross 2007-01-18 01:38:50 +00:00
parent 2e194c123b
commit fd27a9d2bf
2 changed files with 77 additions and 142 deletions

View file

@ -30,10 +30,10 @@ wavplay.c
#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */ #ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */
dice.c dice.c
disktidy.c
flipit.c flipit.c
#ifdef HAVE_LCD_BITMAP /* Not for the Player */ #ifdef HAVE_LCD_BITMAP /* Not for the Player */
disktidy.c
mazezam.c mazezam.c
text_editor.c text_editor.c

View file

@ -39,67 +39,37 @@ enum tidy_system
}; };
/* variable button definitions */ /* variable button definitions */
#if CONFIG_KEYPAD == RECORDER_PAD #if CONFIG_KEYPAD == PLAYER_PAD
#define TIDY_DO BUTTON_ON #define TIDY_STOP BUTTON_STOP
#elif CONFIG_KEYPAD == RECORDER_PAD
#define TIDY_STOP BUTTON_OFF #define TIDY_STOP BUTTON_OFF
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD #elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
#define TIDY_DO BUTTON_ON
#define TIDY_STOP BUTTON_OFF #define TIDY_STOP BUTTON_OFF
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif CONFIG_KEYPAD == ONDIO_PAD #elif CONFIG_KEYPAD == ONDIO_PAD
#define TIDY_DO BUTTON_MENU
#define TIDY_STOP BUTTON_OFF #define TIDY_STOP BUTTON_OFF
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD) (CONFIG_KEYPAD == IRIVER_H300_PAD)
#define TIDY_DO BUTTON_SELECT
#define TIDY_STOP BUTTON_OFF #define TIDY_STOP BUTTON_OFF
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \ #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_4G_PAD) (CONFIG_KEYPAD == IPOD_4G_PAD)
#define TIDY_DO BUTTON_SELECT
#define TIDY_STOP BUTTON_MENU #define TIDY_STOP BUTTON_MENU
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) #elif CONFIG_KEYPAD == IAUDIO_X5_PAD
#define TIDY_DO BUTTON_PLAY
#define TIDY_STOP BUTTON_POWER #define TIDY_STOP BUTTON_POWER
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) #elif CONFIG_KEYPAD == GIGABEAT_PAD
#define TIDY_DO BUTTON_PLAY
#define TIDY_STOP BUTTON_POWER
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
#define TIDY_DO BUTTON_SELECT
#define TIDY_STOP BUTTON_A #define TIDY_STOP BUTTON_A
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) #elif CONFIG_KEYPAD == SANSA_E200_PAD
#define TIDY_DO BUTTON_SELECT
#define TIDY_STOP BUTTON_POWER #define TIDY_STOP BUTTON_POWER
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define TIDY_DO BUTTON_PLAY
#define TIDY_STOP BUTTON_POWER #define TIDY_STOP BUTTON_POWER
#define TIDY_LEFT BUTTON_LEFT
#define TIDY_RIGHT BUTTON_RIGHT
#else #else
#error DISKTIDY: Unsupported keypad #error DISKTIDY: Unsupported keypad
@ -115,8 +85,10 @@ void tidy_lcd_status(const char *name, int *removed)
rb->lcd_puts(0, 0, "Working ..."); rb->lcd_puts(0, 0, "Working ...");
rb->lcd_puts(0, 1, name); rb->lcd_puts(0, 1, name);
rb->snprintf(text, 24, "Cleaned up %d items", *removed); rb->snprintf(text, 24, "Cleaned up %d items", *removed);
#ifdef HAVE_LCD_BITMAP
rb->lcd_puts(0, 2, text); rb->lcd_puts(0, 2, text);
rb->lcd_update(); rb->lcd_update();
#endif
} }
void tidy_get_absolute_path(struct dirent *entry, char *fullname, void tidy_get_absolute_path(struct dirent *entry, char *fullname,
@ -366,113 +338,80 @@ enum plugin_status tidy_do(enum tidy_system system)
return status; return status;
} }
void tidy_lcd_menu(enum tidy_system system) int tidy_lcd_menu(void)
{ {
/* show menu text */ int loc, ret;
rb->lcd_clear_display();
/* show keys */ static const struct menu_item items[] =
#if CONFIG_KEYPAD == RECORDER_PAD
rb->lcd_puts(0, 0, "[On] to clean up");
rb->lcd_puts(0, 1, "[Off] to exit/abort");
#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
rb->lcd_puts(0, 0, "[On] to clean up");
rb->lcd_puts(0, 1, "[Off] to exit/abort");
#elif CONFIG_KEYPAD == ONDIO_PAD
rb->lcd_puts(0, 0, "[Menu] to clean up");
rb->lcd_puts(0, 1, "[Off] to exit/abort");
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
rb->lcd_puts(0, 0, "[Navi] to clean up");
rb->lcd_puts(0, 1, "[Off] to exit/abort");
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_4G_PAD)
rb->lcd_puts(0, 0, "[Select] to clean up");
rb->lcd_puts(0, 1, "[Menu] to exit/abort");
#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
rb->lcd_puts(0, 0, "[Play] to clean up");
rb->lcd_puts(0, 1, "[Power] to exit/abort");
#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
rb->lcd_puts(0, 0, "[Select] to clean up");
rb->lcd_puts(0, 1, "[A] to exit/abort");
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
rb->lcd_puts(0, 0, "[Play] to clean up");
rb->lcd_puts(0, 1, "[Power] to exit/abort");
#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
rb->lcd_puts(0, 0, "[Select] to clean up");
rb->lcd_puts(0, 1, "[Power] to exit/abort");
#else
#error DISKTIDY: Unsupported model
#endif
/* show selcted system */
switch (system)
{ {
case TIDY_MAC: { "Start Cleaning", NULL },
rb->lcd_puts(0, 2, "< Mac >"); { "Files to Clean", NULL},
rb->lcd_puts(0, 3, "Deletes"); { "Quit", NULL }
rb->lcd_puts(0, 4, "._* .DS_Store"); };
rb->lcd_puts(0, 5, "/.Trashes/");
static const struct opt_items system_option[3] =
{
{ "Mac", -1 },
{ "Windows", -1 },
{ "Both", -1}
};
loc = rb->menu_init(items, sizeof(items) / sizeof(*items),
NULL, NULL, NULL, NULL);
while (true)
{
switch(rb->menu_show(loc))
{
case 0:
return ret;
case 1:
rb->set_option("Files to Clean", &ret, INT, system_option, 3, NULL);
break; break;
case TIDY_WIN:
rb->lcd_puts(0, 2, "< Win >"); case 2:
rb->lcd_puts(0, 3, "Deletes"); return 99;
rb->lcd_puts(0, 4, "Thumbs.db /Recycled/");
rb->lcd_puts(0, 5, "/System Volume Information/"); default:
break; return 99;
case TIDY_BOTH: }
rb->lcd_puts(0, 2, "< Both >");
break;
} }
rb->lcd_update();
rb->menu_exit(loc);
} }
/* this is the plugin entry point */ /* this is the plugin entry point */
enum plugin_status plugin_start(struct plugin_api* api, void* parameter) enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
{ {
enum tidy_system system = TIDY_MAC; enum tidy_system system = TIDY_BOTH;
enum tidy_return status; enum tidy_return status;
int button; int button;
(void)parameter; (void)parameter;
rb = api; rb = api;
tidy_lcd_menu(system); switch(tidy_lcd_menu())
{
while (1) case 0:
system = TIDY_MAC;
break;
case 1:
system = TIDY_WIN;
break;
case 2:
system = TIDY_BOTH;
break;
case 99:
return PLUGIN_OK;
default:
system = TIDY_BOTH;
}
while (rb->button_get(false) != TIDY_STOP)
{ {
button = rb->button_get(false);
if (button == TIDY_LEFT)
{
if (system == 0)
{
system = 2;
}
else
{
system --;
}
tidy_lcd_menu(system);
}
if (button == TIDY_RIGHT)
{
if (system == 2)
{
system = 0;
}
else
{
system ++;
}
tidy_lcd_menu(system);
}
if (button == TIDY_DO)
{
status = tidy_do(system); status = tidy_do(system);
@ -487,20 +426,16 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
case TIDY_RETURN_ABORT: case TIDY_RETURN_ABORT:
return PLUGIN_OK; return PLUGIN_OK;
} }
}
if (button == TIDY_STOP)
{
return PLUGIN_OK;
}
if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
{
return PLUGIN_USB_CONNECTED;
}
rb->yield();
} }
if (button == TIDY_STOP)
return PLUGIN_OK;
if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
return PLUGIN_USB_CONNECTED;
rb->yield();
return PLUGIN_OK; return PLUGIN_OK;
} }