summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJean-Louis Biasini <jlbiasini@gmail.com>2012-02-25 22:27:59 +0100
committerThomas Martitz <kugel@rockbox.org>2012-03-03 16:42:13 +0100
commit36c84f9a90d3edaa1fb4103dee5be7e684868019 (patch)
tree63272d50678f2b7f9edf7d5a3997749d82617324 /apps/plugins
parent26fc31ae935c431ed0d2eb7786615901b4ea090d (diff)
downloadrockbox-36c84f9a90d3edaa1fb4103dee5be7e684868019.zip
rockbox-36c84f9a90d3edaa1fb4103dee5be7e684868019.tar.gz
rockbox-36c84f9a90d3edaa1fb4103dee5be7e684868019.tar.bz2
rockbox-36c84f9a90d3edaa1fb4103dee5be7e684868019.tar.xz
Plugin Matrix PLA integration (code)
This commit changes: 1) replace all keymaps with PLA ones and remove all now useless precompiler instruction. 2) add an alternative exit button (PLA_EXIT or PLA_CANCEL) 3) add the possibility to change values repeatily by holding key pressed. note: no manual for matrix yet Change-Id: Id3ace2863dd407dd5e5ab9b7b5b460c88bb007ad Reviewed-on: http://gerrit.rockbox.org/128 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Tested-by: Thomas Martitz <kugel@rockbox.org>
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/matrix.c183
1 files changed, 31 insertions, 152 deletions
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 10b8ce5..54e23e6 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -34,7 +34,7 @@
#include "plugin.h"
-
+#include "lib/pluginlib_actions.h"
/* Images */
#include "pluginbitmaps/matrix_bold.h"
@@ -49,158 +49,23 @@
#define LEFTMARGIN (LCD_WIDTH-(COLS*COL_W))/2
#define TOPMARGIN (LCD_HEIGHT-(ROWS*COL_H))/2
-#if (CONFIG_KEYPAD == IPOD_4G_PAD) || \
- (CONFIG_KEYPAD == IPOD_3G_PAD) || \
- (CONFIG_KEYPAD == IPOD_1G2G_PAD)
-#define MATRIX_EXIT BUTTON_MENU
-#define MATRIX_SLEEP_MORE BUTTON_SCROLL_BACK|BUTTON_REPEAT
-#define MATRIX_SLEEP_LESS BUTTON_SCROLL_FWD|BUTTON_REPEAT
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
- (CONFIG_KEYPAD == IRIVER_H300_PAD)
-#define MATRIX_EXIT BUTTON_OFF
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_SCROLL_UP|BUTTON_REPEAT
-#define MATRIX_SLEEP_LESS BUTTON_SCROLL_DOWN|BUTTON_REPEAT
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
- (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_SCROLL_BACK|BUTTON_REPEAT
-#define MATRIX_SLEEP_LESS BUTTON_SCROLL_FWD|BUTTON_REPEAT
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
-#define MATRIX_EXIT (BUTTON_HOME|BUTTON_REPEAT)
-#define MATRIX_SLEEP_MORE BUTTON_SCROLL_BACK|BUTTON_REPEAT
-#define MATRIX_SLEEP_LESS BUTTON_SCROLL_FWD|BUTTON_REPEAT
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif CONFIG_KEYPAD == SANSA_C200_PAD
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
- (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
-#define MATRIX_EXIT BUTTON_BACK
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
-#define MATRIX_EXIT BUTTON_RC_REC
-#define MATRIX_SLEEP_MORE BUTTON_RC_VOL_UP
-#define MATRIX_SLEEP_LESS BUTTON_RC_VOL_DOWN
-#define MATRIX_PAUSE BUTTON_RC_PLAY
-
-#elif (CONFIG_KEYPAD == COWON_D2_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == IAUDIO67_PAD
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_VOLUP
-#define MATRIX_SLEEP_LESS BUTTON_VOLDOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
-#define MATRIX_EXIT BUTTON_BACK
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
-
-#elif (CONFIG_KEYPAD == PHILIPS_HDD6330_PAD) || \
- (CONFIG_KEYPAD == PHILIPS_SA9200_PAD)
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || \
-CONFIG_KEYPAD == ONDAVX777_PAD || \
-CONFIG_KEYPAD == MROBE500_PAD
-#define MATRIX_EXIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
-#define MATRIX_EXIT BUTTON_REC
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
-#define MATRIX_EXIT BUTTON_REC
-#define MATRIX_SLEEP_MORE BUTTON_PREV
-#define MATRIX_SLEEP_LESS BUTTON_NEXT
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == MPIO_HD200_PAD
-#define MATRIX_EXIT (BUTTON_REC|BUTTON_PLAY)
-#define MATRIX_SLEEP_MORE BUTTON_VOL_UP
-#define MATRIX_SLEEP_LESS BUTTON_VOL_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == MPIO_HD300_PAD
-#define MATRIX_EXIT (BUTTON_REC|BUTTON_REPEAT)
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAY
-
-#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_PLAYPAUSE
-
-#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
-#define MATRIX_EXIT BUTTON_POWER
-#define MATRIX_SLEEP_MORE BUTTON_UP
-#define MATRIX_SLEEP_LESS BUTTON_DOWN
-#define MATRIX_PAUSE BUTTON_SELECT
+/* this set the context to use with PLA */
+static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
+#ifdef HAVE_SCROLLWHEEL
+#define MATRIX_SLEEP_MORE PLA_SCROLL_BACK
+#define MATRIX_SLEEP_MORE_REPEAT PLA_SCROLL_BACK_REPEAT
+#define MATRIX_SLEEP_LESS PLA_SCROLL_FWD
+#define MATRIX_SLEEP_LESS_REPEAT PLA_SCROLL_FWD_REPEAT
#else
-#error Unsupported keypad
-#endif
-
-#ifdef HAVE_TOUCHSCREEN
-#ifndef MATRIX_EXIT
-#define MATRIX_EXIT BUTTON_TOPLEFT
-#endif
-#ifndef MATRIX_SLEEP_MORE
-#define MATRIX_SLEEP_MORE BUTTON_MIDRIGHT
-#endif
-#ifndef MATRIX_SLEEP_LESS
-#define MATRIX_SLEEP_LESS BUTTON_MIDLEFT
-#endif
-#ifndef MATRIX_PAUSE
-#define MATRIX_PAUSE BUTTON_CENTER
-#endif
-#endif
+#define MATRIX_SLEEP_MORE PLA_UP
+#define MATRIX_SLEEP_MORE_REPEAT PLA_UP_REPEAT
+#define MATRIX_SLEEP_LESS PLA_DOWN
+#define MATRIX_SLEEP_LESS_REPEAT PLA_DOWN_REPEAT
+#endif /* HAVE_SCROLLWHEEL */
+#define MATRIX_PAUSE PLA_SELECT
+#define MATRIX_EXIT PLA_EXIT
+#define MATRIX_EXIT2 PLA_CANCEL
#define SLEEP HZ/50
@@ -389,19 +254,33 @@ enum plugin_status plugin_start(const void* parameter) {
rb->lcd_update();
rb->sleep(sleep);
}
- button = rb->button_get(frozen);
+
+ if(frozen)
+ {
+ button = pluginlib_getaction(TIMEOUT_BLOCK, plugin_contexts,
+ ARRAYLEN(plugin_contexts));
+ }
+ else
+ {
+ button = pluginlib_getaction(TIMEOUT_NOBLOCK, plugin_contexts,
+ ARRAYLEN(plugin_contexts));
+ }
+
switch(button) {
case MATRIX_PAUSE:
frozen = !frozen;
break;
case MATRIX_EXIT:
+ case MATRIX_EXIT2:
return PLUGIN_OK;
break;
case MATRIX_SLEEP_MORE:
+ case MATRIX_SLEEP_MORE_REPEAT:
/* Sleep longer */
sleep += SLEEP;
break;
case MATRIX_SLEEP_LESS:
+ case MATRIX_SLEEP_LESS_REPEAT:
/* Sleep less */
sleep -= SLEEP;
if (sleep < 0) sleep = 0;