mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
Button action code for the Virtual keyboard. Extra buttons for H1xx remote: Vol-+ Cursor Left/Right. H3xx remote:-10/+10 Cursor Left/Right.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10694 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
af95a01364
commit
0ba2204beb
10 changed files with 292 additions and 234 deletions
|
@ -68,6 +68,7 @@ enum {
|
||||||
|
|
||||||
CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */
|
CONTEXT_YESNOSCREEN, /*NOTE: make sure your target has this and ACTION_YESNO_ACCEPT */
|
||||||
CONTEXT_RECSCREEN,
|
CONTEXT_RECSCREEN,
|
||||||
|
CONTEXT_KEYBOARD,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,6 +178,21 @@ enum {
|
||||||
/* yesno screen */
|
/* yesno screen */
|
||||||
ACTION_YESNO_ACCEPT,
|
ACTION_YESNO_ACCEPT,
|
||||||
|
|
||||||
|
/* keyboard screen */
|
||||||
|
ACTION_KBD_LEFT,
|
||||||
|
ACTION_KBD_RIGHT,
|
||||||
|
ACTION_KBD_CURSOR_LEFT,
|
||||||
|
ACTION_KBD_CURSOR_RIGHT,
|
||||||
|
ACTION_KBD_SELECT,
|
||||||
|
ACTION_KBD_SELECT_REM,
|
||||||
|
ACTION_KBD_PAGE_FLIP,
|
||||||
|
ACTION_KBD_DONE,
|
||||||
|
ACTION_KBD_ABORT,
|
||||||
|
ACTION_KBD_BACKSPACE,
|
||||||
|
ACTION_KBD_UP,
|
||||||
|
ACTION_KBD_DOWN,
|
||||||
|
ACTION_KBD_MORSE_INPUT,
|
||||||
|
ACTION_KBD_MORSE_SELECT,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -220,6 +220,29 @@ const struct button_mapping button_context_pitchscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_pitchcreen */
|
}; /* button_context_pitchcreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_POWER|BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_POWER|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER|BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_POWER|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_PAGE_FLIP, BUTTON_POWER|BUTTON_MENU, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_A, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_MENU, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
const struct button_mapping* get_context_mapping(int context)
|
const struct button_mapping* get_context_mapping(int context)
|
||||||
{
|
{
|
||||||
switch (context)
|
switch (context)
|
||||||
|
@ -261,6 +284,8 @@ const struct button_mapping* get_context_mapping(int context)
|
||||||
return button_context_quickscreen;
|
return button_context_quickscreen;
|
||||||
case CONTEXT_PITCHSCREEN:
|
case CONTEXT_PITCHSCREEN:
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
}
|
}
|
||||||
return button_context_standard;
|
return button_context_standard;
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,7 +152,21 @@ const struct button_mapping button_context_pitchscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
|
||||||
}; /* button_context_pitchscreen */
|
}; /* button_context_pitchscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_REW|BUTTON_REL, BUTTON_REW },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_FF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_SCROLL_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
||||||
const struct button_mapping* get_context_mapping(int context)
|
const struct button_mapping* get_context_mapping(int context)
|
||||||
|
@ -186,6 +200,9 @@ const struct button_mapping* get_context_mapping(int context)
|
||||||
return button_context_quickscreen;
|
return button_context_quickscreen;
|
||||||
case CONTEXT_PITCHSCREEN:
|
case CONTEXT_PITCHSCREEN:
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
|
|
||||||
case CONTEXT_LIST:
|
case CONTEXT_LIST:
|
||||||
case CONTEXT_MAINMENU:
|
case CONTEXT_MAINMENU:
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -232,6 +232,31 @@ const struct button_mapping button_context_recscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_recscreen */
|
}; /* button_context_recscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_PAGE_FLIP, BUTTON_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_ON|BUTTON_REL, BUTTON_ON },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_REC, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_INPUT, BUTTON_ON|BUTTON_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Remote control mappings
|
* Remote control mappings
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -536,6 +561,64 @@ const struct button_mapping button_context_recscreen_h300lcdremote[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_recscreen_h300lcdremote */
|
}; /* button_context_recscreen_h300lcdremote */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard_h100remote[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_ON|BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_ON|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT_REM, BUTTON_RC_MENU, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_RC_STOP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_RC_REC, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_RC_SOURCE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_RC_BITRATE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard_h100remote */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard_h300lcdremote[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_MENU|BUTTON_RC_REW, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_MENU|BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_MENU|BUTTON_RC_FF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_MENU|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_BITRATE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT_REM, BUTTON_RC_MENU, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_PAGE_FLIP, BUTTON_RC_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_RC_ON|BUTTON_REL, BUTTON_RC_ON },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_RC_STOP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_RC_REC, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_RC_VOL_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_INPUT, BUTTON_RC_ON|BUTTON_RC_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_MORSE_SELECT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard_h300lcdremote */
|
||||||
|
|
||||||
|
|
||||||
/* the actual used tables */
|
/* the actual used tables */
|
||||||
static const struct button_mapping
|
static const struct button_mapping
|
||||||
|
@ -556,8 +639,10 @@ static const struct button_mapping
|
||||||
= button_context_quickscreen_h100remote,
|
= button_context_quickscreen_h100remote,
|
||||||
*remote_btn_ctxt_pitchscreen
|
*remote_btn_ctxt_pitchscreen
|
||||||
= button_context_pitchscreen_h100remote,
|
= button_context_pitchscreen_h100remote,
|
||||||
*remote_button_ctxt_recscreen
|
*remote_btn_ctxt_recscreen
|
||||||
= button_context_recscreen_h100remote;
|
= button_context_recscreen_h100remote,
|
||||||
|
*remote_btn_ctxt_keyboard
|
||||||
|
= button_context_keyboard_h100remote;
|
||||||
|
|
||||||
static int _remote_type = 0;
|
static int _remote_type = 0;
|
||||||
|
|
||||||
|
@ -579,7 +664,8 @@ static void remap_remote(void)
|
||||||
remote_btn_ctxt_bmark = NULL;
|
remote_btn_ctxt_bmark = NULL;
|
||||||
remote_btn_ctxt_quickscreen = NULL;
|
remote_btn_ctxt_quickscreen = NULL;
|
||||||
remote_btn_ctxt_pitchscreen = NULL;
|
remote_btn_ctxt_pitchscreen = NULL;
|
||||||
remote_button_ctxt_recscreen = NULL;
|
remote_btn_ctxt_recscreen = NULL;
|
||||||
|
remote_btn_ctxt_keyboard = NULL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REMOTETYPE_H100_LCD:
|
case REMOTETYPE_H100_LCD:
|
||||||
|
@ -600,8 +686,10 @@ static void remap_remote(void)
|
||||||
= button_context_quickscreen_h100remote,
|
= button_context_quickscreen_h100remote,
|
||||||
remote_btn_ctxt_pitchscreen
|
remote_btn_ctxt_pitchscreen
|
||||||
= button_context_pitchscreen_h100remote,
|
= button_context_pitchscreen_h100remote,
|
||||||
remote_button_ctxt_recscreen
|
remote_btn_ctxt_recscreen
|
||||||
= button_context_recscreen_h100remote;
|
= button_context_recscreen_h100remote,
|
||||||
|
remote_btn_ctxt_keyboard
|
||||||
|
= button_context_keyboard_h100remote;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REMOTETYPE_H300_LCD:
|
case REMOTETYPE_H300_LCD:
|
||||||
|
@ -622,8 +710,10 @@ static void remap_remote(void)
|
||||||
= button_context_quickscreen_h300lcdremote,
|
= button_context_quickscreen_h300lcdremote,
|
||||||
remote_btn_ctxt_pitchscreen
|
remote_btn_ctxt_pitchscreen
|
||||||
= button_context_pitchscreen_h300lcdremote,
|
= button_context_pitchscreen_h300lcdremote,
|
||||||
remote_button_ctxt_recscreen
|
remote_btn_ctxt_recscreen
|
||||||
= button_context_recscreen_h300lcdremote;
|
= button_context_recscreen_h300lcdremote,
|
||||||
|
remote_btn_ctxt_keyboard
|
||||||
|
= button_context_keyboard_h300lcdremote;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */
|
case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */
|
||||||
|
@ -644,8 +734,10 @@ static void remap_remote(void)
|
||||||
= button_context_quickscreen_h300lcdremote,
|
= button_context_quickscreen_h300lcdremote,
|
||||||
remote_btn_ctxt_pitchscreen
|
remote_btn_ctxt_pitchscreen
|
||||||
= button_context_pitchscreen_h300lcdremote,
|
= button_context_pitchscreen_h300lcdremote,
|
||||||
remote_button_ctxt_recscreen
|
remote_btn_ctxt_recscreen
|
||||||
= button_context_recscreen_h300lcdremote;
|
= button_context_recscreen_h300lcdremote,
|
||||||
|
remote_btn_ctxt_keyboard
|
||||||
|
= button_context_keyboard_h300lcdremote;
|
||||||
#if 0
|
#if 0
|
||||||
remote_btn_ctxt_std =
|
remote_btn_ctxt_std =
|
||||||
remote_btn_ctxt_wps =
|
remote_btn_ctxt_wps =
|
||||||
|
@ -659,7 +751,8 @@ static void remap_remote(void)
|
||||||
remote_btn_ctxt_bmark =
|
remote_btn_ctxt_bmark =
|
||||||
remote_btn_ctxt_quickscreen =
|
remote_btn_ctxt_quickscreen =
|
||||||
remote_btn_ctxt_pitchscreen =
|
remote_btn_ctxt_pitchscreen =
|
||||||
remote_button_ctxt_recscreen =
|
remote_btn_ctxt_recscreen =
|
||||||
|
remote_btn_ctxt_keyboard =
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -707,7 +800,9 @@ const struct button_mapping* get_context_mapping_remote(int context)
|
||||||
case CONTEXT_PITCHSCREEN:
|
case CONTEXT_PITCHSCREEN:
|
||||||
return remote_btn_ctxt_pitchscreen;
|
return remote_btn_ctxt_pitchscreen;
|
||||||
case CONTEXT_RECSCREEN:
|
case CONTEXT_RECSCREEN:
|
||||||
return remote_button_ctxt_recscreen;
|
return remote_btn_ctxt_recscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return remote_btn_ctxt_keyboard;
|
||||||
}
|
}
|
||||||
return remote_btn_ctxt_std;
|
return remote_btn_ctxt_std;
|
||||||
}
|
}
|
||||||
|
@ -758,6 +853,8 @@ const struct button_mapping* get_context_mapping(int context)
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
case CONTEXT_RECSCREEN:
|
case CONTEXT_RECSCREEN:
|
||||||
return button_context_recscreen;
|
return button_context_recscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
}
|
}
|
||||||
return button_context_standard;
|
return button_context_standard;
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,6 +134,22 @@ const struct button_mapping button_context_pitchscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_pitchcreen */
|
}; /* button_context_pitchcreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_MODE, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_PLAY, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
||||||
const struct button_mapping* get_context_mapping(int context)
|
const struct button_mapping* get_context_mapping(int context)
|
||||||
{
|
{
|
||||||
|
@ -158,6 +174,8 @@ const struct button_mapping* get_context_mapping(int context)
|
||||||
return button_context_quickscreen;
|
return button_context_quickscreen;
|
||||||
case CONTEXT_PITCHSCREEN:
|
case CONTEXT_PITCHSCREEN:
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
}
|
}
|
||||||
return button_context_standard;
|
return button_context_standard;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,20 @@ const struct button_mapping button_context_pitchscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_pitchscreen */
|
}; /* button_context_pitchscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_MENU, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_SCROLL_BACK, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_SCROLL_FWD, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
|
||||||
const struct button_mapping* get_context_mapping(int context)
|
const struct button_mapping* get_context_mapping(int context)
|
||||||
{
|
{
|
||||||
|
@ -180,6 +194,8 @@ const struct button_mapping* get_context_mapping(int context)
|
||||||
return button_context_quickscreen;
|
return button_context_quickscreen;
|
||||||
case CONTEXT_PITCHSCREEN:
|
case CONTEXT_PITCHSCREEN:
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
default:
|
default:
|
||||||
return button_context_standard;
|
return button_context_standard;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,6 +137,22 @@ const struct button_mapping button_context_recscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_recscreen */
|
}; /* button_context_recscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
const struct button_mapping* get_context_mapping( int context )
|
const struct button_mapping* get_context_mapping( int context )
|
||||||
{
|
{
|
||||||
switch( context )
|
switch( context )
|
||||||
|
@ -165,6 +181,8 @@ const struct button_mapping* get_context_mapping( int context )
|
||||||
return button_context_tree;
|
return button_context_tree;
|
||||||
case CONTEXT_RECSCREEN:
|
case CONTEXT_RECSCREEN:
|
||||||
return button_context_recscreen;
|
return button_context_recscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
|
|
||||||
case CONTEXT_LIST:
|
case CONTEXT_LIST:
|
||||||
case CONTEXT_MAINMENU:
|
case CONTEXT_MAINMENU:
|
||||||
|
|
|
@ -161,6 +161,29 @@ const struct button_mapping button_context_recscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_recscreen */
|
}; /* button_context_recscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_LEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_ON|BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_PLAY, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_PAGE_FLIP, BUTTON_F1, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_F2, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_OFF, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_F3, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_BACKSPACE, BUTTON_F3|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Remote control mappings
|
* Remote control mappings
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
@ -232,6 +255,8 @@ const struct button_mapping* get_context_mapping( int context )
|
||||||
|
|
||||||
case CONTEXT_RECSCREEN:
|
case CONTEXT_RECSCREEN:
|
||||||
return button_context_recscreen;
|
return button_context_recscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
|
|
||||||
case CONTEXT_STD:
|
case CONTEXT_STD:
|
||||||
case CONTEXT_LIST:
|
case CONTEXT_LIST:
|
||||||
|
|
|
@ -216,6 +216,22 @@ const struct button_mapping button_context_recscreen[] = {
|
||||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||||
}; /* button_context_recscreen */
|
}; /* button_context_recscreen */
|
||||||
|
|
||||||
|
const struct button_mapping button_context_keyboard[] = {
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_SELECT, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
|
||||||
|
{ ACTION_KBD_DONE, BUTTON_PLAY, BUTTON_NONE },
|
||||||
|
{ ACTION_KBD_ABORT, BUTTON_REC, BUTTON_NONE },
|
||||||
|
|
||||||
|
|
||||||
|
LAST_ITEM_IN_LIST
|
||||||
|
}; /* button_context_keyboard */
|
||||||
|
|
||||||
static const struct button_mapping* get_context_mapping_remote( int context )
|
static const struct button_mapping* get_context_mapping_remote( int context )
|
||||||
{
|
{
|
||||||
|
@ -271,6 +287,9 @@ const struct button_mapping* get_context_mapping( int context )
|
||||||
return button_context_pitchscreen;
|
return button_context_pitchscreen;
|
||||||
case CONTEXT_RECSCREEN:
|
case CONTEXT_RECSCREEN:
|
||||||
return button_context_recscreen;
|
return button_context_recscreen;
|
||||||
|
case CONTEXT_KEYBOARD:
|
||||||
|
return button_context_keyboard;
|
||||||
|
|
||||||
case CONTEXT_LIST:
|
case CONTEXT_LIST:
|
||||||
case CONTEXT_MAINMENU:
|
case CONTEXT_MAINMENU:
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "icons.h"
|
#include "icons.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "hangul.h"
|
#include "hangul.h"
|
||||||
|
#include "action.h"
|
||||||
|
|
||||||
#ifndef O_BINARY
|
#ifndef O_BINARY
|
||||||
#define O_BINARY 0
|
#define O_BINARY 0
|
||||||
|
@ -52,143 +53,22 @@
|
||||||
|
|
||||||
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||||
#define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT)
|
#define KBD_MORSE_INPUT /* I-Rivers have a Morse input mode */
|
||||||
#define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT)
|
|
||||||
#define KBD_SELECT BUTTON_SELECT
|
|
||||||
#define KBD_PAGE_FLIP BUTTON_MODE /* unused */
|
|
||||||
#define KBD_DONE_PRE BUTTON_ON
|
|
||||||
#define KBD_DONE (BUTTON_ON | BUTTON_REL)
|
|
||||||
#define KBD_ABORT BUTTON_OFF
|
|
||||||
#define KBD_BACKSPACE BUTTON_REC
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
#define KBD_MORSE_INPUT (BUTTON_ON | BUTTON_MODE)
|
|
||||||
#define KBD_RC_CURSOR_RIGHT (BUTTON_RC_ON | BUTTON_RC_FF)
|
|
||||||
#define KBD_RC_CURSOR_LEFT (BUTTON_RC_ON | BUTTON_RC_REW)
|
|
||||||
#define KBD_RC_SELECT BUTTON_RC_MENU
|
|
||||||
#define KBD_RC_PAGE_FLIP BUTTON_RC_MODE
|
|
||||||
#define KBD_RC_DONE_PRE BUTTON_RC_ON
|
|
||||||
#define KBD_RC_DONE (BUTTON_RC_ON | BUTTON_REL)
|
|
||||||
#define KBD_RC_ABORT BUTTON_RC_STOP
|
|
||||||
#define KBD_RC_BACKSPACE BUTTON_RC_REC
|
|
||||||
#define KBD_RC_LEFT BUTTON_RC_REW
|
|
||||||
#define KBD_RC_RIGHT BUTTON_RC_FF
|
|
||||||
#define KBD_RC_UP BUTTON_RC_SOURCE
|
|
||||||
#define KBD_RC_DOWN BUTTON_RC_BITRATE
|
|
||||||
#define KBD_RC_MORSE_INPUT (BUTTON_RC_ON | BUTTON_RC_MODE)
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
|
||||||
#define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT)
|
|
||||||
#define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT)
|
|
||||||
#define KBD_SELECT BUTTON_PLAY
|
|
||||||
#define KBD_PAGE_FLIP BUTTON_F1
|
|
||||||
#define KBD_DONE BUTTON_F2
|
|
||||||
#define KBD_ABORT BUTTON_OFF
|
|
||||||
#define KBD_BACKSPACE BUTTON_F3
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */
|
#elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */
|
||||||
#define KBD_MODES /* Ondio uses 2 modes, picker and line edit */
|
#define KBD_MODES /* Ondio uses 2 modes, picker and line edit */
|
||||||
#define KBD_SELECT (BUTTON_MENU | BUTTON_REL) /* backspace in line edit */
|
|
||||||
#define KBD_SELECT_PRE BUTTON_MENU
|
|
||||||
#define KBD_DONE_PRE BUTTON_MENU
|
|
||||||
#define KBD_DONE (BUTTON_MENU | BUTTON_REPEAT)
|
|
||||||
#define KBD_ABORT BUTTON_OFF
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == GMINI100_PAD
|
|
||||||
#define KBD_CURSOR_RIGHT (BUTTON_MENU | BUTTON_RIGHT)
|
|
||||||
#define KBD_CURSOR_LEFT (BUTTON_MENU | BUTTON_LEFT)
|
|
||||||
#define KBD_SELECT (BUTTON_PLAY | BUTTON_REL)
|
|
||||||
#define KBD_SELECT_PRE BUTTON_PLAY
|
|
||||||
#define KBD_PAGE_FLIP BUTTON_ON
|
|
||||||
#define KBD_DONE_PRE BUTTON_PLAY
|
|
||||||
#define KBD_DONE (BUTTON_PLAY | BUTTON_REPEAT)
|
|
||||||
#define KBD_ABORT BUTTON_OFF
|
|
||||||
#define KBD_BACKSPACE (BUTTON_MENU | BUTTON_PLAY)
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
|
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
|
||||||
|
|
||||||
#define KBD_MODES /* iPod uses 2 modes, picker and line edit */
|
#define KBD_MODES /* iPod uses 2 modes, picker and line edit */
|
||||||
#define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */
|
|
||||||
#define KBD_SELECT_PRE BUTTON_SELECT
|
|
||||||
#define KBD_DONE_PRE BUTTON_SELECT
|
|
||||||
#define KBD_DONE (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
#define KBD_ABORT BUTTON_MENU
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_SCROLL_BACK
|
|
||||||
#define KBD_DOWN BUTTON_SCROLL_FWD
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
||||||
|
|
||||||
/* TODO: Check keyboard mappings */
|
|
||||||
|
|
||||||
#define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */
|
#define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */
|
||||||
#define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */
|
|
||||||
#define KBD_SELECT_PRE BUTTON_SELECT
|
|
||||||
#define KBD_DONE BUTTON_MODE
|
|
||||||
#define KBD_ABORT BUTTON_PLAY
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
|
#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
|
||||||
|
|
||||||
/* TODO: Check keyboard mappings */
|
|
||||||
|
|
||||||
#define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */
|
#define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */
|
||||||
#define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */
|
|
||||||
#define KBD_SELECT_PRE BUTTON_SELECT
|
|
||||||
#define KBD_DONE BUTTON_PLAY
|
|
||||||
#define KBD_ABORT BUTTON_REC
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == GIGABEAT_PAD
|
|
||||||
|
|
||||||
#define KBD_CURSOR_RIGHT (BUTTON_POWER | BUTTON_RIGHT)
|
|
||||||
#define KBD_CURSOR_LEFT (BUTTON_POWER | BUTTON_LEFT)
|
|
||||||
#define KBD_SELECT BUTTON_SELECT
|
|
||||||
#define KBD_PAGE_FLIP (BUTTON_POWER | BUTTON_MENU)
|
|
||||||
#define KBD_DONE_PRE BUTTON_POWER
|
|
||||||
#define KBD_DONE (BUTTON_POWER | BUTTON_REL)
|
|
||||||
#define KBD_ABORT BUTTON_A
|
|
||||||
#define KBD_BACKSPACE BUTTON_MENU
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_UP
|
|
||||||
#define KBD_DOWN BUTTON_DOWN
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
|
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
|
||||||
|
|
||||||
/* TODO: Check keyboard mappings */
|
|
||||||
|
|
||||||
#define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */
|
#define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */
|
||||||
#define KBD_SELECT (BUTTON_REW | BUTTON_REL) /* backspace in line edit */
|
|
||||||
#define KBD_SELECT_PRE BUTTON_REW
|
|
||||||
#define KBD_DONE BUTTON_PLAY
|
|
||||||
#define KBD_ABORT BUTTON_FF
|
|
||||||
#define KBD_LEFT BUTTON_LEFT
|
|
||||||
#define KBD_RIGHT BUTTON_RIGHT
|
|
||||||
#define KBD_UP BUTTON_SCROLL_UP
|
|
||||||
#define KBD_DOWN BUTTON_SCROLL_DOWN
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct keyboard_parameters {
|
struct keyboard_parameters {
|
||||||
|
@ -694,30 +574,21 @@ int kbd_input(char* text, int buflen)
|
||||||
FOR_NB_SCREENS(l)
|
FOR_NB_SCREENS(l)
|
||||||
screens[l].update();
|
screens[l].update();
|
||||||
|
|
||||||
button = button_get_w_tmo(HZ/2);
|
button = get_action(CONTEXT_KEYBOARD,HZ/2);
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
{
|
{
|
||||||
/* Remap some buttons for morse mode. */
|
/* Remap some buttons for morse mode. */
|
||||||
if (button == KBD_LEFT || button == (KBD_LEFT | BUTTON_REPEAT))
|
if (button == ACTION_KBD_LEFT)
|
||||||
button = KBD_CURSOR_LEFT;
|
button = ACTION_KBD_CURSOR_LEFT;
|
||||||
if (button == KBD_RIGHT || button == (KBD_RIGHT | BUTTON_REPEAT))
|
if (button == ACTION_KBD_RIGHT)
|
||||||
button = KBD_CURSOR_RIGHT;
|
button = ACTION_KBD_CURSOR_RIGHT;
|
||||||
#ifdef KBD_RC_LEFT
|
|
||||||
if (button == KBD_RC_LEFT || button == (KBD_RC_LEFT | BUTTON_REPEAT))
|
|
||||||
button = KBD_RC_CURSOR_LEFT;
|
|
||||||
if (button == KBD_RC_RIGHT || button == (KBD_RC_RIGHT | BUTTON_REPEAT))
|
|
||||||
button = KBD_RC_CURSOR_RIGHT;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch ( button ) {
|
switch ( button ) {
|
||||||
|
|
||||||
#ifdef KBD_RC_ABORT
|
case ACTION_KBD_ABORT:
|
||||||
case KBD_RC_ABORT:
|
|
||||||
#endif
|
|
||||||
case KBD_ABORT:
|
|
||||||
FOR_NB_SCREENS(l)
|
FOR_NB_SCREENS(l)
|
||||||
screens[l].setfont(FONT_UI);
|
screens[l].setfont(FONT_UI);
|
||||||
|
|
||||||
|
@ -727,11 +598,7 @@ int kbd_input(char* text, int buflen)
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#if defined(KBD_PAGE_FLIP)
|
case ACTION_KBD_PAGE_FLIP:
|
||||||
case KBD_PAGE_FLIP:
|
|
||||||
#ifdef KBD_RC_PAGE_FLIP
|
|
||||||
case KBD_RC_PAGE_FLIP:
|
|
||||||
#endif
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
break;
|
break;
|
||||||
|
@ -745,13 +612,10 @@ int kbd_input(char* text, int buflen)
|
||||||
kbd_spellchar(param[l].kbd_buf[k]);
|
kbd_spellchar(param[l].kbd_buf[k]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
case KBD_MORSE_INPUT:
|
case ACTION_KBD_MORSE_INPUT:
|
||||||
#ifdef KBD_RC_MORSE_INPUT
|
|
||||||
case KBD_RC_MORSE_INPUT:
|
|
||||||
#endif
|
|
||||||
morse_mode = !morse_mode;
|
morse_mode = !morse_mode;
|
||||||
FOR_NB_SCREENS(l)
|
FOR_NB_SCREENS(l)
|
||||||
{
|
{
|
||||||
|
@ -765,12 +629,8 @@ int kbd_input(char* text, int buflen)
|
||||||
/* FIXME: We should talk something like Morse mode.. */
|
/* FIXME: We should talk something like Morse mode.. */
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef KBD_RC_RIGHT
|
|
||||||
case KBD_RC_RIGHT:
|
case ACTION_KBD_RIGHT:
|
||||||
case KBD_RC_RIGHT | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_RIGHT:
|
|
||||||
case KBD_RIGHT | BUTTON_REPEAT:
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
break;
|
break;
|
||||||
|
@ -806,12 +666,8 @@ int kbd_input(char* text, int buflen)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef KBD_RC_LEFT
|
|
||||||
case KBD_RC_LEFT:
|
case ACTION_KBD_LEFT:
|
||||||
case KBD_RC_LEFT | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_LEFT:
|
|
||||||
case KBD_LEFT | BUTTON_REPEAT:
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
break;
|
break;
|
||||||
|
@ -852,12 +708,7 @@ int kbd_input(char* text, int buflen)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_RC_DOWN
|
case ACTION_KBD_DOWN:
|
||||||
case KBD_RC_DOWN:
|
|
||||||
case KBD_RC_DOWN | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_DOWN:
|
|
||||||
case KBD_DOWN | BUTTON_REPEAT:
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
break;
|
break;
|
||||||
|
@ -895,12 +746,7 @@ int kbd_input(char* text, int buflen)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_RC_UP
|
case ACTION_KBD_UP:
|
||||||
case KBD_RC_UP:
|
|
||||||
case KBD_RC_UP | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_UP:
|
|
||||||
case KBD_UP | BUTTON_REPEAT:
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
break;
|
break;
|
||||||
|
@ -938,27 +784,13 @@ int kbd_input(char* text, int buflen)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_RC_DONE
|
case ACTION_KBD_DONE:
|
||||||
case KBD_RC_DONE:
|
|
||||||
#endif
|
|
||||||
case KBD_DONE:
|
|
||||||
/* accepts what was entered and continues */
|
/* accepts what was entered and continues */
|
||||||
#ifdef KBD_DONE_PRE
|
|
||||||
if ((lastbutton != KBD_DONE_PRE)
|
|
||||||
#ifdef KBD_RC_DONE_PRE
|
|
||||||
&& (lastbutton != KBD_RC_DONE_PRE)
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
done = true;
|
done = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
#ifdef KBD_RC_SELECT
|
case ACTION_KBD_MORSE_SELECT:
|
||||||
case KBD_RC_SELECT | BUTTON_REL:
|
|
||||||
#endif
|
|
||||||
case KBD_SELECT | BUTTON_REL:
|
|
||||||
if (morse_mode && morse_reading)
|
if (morse_mode && morse_reading)
|
||||||
{
|
{
|
||||||
morse_code <<= 1;
|
morse_code <<= 1;
|
||||||
|
@ -969,15 +801,11 @@ int kbd_input(char* text, int buflen)
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef KBD_RC_SELECT
|
case ACTION_KBD_SELECT:
|
||||||
case KBD_RC_SELECT:
|
case ACTION_KBD_SELECT_REM:
|
||||||
|
if (button == ACTION_KBD_SELECT_REM)
|
||||||
if (button == KBD_RC_SELECT)
|
|
||||||
char_screen = 1;
|
char_screen = 1;
|
||||||
#endif
|
else
|
||||||
case KBD_SELECT:
|
|
||||||
|
|
||||||
if (button == KBD_SELECT)
|
|
||||||
char_screen = 0;
|
char_screen = 0;
|
||||||
#ifdef KBD_MORSE_INPUT
|
#ifdef KBD_MORSE_INPUT
|
||||||
if (morse_mode)
|
if (morse_mode)
|
||||||
|
@ -993,14 +821,6 @@ int kbd_input(char* text, int buflen)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* inserts the selected char */
|
/* inserts the selected char */
|
||||||
#ifdef KBD_SELECT_PRE
|
|
||||||
if ((lastbutton != KBD_SELECT_PRE)
|
|
||||||
#ifdef KBD_RC_SELECT_PRE
|
|
||||||
&& (lastbutton != KBD_RC_SELECT_PRE)
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#ifdef KBD_MODES
|
#ifdef KBD_MODES
|
||||||
if (line_edit) { /* select doubles as backspace in line_edit */
|
if (line_edit) { /* select doubles as backspace in line_edit */
|
||||||
if (hangul) {
|
if (hangul) {
|
||||||
|
@ -1088,12 +908,7 @@ int kbd_input(char* text, int buflen)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifndef KBD_MODES
|
#ifndef KBD_MODES
|
||||||
#ifdef KBD_RC_BACKSPACE
|
case ACTION_KBD_BACKSPACE:
|
||||||
case KBD_RC_BACKSPACE:
|
|
||||||
case KBD_RC_BACKSPACE | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_BACKSPACE:
|
|
||||||
case KBD_BACKSPACE | BUTTON_REPEAT:
|
|
||||||
if (hangul)
|
if (hangul)
|
||||||
{
|
{
|
||||||
if (htail)
|
if (htail)
|
||||||
|
@ -1116,12 +931,8 @@ int kbd_input(char* text, int buflen)
|
||||||
talk_spell(text, false); /* speak revised text */
|
talk_spell(text, false); /* speak revised text */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_RC_CURSOR_RIGHT
|
case ACTION_KBD_CURSOR_RIGHT:
|
||||||
case KBD_RC_CURSOR_RIGHT:
|
|
||||||
case KBD_RC_CURSOR_RIGHT | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_CURSOR_RIGHT:
|
|
||||||
case KBD_CURSOR_RIGHT | BUTTON_REPEAT:
|
|
||||||
if (hangul)
|
if (hangul)
|
||||||
hangul = false;
|
hangul = false;
|
||||||
|
|
||||||
|
@ -1133,12 +944,8 @@ int kbd_input(char* text, int buflen)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef KBD_RC_CURSOR_LEFT
|
case ACTION_KBD_CURSOR_LEFT:
|
||||||
case KBD_RC_CURSOR_LEFT:
|
|
||||||
case KBD_RC_CURSOR_LEFT | BUTTON_REPEAT:
|
|
||||||
#endif
|
|
||||||
case KBD_CURSOR_LEFT:
|
|
||||||
case KBD_CURSOR_LEFT | BUTTON_REPEAT:
|
|
||||||
if (hangul)
|
if (hangul)
|
||||||
hangul = false;
|
hangul = false;
|
||||||
if (editpos)
|
if (editpos)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue