1
0
Fork 0
forked from len0rd/rockbox

test_X plugins PLA integration

1) change all keymaps to PLA
2) add alternative exit keymaps

Change-Id: I5cb8b1fcc515d2b6f9934482e72b80767b2c2fb0
Reviewed-on: http://gerrit.rockbox.org/158
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
This commit is contained in:
Jean-Louis Biasini 2012-03-01 20:34:38 +01:00 committed by Thomas Martitz
parent 83b4d70af5
commit db856890df
5 changed files with 86 additions and 219 deletions

View file

@ -21,33 +21,14 @@
#include "plugin.h" #include "plugin.h"
#include "lib/pluginlib_touchscreen.h" #include "lib/pluginlib_touchscreen.h"
#include "lib/pluginlib_exit.h" #include "lib/pluginlib_exit.h"
#include "lib/pluginlib_actions.h"
/* All swcodec targets have BUTTON_SELECT apart from the H10 and M3 */ /* this set the context to use with PLA */
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define TESTCODEC_EXITBUTTON PLA_EXIT
#define TESTCODEC_EXITBUTTON2 PLA_CANCEL
#if CONFIG_KEYPAD == IRIVER_H10_PAD
#define TESTCODEC_EXITBUTTON BUTTON_RIGHT
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define TESTCODEC_EXITBUTTON BUTTON_RC_PLAY
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define TESTCODEC_EXITBUTTON BUTTON_PLAY
#elif CONFIG_KEYPAD == COWON_D2_PAD || CONFIG_KEYPAD == ONDAVX747_PAD \
|| CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
#define TESTCODEC_EXITBUTTON BUTTON_POWER
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define TESTCODEC_EXITBUTTON BUTTON_REC
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define TESTCODEC_EXITBUTTON (BUTTON_REC | BUTTON_PLAY)
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define TESTCODEC_EXITBUTTON (BUTTON_REC | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD
#define TESTCODEC_EXITBUTTON (BUTTON_M | BUTTON_REPEAT)
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
#define TESTCODEC_EXITBUTTON BUTTON_BACK
#elif defined(HAVE_TOUCHSCREEN)
#define TESTCODEC_EXITBUTTON (BUTTON_BOTTOMMIDDLE|BUTTON_REL)
#else
#define TESTCODEC_EXITBUTTON BUTTON_SELECT
#endif
#ifdef HAVE_ADJUSTABLE_CPU_FREQ #ifdef HAVE_ADJUSTABLE_CPU_FREQ
static unsigned int boost =1; static unsigned int boost =1;
@ -734,7 +715,9 @@ static enum plugin_status test_track(const char* filename)
/* Wait for codec thread to die */ /* Wait for codec thread to die */
while (codec_playing) while (codec_playing)
{ {
if (rb->button_get_w_tmo(HZ) == TESTCODEC_EXITBUTTON) int button = pluginlib_getaction(HZ, plugin_contexts,
ARRAYLEN(plugin_contexts));
if ((button == TESTCODEC_EXITBUTTON) || (button == TESTCODEC_EXITBUTTON2))
{ {
codec_action = CODEC_ACTION_HALT; codec_action = CODEC_ACTION_HALT;
break; break;
@ -848,9 +831,12 @@ void plugin_quit(void)
else else
#endif #endif
do { do {
btn = rb->button_get(true); btn = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
exit_on_usb(btn); exit_on_usb(btn);
} while (codec_action != CODEC_ACTION_HALT && btn != TESTCODEC_EXITBUTTON); } while ((codec_action != CODEC_ACTION_HALT)
&& (btn != TESTCODEC_EXITBUTTON)
&& (btn != TESTCODEC_EXITBUTTON2));
} }
/* plugin entry point */ /* plugin entry point */

View file

@ -23,31 +23,14 @@
#include "lib/grey.h" #include "lib/grey.h"
#include "lib/pluginlib_touchscreen.h" #include "lib/pluginlib_touchscreen.h"
#include "lib/pluginlib_exit.h" #include "lib/pluginlib_exit.h"
#include "lib/pluginlib_actions.h"
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ /* this set the context to use with PLA */
(CONFIG_KEYPAD == IPOD_1G2G_PAD) static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define FPS_QUIT BUTTON_MENU
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define FPS_QUIT BUTTON_RC_REC #define FPS_QUIT PLA_EXIT
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD #define FPS_QUIT2 PLA_CANCEL
#define FPS_QUIT BUTTON_PLAY
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
#define FPS_QUIT (BUTTON_HOME|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define FPS_QUIT (BUTTON_REC|BUTTON_PLAY)
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define FPS_QUIT (BUTTON_REC|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD
#define FPS_QUIT (BUTTON_M|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
#define FPS_QUIT BUTTON_BACK
#elif defined(HAVE_TOUCHSCREEN)
#define FPS_QUIT (BUTTON_BOTTOMMIDDLE|BUTTON_REL)
#elif defined(BUTTON_OFF)
#define FPS_QUIT BUTTON_OFF
#else
#define FPS_QUIT BUTTON_POWER
#endif
#define DURATION (2*HZ) /* longer duration gives more precise results */ #define DURATION (2*HZ) /* longer duration gives more precise results */
@ -391,9 +374,10 @@ void plugin_quit(void)
#endif #endif
while (1) while (1)
{ {
int btn = rb->button_get(true); int btn = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
exit_on_usb(btn); exit_on_usb(btn);
if (btn == FPS_QUIT) if ((btn == FPS_QUIT) || (btn == FPS_QUIT2))
break; break;
} }
} }

View file

@ -21,87 +21,27 @@
#include "plugin.h" #include "plugin.h"
#include "lib/grey.h" #include "lib/grey.h"
#include "lib/helper.h" #include "lib/helper.h"
#include "lib/pluginlib_actions.h"
/* this set the context to use with PLA */
static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define GREY_QUIT PLA_EXIT
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \ #define GREY_QUIT2 PLA_CANCEL
|| (CONFIG_KEYPAD == IPOD_1G2G_PAD) #define GREY_OK PLA_SELECT
#define GREY_QUIT BUTTON_MENU #define GREY_PREV PLA_LEFT
#define GREY_OK BUTTON_SELECT #define GREY_NEXT PLA_RIGHT
#define GREY_PREV BUTTON_LEFT #ifdef HAVE_SCROLLWHEEL
#define GREY_NEXT BUTTON_RIGHT #define GREY_UP PLA_SCROLL_FWD
#define GREY_UP BUTTON_SCROLL_FWD #define GREY_UP_REPEAT PLA_SCROLL_FWD_REPEAT
#define GREY_DOWN BUTTON_SCROLL_BACK #define GREY_DOWN PLA_SCROLL_BACK
#define GREY_DOWN_REPEAT PLA_SCROLL_BACK_REPEAT
#elif CONFIG_KEYPAD == IRIVER_H100_PAD
#define GREY_QUIT BUTTON_OFF
#define GREY_OK BUTTON_SELECT
#define GREY_PREV BUTTON_LEFT
#define GREY_NEXT BUTTON_RIGHT
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == RECORDER_PAD
#define GREY_QUIT BUTTON_OFF
#define GREY_OK BUTTON_PLAY
#define GREY_PREV BUTTON_LEFT
#define GREY_NEXT BUTTON_RIGHT
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == ONDIO_PAD
#define GREY_QUIT BUTTON_OFF
#define GREY_OK BUTTON_MENU
#define GREY_PREV BUTTON_LEFT
#define GREY_NEXT BUTTON_RIGHT
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \
|| (CONFIG_KEYPAD == MROBE100_PAD) \
|| (CONFIG_KEYPAD == SANSA_CLIP_PAD)
#define GREY_QUIT BUTTON_POWER
#define GREY_OK BUTTON_SELECT
#define GREY_PREV BUTTON_LEFT
#define GREY_NEXT BUTTON_RIGHT
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define GREY_QUIT BUTTON_RC_REC
#define GREY_OK BUTTON_RC_PLAY
#define GREY_PREV BUTTON_RC_REW
#define GREY_NEXT BUTTON_RC_FF
#define GREY_UP BUTTON_RC_VOL_UP
#define GREY_DOWN BUTTON_RC_VOL_DOWN
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define GREY_QUIT BUTTON_REC
#define GREY_OK BUTTON_PLAY
#define GREY_PREV BUTTON_LEFT
#define GREY_NEXT BUTTON_RIGHT
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define GREY_QUIT (BUTTON_REC|BUTTON_PLAY)
#define GREY_OK BUTTON_PLAY
#define GREY_PREV BUTTON_REW
#define GREY_NEXT BUTTON_FF
#define GREY_UP BUTTON_VOL_UP
#define GREY_DOWN BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define GREY_QUIT (BUTTON_REC|BUTTON_REPEAT)
#define GREY_OK BUTTON_PLAY
#define GREY_PREV BUTTON_REW
#define GREY_NEXT BUTTON_FF
#define GREY_UP BUTTON_UP
#define GREY_DOWN BUTTON_DOWN
#else #else
#error unsupported keypad #define GREY_UP PLA_UP
#endif #define GREY_UP_REPEAT PLA_UP_REPEAT
#define GREY_DOWN PLA_DOWN
#define GREY_DOWN_REPEAT PLA_DOWN_REPEAT
#endif /*HAVE_SCROLLWHEEL*/
#define BLOCK_WIDTH (LCD_WIDTH/8) #define BLOCK_WIDTH (LCD_WIDTH/8)
#define BLOCK_HEIGHT (LCD_HEIGHT/8) #define BLOCK_HEIGHT (LCD_HEIGHT/8)
@ -207,7 +147,8 @@ enum plugin_status plugin_start(const void* parameter)
fill_rastered(1, 1, 2, 2, cur_step - 1); fill_rastered(1, 1, 2, 2, cur_step - 1);
grey_update(); grey_update();
button = rb->button_get(true); button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
switch (button) switch (button)
{ {
case GREY_PREV: case GREY_PREV:
@ -221,7 +162,7 @@ enum plugin_status plugin_start(const void* parameter)
break; break;
case GREY_UP: case GREY_UP:
case GREY_UP|BUTTON_REPEAT: case GREY_UP_REPEAT:
l = lcd_levels[cur_step]; l = lcd_levels[cur_step];
if (l < 255) if (l < 255)
{ {
@ -233,7 +174,7 @@ enum plugin_status plugin_start(const void* parameter)
break; break;
case GREY_DOWN: case GREY_DOWN:
case GREY_DOWN|BUTTON_REPEAT: case GREY_DOWN_REPEAT:
l = lcd_levels[cur_step]; l = lcd_levels[cur_step];
if (l > 0) if (l > 0)
{ {
@ -273,6 +214,7 @@ enum plugin_status plugin_start(const void* parameter)
/* fall through */ /* fall through */
case GREY_QUIT: case GREY_QUIT:
case GREY_QUIT2:
done = true; done = true;
break; break;
} }

View file

@ -22,23 +22,11 @@
#include "plugin.h" #include "plugin.h"
#include "lib/grey.h" #include "lib/grey.h"
#include "lib/pluginlib_bmp.h" #include "lib/pluginlib_bmp.h"
#include "lib/pluginlib_actions.h"
#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ /* this set the context to use with PLA */
(CONFIG_KEYPAD == IPOD_1G2G_PAD) static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define GBS_QUIT BUTTON_MENU #define GBS_QUIT PLA_EXIT
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD #define GBS_QUIT2 PLA_CANCEL
#define GBS_QUIT BUTTON_RC_REC
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define GBS_QUIT BUTTON_PLAY
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define GBS_QUIT (BUTTON_REC|BUTTON_PLAY)
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define GBS_QUIT (BUTTON_REC|BUTTON_REPEAT)
#elif defined(BUTTON_OFF)
#define GBS_QUIT BUTTON_OFF
#else
#define GBS_QUIT BUTTON_POWER
#endif
#if LCD_DEPTH == 1 #if LCD_DEPTH == 1
#define BMP_LOAD read_bmp_file #define BMP_LOAD read_bmp_file
@ -63,6 +51,7 @@ enum plugin_status plugin_start(const void* parameter)
.data = grey_bm_buf .data = grey_bm_buf
}; };
int ret, x, y; int ret, x, y;
int button = 0;
if(!parameter) return PLUGIN_ERROR; if(!parameter) return PLUGIN_ERROR;
@ -92,7 +81,11 @@ enum plugin_status plugin_start(const void* parameter)
grey_show(true); grey_show(true);
/* wait until user closes plugin */ /* wait until user closes plugin */
while (rb->button_get(true) != GBS_QUIT); while ((button != GBS_QUIT) && (button != GBS_QUIT2))
{
button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
}
grey_release(); grey_release();

View file

@ -20,68 +20,28 @@
****************************************************************************/ ****************************************************************************/
#include "plugin.h" #include "plugin.h"
#include "lib/pluginlib_actions.h"
#if (CONFIG_KEYPAD == RECORDER_PAD) || (CONFIG_KEYPAD == ONDIO_PAD) \ /* this set the context to use with PLA */
|| (CONFIG_KEYPAD == IRIVER_H100_PAD) static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
#define SCANRATE_DONE BUTTON_OFF #define SCANRATE_QUIT PLA_EXIT
#define SCANRATE_FASTINC BUTTON_UP #define SCANRATE_QUIT2 PLA_CANCEL
#define SCANRATE_FASTDEC BUTTON_DOWN #define SCANRATE_FASTINC PLA_UP
#define SCANRATE_INC BUTTON_RIGHT #define SCANRATE_FASTINC_REPEAT PLA_UP_REPEAT
#define SCANRATE_DEC BUTTON_LEFT #define SCANRATE_FASTDEC PLA_DOWN
#define SCANRATE_FASTDEC_REPEAT PLA_DOWN_REPEAT
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) \ #ifdef HAVE_SCROLLWHEEL
|| (CONFIG_KEYPAD == MROBE100_PAD) \ #define SCANRATE_INC PLA_SCROLL_FWD
|| (CONFIG_KEYPAD == SANSA_CLIP_PAD) #define SCANRATE_INC_REPEAT PLA_SCROLL_FWD_REPEAT
#define SCANRATE_DONE BUTTON_POWER #define SCANRATE_DEC PLA_SCROLL_BACK
#define SCANRATE_FASTINC BUTTON_UP #define SCANRATE_DEC_REPEAT PLA_SCROLL_BACK_REPEAT
#define SCANRATE_FASTDEC BUTTON_DOWN #else
#define SCANRATE_INC BUTTON_RIGHT #define SCANRATE_INC PLA_RIGHT
#define SCANRATE_DEC BUTTON_LEFT #define SCANRATE_INC_REPEAT PLA_RIGHT_REPEAT
#define SCANRATE_DEC PLA_LEFT
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD #define SCANRATE_DEC_REPEAT PLA_LEFT_REPEAT
#define SCANRATE_DONE (BUTTON_HOME|BUTTON_REPEAT) #endif /*HAVE_SCROLLWHEEL*/
#define SCANRATE_FASTINC BUTTON_UP
#define SCANRATE_FASTDEC BUTTON_DOWN
#define SCANRATE_INC BUTTON_RIGHT
#define SCANRATE_DEC BUTTON_LEFT
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define SCANRATE_DONE BUTTON_RC_REC
#define SCANRATE_FASTINC BUTTON_RC_VOL_UP
#define SCANRATE_FASTDEC BUTTON_RC_VOL_DOWN
#define SCANRATE_INC BUTTON_RC_FF
#define SCANRATE_DEC BUTTON_RC_REW
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) \
|| (CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define SCANRATE_DONE BUTTON_MENU
#define SCANRATE_FASTINC BUTTON_SCROLL_FWD
#define SCANRATE_FASTDEC BUTTON_SCROLL_BACK
#define SCANRATE_INC BUTTON_RIGHT
#define SCANRATE_DEC BUTTON_LEFT
#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
#define SCANRATE_DONE BUTTON_PLAY
#define SCANRATE_FASTINC BUTTON_FFWD
#define SCANRATE_FASTDEC BUTTON_REW
#define SCANRATE_INC BUTTON_UP
#define SCANRATE_DEC BUTTON_DOWN
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define SCANRATE_DONE BUTTON_PLAY
#define SCANRATE_FASTINC BUTTON_FF
#define SCANRATE_FASTDEC BUTTON_REW
#define SCANRATE_INC BUTTON_VOL_UP
#define SCANRATE_DEC BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define SCANRATE_DONE BUTTON_PLAY
#define SCANRATE_FASTINC BUTTON_UP
#define SCANRATE_FASTDEC BUTTON_DOWN
#define SCANRATE_INC BUTTON_FF
#define SCANRATE_DEC BUTTON_REW
#endif
/* Default refresh rates in 1/10 Hz */ /* Default refresh rates in 1/10 Hz */
#if defined ARCHOS_RECORDER || defined ARCHOS_FMRECORDER \ #if defined ARCHOS_RECORDER || defined ARCHOS_FMRECORDER \
@ -199,34 +159,36 @@ int plugin_main(void)
need_refresh = true; need_refresh = true;
change = false; change = false;
} }
button = rb->button_get(true); button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
ARRAYLEN(plugin_contexts));
switch (button) switch (button)
{ {
case SCANRATE_FASTINC: case SCANRATE_FASTINC:
case SCANRATE_FASTINC|BUTTON_REPEAT: case SCANRATE_FASTINC_REPEAT:
scan_rate += 10; scan_rate += 10;
change = true; change = true;
break; break;
case SCANRATE_FASTDEC: case SCANRATE_FASTDEC:
case SCANRATE_FASTDEC|BUTTON_REPEAT: case SCANRATE_FASTDEC_REPEAT:
scan_rate -= 10; scan_rate -= 10;
change = true; change = true;
break; break;
case SCANRATE_INC: case SCANRATE_INC:
case SCANRATE_INC|BUTTON_REPEAT: case SCANRATE_INC_REPEAT:
scan_rate++; scan_rate++;
change = true; change = true;
break; break;
case SCANRATE_DEC: case SCANRATE_DEC:
case SCANRATE_DEC|BUTTON_REPEAT: case SCANRATE_DEC_REPEAT:
scan_rate--; scan_rate--;
change = true; change = true;
break; break;
case SCANRATE_DONE: case SCANRATE_QUIT:
case SCANRATE_QUIT2:
done = true; done = true;
break; break;
} }