summaryrefslogtreecommitdiff
path: root/apps/plugins/clock
ModeNameSize
-rw-r--r--SOURCES167logplain
-rw-r--r--clock.c6487logplain
-rw-r--r--clock.h1205logplain
-rw-r--r--clock.make744logplain
-rw-r--r--clock_bitmap_strings.c1829logplain
-rw-r--r--clock_bitmap_strings.h1314logplain
-rw-r--r--clock_bitmaps.c3419logplain
-rw-r--r--clock_bitmaps.h1337logplain
-rw-r--r--clock_counter.c1227logplain
-rw-r--r--clock_counter.h592logplain
-rw-r--r--clock_draw.c3597logplain
-rw-r--r--clock_draw.h1283logplain
-rw-r--r--clock_draw_analog.c9499logplain
-rw-r--r--clock_draw_analog.h1347logplain
-rw-r--r--clock_draw_binary.c2053logplain
-rw-r--r--clock_draw_binary.h1165logplain
-rw-r--r--clock_draw_digital.c3870logplain
-rw-r--r--clock_draw_digital.h1330logplain
-rw-r--r--clock_menu.c8117logplain
-rw-r--r--clock_menu.h93logplain
-rw-r--r--clock_settings.c6577logplain
-rw-r--r--clock_settings.h2428logplain
2'>322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564
/***************************************************************************
*             __________               __   ___.
*   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
*   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
*   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
*   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
*                     \/            \/     \/    \/            \/
* $Id$
*
* Copyright (C) 2006 Jonathan Gordon
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/

#include "plugin.h"
#include "action.h"
#include "pluginlib_actions.h"

#if defined(HAVE_REMOTE_LCD)
const struct button_mapping remote_directions[] =
{
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
    (CONFIG_KEYPAD == IRIVER_H300_PAD)
    { PLA_UP,                BUTTON_RC_BITRATE,                BUTTON_NONE},
    { PLA_DOWN,              BUTTON_RC_SOURCE,                 BUTTON_NONE},
    { PLA_LEFT,              BUTTON_RC_VOL_DOWN,               BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_VOL_UP,                 BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_RC_BITRATE|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_RC_SOURCE|BUTTON_REPEAT,   BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_VOL_UP|BUTTON_REPEAT,   BUTTON_NONE},
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) || \
      (CONFIG_KEYPAD == IRIVER_H10_PAD) || \
      (CONFIG_KEYPAD == GIGABEAT_PAD) || \
      (CONFIG_KEYPAD == GIGABEAT_S_PAD)
    { PLA_UP,                BUTTON_RC_FF,                     BUTTON_NONE},
    { PLA_DOWN,              BUTTON_RC_REW,                    BUTTON_NONE},
    { PLA_LEFT,              BUTTON_RC_VOL_DOWN,               BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_VOL_UP,                 BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_RC_FF|BUTTON_REPEAT,       BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_RC_REW|BUTTON_REPEAT,      BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_VOL_UP|BUTTON_REPEAT,   BUTTON_NONE},
#elif (CONFIG_KEYPAD == PLAYER_PAD) || \
      (CONFIG_KEYPAD == RECORDER_PAD)
    { PLA_UP,                BUTTON_RC_VOL_UP,                 BUTTON_NONE},
    { PLA_DOWN,              BUTTON_RC_VOL_DOWN,               BUTTON_NONE},
    { PLA_LEFT,              BUTTON_RC_LEFT,                   BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_RIGHT,                  BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_RC_VOL_UP|BUTTON_REPEAT,   BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_LEFT|BUTTON_REPEAT,     BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_RIGHT|BUTTON_REPEAT,    BUTTON_NONE},
#elif (CONFIG_REMOTE_KEYPAD == MROBE_REMOTE)
    { PLA_UP,                BUTTON_RC_PLAY,                   BUTTON_NONE},
    { PLA_DOWN,              BUTTON_RC_DOWN,                   BUTTON_NONE},
    { PLA_LEFT,              BUTTON_RC_REW,                    BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_FF,                     BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_RC_PLAY|BUTTON_REPEAT,     BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_RC_DOWN|BUTTON_REPEAT,     BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_REW|BUTTON_REPEAT,      BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_FF|BUTTON_REPEAT,       BUTTON_NONE},
#else
    #error pluginlib_actions: Unsupported remote keypad
#endif
    {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE}
};
#endif /* HAVE_REMOTE_LCD */

const struct button_mapping generic_directions[] =
{
#ifdef HAVE_TOUCHSCREEN
    { PLA_UP,                BUTTON_TOPMIDDLE,                  BUTTON_NONE},
    { PLA_DOWN,              BUTTON_BOTTOMMIDDLE,               BUTTON_NONE},
    { PLA_LEFT,              BUTTON_MIDLEFT,                    BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_MIDRIGHT,                   BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_TOPMIDDLE|BUTTON_REPEAT,    BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_MIDLEFT|BUTTON_REPEAT,      BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_MIDRIGHT|BUTTON_REPEAT,     BUTTON_NONE},
#endif
#if    (CONFIG_KEYPAD == IRIVER_H100_PAD)   \
    || (CONFIG_KEYPAD == IRIVER_H300_PAD)   \
    || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)     \
    || (CONFIG_KEYPAD == GIGABEAT_PAD)      \
    || (CONFIG_KEYPAD == RECORDER_PAD)      \
    || (CONFIG_KEYPAD == ARCHOS_AV300_PAD)  \
    || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
    || (CONFIG_KEYPAD == SANSA_C200_PAD) \
    || (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
    || (CONFIG_KEYPAD == MROBE100_PAD) \
    || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \
    || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
    || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \
    || (CONFIG_KEYPAD == CREATIVEZVM_PAD) \
    || (CONFIG_KEYPAD == SANSA_M200_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_1G2G_PAD) \
   || (CONFIG_KEYPAD == IPOD_3G_PAD) \
   || (CONFIG_KEYPAD == IPOD_4G_PAD) \
   || (CONFIG_KEYPAD == SANSA_E200_PAD) \
   || (CONFIG_KEYPAD == SANSA_FUZE_PAD)
    { PLA_UP,                BUTTON_SCROLL_BACK,      BUTTON_NONE},
    { PLA_DOWN,              BUTTON_SCROLL_FWD,     BUTTON_NONE},
    { PLA_LEFT,              BUTTON_LEFT,            BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,           BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_SCROLL_BACK|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_SCROLL_FWD|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 == ONDIO_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 == 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 == 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},
#elif (CONFIG_KEYPAD == MROBE500_PAD)
#elif (CONFIG_KEYPAD == COWOND2_PAD)
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
    { PLA_UP,                BUTTON_RC_VOL_UP,                  BUTTON_NONE},
    { PLA_DOWN,              BUTTON_RC_VOL_DOWN,                BUTTON_NONE},
    { PLA_LEFT,              BUTTON_RC_REW,                     BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_FF,                      BUTTON_NONE},
    { PLA_UP_REPEAT,         BUTTON_RC_VOL_UP|BUTTON_REPEAT,    BUTTON_NONE},
    { PLA_DOWN_REPEAT,       BUTTON_RC_VOL_DOWN|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_REW|BUTTON_REPEAT,       BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_FF|BUTTON_REPEAT,        BUTTON_NONE},
#elif (CONFIG_KEYPAD == IAUDIO67_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 == ONDAVX747_PAD) /* Touchscreen target */
#else
    #error pluginlib_actions: Unsupported keypad
#endif
    {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE}
};

const struct button_mapping generic_left_right_fire[] =
{
#ifdef HAVE_TOUCHSCREEN
    { PLA_LEFT,              BUTTON_MIDLEFT,                BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_MIDLEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_MIDRIGHT,               BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_MIDRIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_CENTER,                 BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_CENTER|BUTTON_REPEAT,   BUTTON_NONE},
#endif
#if    (CONFIG_KEYPAD == IRIVER_H100_PAD)   \
    || (CONFIG_KEYPAD == IRIVER_H300_PAD)   \
    || (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)   \
    || (CONFIG_KEYPAD == GIGABEAT_PAD)      \
    || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \
    || (CONFIG_KEYPAD == GIGABEAT_S_PAD)    \
    || (CONFIG_KEYPAD == MROBE100_PAD)      \
    || (CONFIG_KEYPAD == PHILIPS_SA9200_PAD) \
    || (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) \
    || (CONFIG_KEYPAD == SANSA_CLIP_PAD) \
    || (CONFIG_KEYPAD == SANSA_M200_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_SELECT,              BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
#elif (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
   || (CONFIG_KEYPAD == IPOD_3G_PAD) \
   || (CONFIG_KEYPAD == IPOD_4G_PAD)
    { PLA_LEFT,              BUTTON_SCROLL_BACK,         BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_SCROLL_FWD,          BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_SCROLL_FWD|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_FIRE,              BUTTON_SELECT,              BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
#elif CONFIG_KEYPAD == ONDIO_PAD
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_UP,                  BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_UP|BUTTON_REPEAT,    BUTTON_NONE},
#elif CONFIG_KEYPAD == PLAYER_PAD
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_ON,                  BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_ON|BUTTON_REPEAT,    BUTTON_NONE},
#elif CONFIG_KEYPAD == RECORDER_PAD
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_PLAY,                BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_PLAY|BUTTON_REPEAT,  BUTTON_NONE},
#elif (CONFIG_KEYPAD == SANSA_C200_PAD) \
    || (CONFIG_KEYPAD == ARCHOS_AV300_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_SELECT,              BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) \
   || (CONFIG_KEYPAD == SANSA_FUZE_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_SELECT,              BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE},
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_REW,                 BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_REW|BUTTON_REPEAT,   BUTTON_NONE},
#elif (CONFIG_KEYPAD == MROBE500_PAD)
    { PLA_LEFT,              BUTTON_RC_REW,                     BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_FF,                      BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_REW|BUTTON_REPEAT,       BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_FF|BUTTON_REPEAT,        BUTTON_NONE},
    { PLA_FIRE,              BUTTON_RC_HEART,                   BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_RC_HEART|BUTTON_REPEAT,     BUTTON_NONE},
#elif (CONFIG_KEYPAD == COWOND2_PAD)
    { PLA_LEFT,              BUTTON_MINUS,                  BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_MINUS|BUTTON_REPEAT,    BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_PLUS,                   BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_PLUS|BUTTON_REPEAT,     BUTTON_NONE},
    { PLA_FIRE,              BUTTON_MENU,                   BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_MENU|BUTTON_REPEAT,     BUTTON_NONE},
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
    { PLA_LEFT,              BUTTON_RC_REW,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RC_FF,                 BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_RC_REW|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RC_FF|BUTTON_REPEAT,   BUTTON_NONE},
    { PLA_FIRE,              BUTTON_RC_MODE,               BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == IAUDIO67_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_MENU,                BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_MENU|BUTTON_REPEAT,  BUTTON_NONE},
#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD)
    { PLA_LEFT,              BUTTON_LEFT,                BUTTON_NONE},
    { PLA_RIGHT,             BUTTON_RIGHT,               BUTTON_NONE},
    { PLA_LEFT_REPEAT,       BUTTON_LEFT|BUTTON_REPEAT,  BUTTON_NONE},
    { PLA_RIGHT_REPEAT,      BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE},
    { PLA_FIRE,              BUTTON_SELECT,                BUTTON_NONE},
    { PLA_FIRE_REPEAT,       BUTTON_SELECT|BUTTON_REPEAT,  BUTTON_NONE},
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) /* Touchscreen target */
#else
    #error pluginlib_actions: Unsupported keypad
#endif
    {CONTEXT_CUSTOM,BUTTON_NONE,BUTTON_NONE}
};

/* these were taken from the bubbles plugin, so may need tweaking */
const struct button_mapping generic_actions[] = 
{
#ifdef HAVE_TOUCHSCREEN
    {PLA_QUIT,          BUTTON_BOTTOMRIGHT,                 BUTTON_NONE},
    {PLA_START,         BUTTON_CENTER,                      BUTTON_NONE},
    {PLA_MENU,          BUTTON_TOPLEFT,                     BUTTON_NONE},
    {PLA_FIRE,          BUTTON_BOTTOMMIDDLE,                BUTTON_NONE},
    {PLA_FIRE_REPEAT,   BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT,  BUTTON_NONE},
#endif
#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_START,         BUTTON_RC_ON,                 BUTTON_NONE},
    {PLA_MENU,          BUTTON_MODE,                  BUTTON_NONE},
    {PLA_FIRE,          BUTTON_SELECT,                BUTTON_NONE},
    {PLA_FIRE,          BUTTON_RC_MENU,               BUTTON_NONE},