summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/SOURCES2
-rw-r--r--apps/plugins/disktidy.c209
2 files changed, 73 insertions, 138 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index 2524a4c707..ffa01f1f77 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -30,10 +30,10 @@ wavplay.c
30 30
31#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */ 31#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */
32dice.c 32dice.c
33disktidy.c
33flipit.c 34flipit.c
34 35
35#ifdef HAVE_LCD_BITMAP /* Not for the Player */ 36#ifdef HAVE_LCD_BITMAP /* Not for the Player */
36disktidy.c
37mazezam.c 37mazezam.c
38text_editor.c 38text_editor.c
39 39
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index 88cc39d6cc..2c4935ec13 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -39,67 +39,37 @@ enum tidy_system
39}; 39};
40 40
41/* variable button definitions */ 41/* variable button definitions */
42#if CONFIG_KEYPAD == RECORDER_PAD 42#if CONFIG_KEYPAD == PLAYER_PAD
43#define TIDY_DO BUTTON_ON 43#define TIDY_STOP BUTTON_STOP
44
45#elif CONFIG_KEYPAD == RECORDER_PAD
44#define TIDY_STOP BUTTON_OFF 46#define TIDY_STOP BUTTON_OFF
45#define TIDY_LEFT BUTTON_LEFT
46#define TIDY_RIGHT BUTTON_RIGHT
47 47
48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 48#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
49#define TIDY_DO BUTTON_ON
50#define TIDY_STOP BUTTON_OFF 49#define TIDY_STOP BUTTON_OFF
51#define TIDY_LEFT BUTTON_LEFT
52#define TIDY_RIGHT BUTTON_RIGHT
53 50
54#elif CONFIG_KEYPAD == ONDIO_PAD 51#elif CONFIG_KEYPAD == ONDIO_PAD
55#define TIDY_DO BUTTON_MENU
56#define TIDY_STOP BUTTON_OFF 52#define TIDY_STOP BUTTON_OFF
57#define TIDY_LEFT BUTTON_LEFT
58#define TIDY_RIGHT BUTTON_RIGHT
59 53
60#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 54#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
61 (CONFIG_KEYPAD == IRIVER_H300_PAD) 55 (CONFIG_KEYPAD == IRIVER_H300_PAD)
62#define TIDY_DO BUTTON_SELECT
63#define TIDY_STOP BUTTON_OFF 56#define TIDY_STOP BUTTON_OFF
64#define TIDY_LEFT BUTTON_LEFT
65#define TIDY_RIGHT BUTTON_RIGHT
66 57
67#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 58#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
68 (CONFIG_KEYPAD == IPOD_4G_PAD) 59 (CONFIG_KEYPAD == IPOD_4G_PAD)
69#define TIDY_DO BUTTON_SELECT
70#define TIDY_STOP BUTTON_MENU 60#define TIDY_STOP BUTTON_MENU
71#define TIDY_LEFT BUTTON_LEFT
72#define TIDY_RIGHT BUTTON_RIGHT
73
74#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
75#define TIDY_DO BUTTON_PLAY
76#define TIDY_STOP BUTTON_POWER
77#define TIDY_LEFT BUTTON_LEFT
78#define TIDY_RIGHT BUTTON_RIGHT
79 61
80#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 62#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
81#define TIDY_DO BUTTON_PLAY
82#define TIDY_STOP BUTTON_POWER 63#define TIDY_STOP BUTTON_POWER
83#define TIDY_LEFT BUTTON_LEFT
84#define TIDY_RIGHT BUTTON_RIGHT
85 64
86#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 65#elif CONFIG_KEYPAD == GIGABEAT_PAD
87#define TIDY_DO BUTTON_SELECT
88#define TIDY_STOP BUTTON_A 66#define TIDY_STOP BUTTON_A
89#define TIDY_LEFT BUTTON_LEFT
90#define TIDY_RIGHT BUTTON_RIGHT
91 67
92#elif (CONFIG_KEYPAD == SANSA_E200_PAD) 68#elif CONFIG_KEYPAD == SANSA_E200_PAD
93#define TIDY_DO BUTTON_SELECT
94#define TIDY_STOP BUTTON_POWER 69#define TIDY_STOP BUTTON_POWER
95#define TIDY_LEFT BUTTON_LEFT
96#define TIDY_RIGHT BUTTON_RIGHT
97 70
98#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 71#elif CONFIG_KEYPAD == IRIVER_H10_PAD
99#define TIDY_DO BUTTON_PLAY
100#define TIDY_STOP BUTTON_POWER 72#define TIDY_STOP BUTTON_POWER
101#define TIDY_LEFT BUTTON_LEFT
102#define TIDY_RIGHT BUTTON_RIGHT
103 73
104#else 74#else
105 #error DISKTIDY: Unsupported keypad 75 #error DISKTIDY: Unsupported keypad
@@ -115,8 +85,10 @@ void tidy_lcd_status(const char *name, int *removed)
115 rb->lcd_puts(0, 0, "Working ..."); 85 rb->lcd_puts(0, 0, "Working ...");
116 rb->lcd_puts(0, 1, name); 86 rb->lcd_puts(0, 1, name);
117 rb->snprintf(text, 24, "Cleaned up %d items", *removed); 87 rb->snprintf(text, 24, "Cleaned up %d items", *removed);
88#ifdef HAVE_LCD_BITMAP
118 rb->lcd_puts(0, 2, text); 89 rb->lcd_puts(0, 2, text);
119 rb->lcd_update(); 90 rb->lcd_update();
91#endif
120} 92}
121 93
122void tidy_get_absolute_path(struct dirent *entry, char *fullname, 94void tidy_get_absolute_path(struct dirent *entry, char *fullname,
@@ -366,113 +338,80 @@ enum plugin_status tidy_do(enum tidy_system system)
366 return status; 338 return status;
367} 339}
368 340
369void tidy_lcd_menu(enum tidy_system system) 341int tidy_lcd_menu(void)
370{ 342{
371 /* show menu text */ 343 int loc, ret;
372 rb->lcd_clear_display();
373 344
374 /* show keys */ 345 static const struct menu_item items[] =
375#if CONFIG_KEYPAD == RECORDER_PAD 346 {
376 rb->lcd_puts(0, 0, "[On] to clean up"); 347 { "Start Cleaning", NULL },
377 rb->lcd_puts(0, 1, "[Off] to exit/abort"); 348 { "Files to Clean", NULL},
378#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 349 { "Quit", NULL }
379 rb->lcd_puts(0, 0, "[On] to clean up"); 350 };
380 rb->lcd_puts(0, 1, "[Off] to exit/abort");
381#elif CONFIG_KEYPAD == ONDIO_PAD
382 rb->lcd_puts(0, 0, "[Menu] to clean up");
383 rb->lcd_puts(0, 1, "[Off] to exit/abort");
384#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
385 (CONFIG_KEYPAD == IRIVER_H300_PAD)
386 rb->lcd_puts(0, 0, "[Navi] to clean up");
387 rb->lcd_puts(0, 1, "[Off] to exit/abort");
388#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || \
389 (CONFIG_KEYPAD == IPOD_4G_PAD)
390 rb->lcd_puts(0, 0, "[Select] to clean up");
391 rb->lcd_puts(0, 1, "[Menu] to exit/abort");
392#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
393 rb->lcd_puts(0, 0, "[Play] to clean up");
394 rb->lcd_puts(0, 1, "[Power] to exit/abort");
395#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
396 rb->lcd_puts(0, 0, "[Select] to clean up");
397 rb->lcd_puts(0, 1, "[A] to exit/abort");
398#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
399 rb->lcd_puts(0, 0, "[Play] to clean up");
400 rb->lcd_puts(0, 1, "[Power] to exit/abort");
401#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
402 rb->lcd_puts(0, 0, "[Select] to clean up");
403 rb->lcd_puts(0, 1, "[Power] to exit/abort");
404#else
405 #error DISKTIDY: Unsupported model
406#endif
407 351
408 /* show selcted system */ 352 static const struct opt_items system_option[3] =
409 switch (system)
410 { 353 {
411 case TIDY_MAC: 354 { "Mac", -1 },
412 rb->lcd_puts(0, 2, "< Mac >"); 355 { "Windows", -1 },
413 rb->lcd_puts(0, 3, "Deletes"); 356 { "Both", -1}
414 rb->lcd_puts(0, 4, "._* .DS_Store"); 357 };
415 rb->lcd_puts(0, 5, "/.Trashes/"); 358
416 break; 359 loc = rb->menu_init(items, sizeof(items) / sizeof(*items),
417 case TIDY_WIN: 360 NULL, NULL, NULL, NULL);
418 rb->lcd_puts(0, 2, "< Win >"); 361
419 rb->lcd_puts(0, 3, "Deletes"); 362 while (true)
420 rb->lcd_puts(0, 4, "Thumbs.db /Recycled/"); 363 {
421 rb->lcd_puts(0, 5, "/System Volume Information/"); 364 switch(rb->menu_show(loc))
422 break; 365 {
423 case TIDY_BOTH: 366
424 rb->lcd_puts(0, 2, "< Both >"); 367 case 0:
368 return ret;
369
370 case 1:
371 rb->set_option("Files to Clean", &ret, INT, system_option, 3, NULL);
425 break; 372 break;
426 373
374 case 2:
375 return 99;
376
377 default:
378 return 99;
379 }
427 } 380 }
428 rb->lcd_update(); 381
382 rb->menu_exit(loc);
429} 383}
430 384
431/* this is the plugin entry point */ 385/* this is the plugin entry point */
432enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 386enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
433{ 387{
434 enum tidy_system system = TIDY_MAC; 388 enum tidy_system system = TIDY_BOTH;
435 enum tidy_return status; 389 enum tidy_return status;
436 int button; 390 int button;
437 391
438 (void)parameter; 392 (void)parameter;
439 393
440 rb = api; 394 rb = api;
395
396 switch(tidy_lcd_menu())
397 {
398 case 0:
399 system = TIDY_MAC;
400 break;
401 case 1:
402 system = TIDY_WIN;
403 break;
404 case 2:
405 system = TIDY_BOTH;
406 break;
407 case 99:
408 return PLUGIN_OK;
409 default:
410 system = TIDY_BOTH;
411 }
441 412
442 tidy_lcd_menu(system); 413 while (rb->button_get(false) != TIDY_STOP)
443
444 while (1)
445 { 414 {
446 button = rb->button_get(false);
447
448 if (button == TIDY_LEFT)
449 {
450 if (system == 0)
451 {
452 system = 2;
453 }
454 else
455 {
456 system --;
457 }
458 tidy_lcd_menu(system);
459 }
460
461 if (button == TIDY_RIGHT)
462 {
463 if (system == 2)
464 {
465 system = 0;
466 }
467 else
468 {
469 system ++;
470 }
471 tidy_lcd_menu(system);
472 }
473
474 if (button == TIDY_DO)
475 {
476 415
477 status = tidy_do(system); 416 status = tidy_do(system);
478 417
@@ -487,20 +426,16 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
487 case TIDY_RETURN_ABORT: 426 case TIDY_RETURN_ABORT:
488 return PLUGIN_OK; 427 return PLUGIN_OK;
489 } 428 }
490 } 429 }
491 430
492 if (button == TIDY_STOP) 431 if (button == TIDY_STOP)
493 { 432 return PLUGIN_OK;
494 return PLUGIN_OK;
495 }
496 433
497 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) 434 if (rb->default_event_handler(button) == SYS_USB_CONNECTED)
498 { 435 return PLUGIN_USB_CONNECTED;
499 return PLUGIN_USB_CONNECTED;
500 }
501 436
502 rb->yield(); 437 rb->yield();
503 } 438
504 439
505 return PLUGIN_OK; 440 return PLUGIN_OK;
506} 441}