summaryrefslogtreecommitdiff
path: root/apps/plugins/lib/pluginlib_actions.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lib/pluginlib_actions.h')
-rw-r--r--apps/plugins/lib/pluginlib_actions.h181
1 files changed, 181 insertions, 0 deletions
diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h
new file mode 100644
index 0000000..8dcd2b6
--- /dev/null
+++ b/apps/plugins/lib/pluginlib_actions.h
@@ -0,0 +1,181 @@
+/***************************************************************************
+* __________ __ ___.
+* Open \______ \ ____ ____ | | _\_ |__ _______ ___
+* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+* \/ \/ \/ \/ \/
+* $Id$
+*
+* Copyright (C) 2006 Jonathan Gordon
+*
+*
+* All files in this archive are subject to the GNU General Public License.
+* See the file COPYING in the source tree root for full license agreement.
+*
+* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+* KIND, either express or implied.
+*
+****************************************************************************/
+
+#ifndef __PLUGINLIB_ACTIONS_H__
+#define __PLUGINLIB_ACTIONS_H__
+
+#include "config.h"
+#include "plugin.h"
+#include "action.h"
+
+/* PLA stands for Plugin Lib Action :P */
+enum {
+ PLA_UP = LAST_ACTION_PLACEHOLDER+1,
+ PLA_DOWN,
+ PLA_LEFT,
+ PLA_RIGHT,
+ PLA_UP_REPEAT,
+ PLA_DOWN_REPEAT,
+ PLA_LEFT_REPEAT,
+ PLA_RIGHT_REPEAT,
+
+ PLA_QUIT,
+ PLA_START,
+ PLA_MENU,
+ PLA_FIRE,
+ PLA_FIRE_REPEAT,
+
+ LAST_PLUGINLIB_ACTION
+};
+
+static const struct button_mapping generic_directions[] =
+{
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) \
+ || (CONFIG_KEYPAD == IRIVER_H300_PAD) \
+ || (CONFIG_KEYPAD == IAUDIO_X5_PAD) \
+ || (CONFIG_KEYPAD == GIGABEAT_PAD) \
+ || (CONFIG_KEYPAD == RECORDER_PAD) \
+ || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
+ { PLA_UP, BUTTON_UP, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
+ { PLA_UP, BUTTON_SCROLL_FWD, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_SCROLL_BACK, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_SCROLL_BACK, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_SCROLL_FWD, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_SCROLL_FWD, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_SCROLL_BACK, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_SCROLL_BACK, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_SCROLL_FWD, BUTTON_NONE},
+#elif CONFIG_KEYPAD == ONDIO_PAD
+ { PLA_UP, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == PLAYER_PAD
+ {PLA_UP, BUTTON_STOP, BUTTON_NONE},
+ {PLA_DOWN, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ {PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ {PLA_UP_REPEAT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_DOWN_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == SANSA_E200_PAD) \
+ || (CONFIG_KEYPAD == IRIVER_H10_PAD)
+ { PLA_UP, BUTTON_SCROLL_UP, BUTTON_NONE},
+ { PLA_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE},
+ { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE},
+ { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE},
+ { PLA_UP_REPEAT, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE},
+ { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
+#else
+ #error pluginlib_actions: Unsupported keypad
+#endif
+ {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE}
+};
+
+/* these were taken from the bubbles plugin, so may need tweaking */
+static const struct button_mapping generic_actions[] =
+{
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
+ {PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
+ {PLA_QUIT, BUTTON_RC_STOP, BUTTON_NONE},
+ {PLA_START, BUTTON_ON, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MODE, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
+ {PLA_QUIT, BUTTON_MENU|BUTTON_SELECT, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
+ {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
+ {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_REC, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == GIGABEAT_PAD
+ {PLA_QUIT, BUTTON_A, BUTTON_NONE},
+ {PLA_START, BUTTON_POWER, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == RECORDER_PAD
+ {PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
+ {PLA_START, BUTTON_ON, BUTTON_NONE},
+ {PLA_MENU, BUTTON_F1, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == ONDIO_PAD
+ {PLA_QUIT, BUTTON_OFF, BUTTON_NONE},
+ {PLA_START, BUTTON_MENU, BUTTON_NONE},
+ {PLA_MENU, BUTTON_DOWN, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_UP, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == PLAYER_PAD
+ {PLA_QUIT, BUTTON_STOP|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MENU, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_ON, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_ON|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == SANSA_E200_PAD
+ {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_DOWN, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == IRIVER_H10_PAD
+ {PLA_QUIT, BUTTON_POWER, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_FF, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_REW, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_REW|BUTTON_REPEAT, BUTTON_NONE},
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+ {PLA_QUIT, BUTTON_EQ, BUTTON_NONE},
+ {PLA_START, BUTTON_PLAY, BUTTON_NONE},
+ {PLA_MENU, BUTTON_MODE, BUTTON_NONE},
+ {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE},
+ {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
+#else
+ #error pluginlib_actions: Unsupported keypad
+#endif
+ {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE}
+};
+
+int pluginlib_getaction(struct plugin_api *api,int timeout,
+ const struct button_mapping *plugin_contexts[],
+ int count);
+
+#endif /* __PLUGINLIB_ACTIONS_H__ */