1
0
Fork 0
forked from len0rd/rockbox

h1x0/h3x0: Fix missing TIME context in remote button map

It was actually defined but not actually mapped in.

Also shut up a warning in the peakmeter code when not using a color
display.

Both caught by -Wunused-const-variable

Change-Id: Ie2403c0cd77e6fdf3468fd45115a1e0f228238e8
This commit is contained in:
Solomon Peachy 2025-04-22 07:37:28 -04:00
parent 3b974e791a
commit 6d24ff3257
2 changed files with 150 additions and 149 deletions

View file

@ -30,17 +30,17 @@
#include "lcd-remote.h" /* for remote_type() */ #include "lcd-remote.h" /* for remote_type() */
#include "settings.h" #include "settings.h"
/* /*
* The format of the list is as follows * The format of the list is as follows
* { Action Code, Button code, Prereq button code } * { Action Code, Button code, Prereq button code }
* if there's no need to check the previous button's value, use BUTTON_NONE * if there's no need to check the previous button's value, use BUTTON_NONE
* Insert LAST_ITEM_IN_LIST at the end of each mapping * Insert LAST_ITEM_IN_LIST at the end of each mapping
*/ */
/* CONTEXT_CUSTOM's used in this file... /* CONTEXT_CUSTOM's used in this file...
CONTEXT_CUSTOM|CONTEXT_TREE = the standard list/tree defines (without directions) CONTEXT_CUSTOM|CONTEXT_TREE = the standard list/tree defines (without directions)
CONTEXT_CUSTOM|CONTEXT_SETTINGS = the direction keys for the eq/col picker screens CONTEXT_CUSTOM|CONTEXT_SETTINGS = the direction keys for the eq/col picker screens
i.e where up/down is inc/dec i.e where up/down is inc/dec
CONTEXT_SETTINGS = up/down is prev/next, l/r is inc/dec CONTEXT_SETTINGS = up/down is prev/next, l/r is inc/dec
@ -52,19 +52,19 @@ static const struct button_mapping button_context_standard[] = {
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE },
{ ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT }, { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
{ ACTION_STD_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE }, { ACTION_STD_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
{ ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE }, { ACTION_STD_MENU, BUTTON_MODE|BUTTON_REL, BUTTON_MODE },
{ ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT }, { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_ON|BUTTON_REL, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_ON|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST LAST_ITEM_IN_LIST
}; /* button_context_standard */ }; /* button_context_standard */
@ -93,10 +93,10 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_ID3SCREEN, BUTTON_ON|BUTTON_MODE, BUTTON_NONE }, { ACTION_WPS_ID3SCREEN, BUTTON_ON|BUTTON_MODE, BUTTON_NONE },
{ ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_HOTKEY, BUTTON_REC|BUTTON_REL, BUTTON_REC }, { ACTION_WPS_HOTKEY, BUTTON_REC|BUTTON_REL, BUTTON_REC },
LAST_ITEM_IN_LIST LAST_ITEM_IN_LIST
}; /* button_context_wps */ }; /* button_context_wps */
static const struct button_mapping button_context_list[] = { static const struct button_mapping button_context_list[] = {
{ ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP, BUTTON_NONE }, { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP, BUTTON_NONE },
{ ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_LISTTREE_PGUP, BUTTON_ON|BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
@ -116,7 +116,7 @@ static const struct button_mapping button_context_tree[] = {
}; /* button_context_tree */ }; /* button_context_tree */
static const struct button_mapping button_context_listtree_scroll_with_combo[] = { static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
{ ACTION_NONE, BUTTON_ON, BUTTON_NONE }, { ACTION_NONE, BUTTON_ON, BUTTON_NONE },
{ ACTION_TREE_PGLEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE }, { ACTION_TREE_PGLEFT, BUTTON_ON|BUTTON_LEFT, BUTTON_NONE },
{ ACTION_TREE_ROOT_INIT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_ON|BUTTON_LEFT }, { ACTION_TREE_ROOT_INIT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_ON|BUTTON_LEFT },
{ ACTION_TREE_PGLEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_TREE_PGLEFT, BUTTON_ON|BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
@ -145,7 +145,7 @@ static const struct button_mapping button_context_settings[] = {
{ ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settings */ }; /* button_context_settings */
@ -158,7 +158,7 @@ static const struct button_mapping button_context_settings_right_is_inc[] = {
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settingsgraphical */ }; /* button_context_settingsgraphical */
@ -205,7 +205,7 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_MODE, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_quickscreen */ }; /* button_context_quickscreen */
@ -224,7 +224,7 @@ static const struct button_mapping button_context_pitchscreen[] = {
{ ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE }, { ACTION_PS_EXIT, BUTTON_OFF, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_pitchcreen */ }; /* button_context_pitchcreen */
@ -235,13 +235,13 @@ static const struct button_mapping button_context_recscreen[] = {
{ ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE }, { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_recscreen */ }; /* button_context_recscreen */
static const struct button_mapping button_context_keyboard[] = { static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, 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_NONE },
@ -273,20 +273,20 @@ static const struct button_mapping button_context_radio[] = {
{ ACTION_FM_PLAY, BUTTON_ON | BUTTON_REL, BUTTON_ON }, { ACTION_FM_PLAY, BUTTON_ON | BUTTON_REL, BUTTON_ON },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; };
/***************************************************************************** /*****************************************************************************
* Remote control mappings * Remote control mappings
*****************************************************************************/ *****************************************************************************/
static const struct button_mapping button_context_standard_h100remote[] = { static const struct button_mapping button_context_standard_h100remote[] = {
{ ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE }, { ACTION_STD_PREV, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_RC_STOP, BUTTON_NONE },
{ ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU }, { ACTION_STD_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
@ -294,7 +294,7 @@ static const struct button_mapping button_context_standard_h100remote[] = {
{ ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
{ ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_RC_ON, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
LAST_ITEM_IN_LIST LAST_ITEM_IN_LIST
}; /* button_context_standard_h100lcdremote */ }; /* button_context_standard_h100lcdremote */
@ -311,7 +311,7 @@ static const struct button_mapping button_context_standard_h300lcdremote[] = {
{ ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, { ACTION_STD_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
{ ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, { ACTION_STD_OK, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
{ ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_RC_FF, BUTTON_NONE },
LAST_ITEM_IN_LIST LAST_ITEM_IN_LIST
}; };
@ -336,11 +336,11 @@ static const struct button_mapping button_context_wps_remotescommon[] = {
{ ACTION_WPS_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE }, { ACTION_WPS_MENU, BUTTON_RC_MODE|BUTTON_REL, BUTTON_RC_MODE },
{ ACTION_WPS_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_WPS_CONTEXT, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_BROWSE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU }, { ACTION_WPS_BROWSE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
/* Now the specific combos, because H100 & H300 LCD remotes have different /* Now the specific combos, because H100 & H300 LCD remotes have different
* keys, capable of acting as "modifier" - H100 : RC_ON; H300: RC_MENU * keys, capable of acting as "modifier" - H100 : RC_ON; H300: RC_MENU
*/ */
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_REMOTE|CONTEXT_WPS) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_REMOTE|CONTEXT_WPS)
}; };
static const struct button_mapping button_context_wps_h100remote[] = { static const struct button_mapping button_context_wps_h100remote[] = {
@ -367,7 +367,7 @@ static const struct button_mapping *button_context_list_h300lcdremote =
static const struct button_mapping button_context_tree_h100remote[] = { static const struct button_mapping button_context_tree_h100remote[] = {
{ ACTION_TREE_WPS, BUTTON_RC_ON, BUTTON_NONE }, { ACTION_TREE_WPS, BUTTON_RC_ON, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE)
}; /* button_context_tree_h100remote */ }; /* button_context_tree_h100remote */
@ -377,7 +377,7 @@ static const struct button_mapping button_context_tree_h300lcdremote[] = {
{ ACTION_TREE_WPS, BUTTON_RC_ON, BUTTON_NONE }, { ACTION_TREE_WPS, BUTTON_RC_ON, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST|CONTEXT_REMOTE)
}; /* button_context_tree_h300lcdremote */ }; /* button_context_tree_h300lcdremote */
static const struct button_mapping button_context_listtree_scroll_w_cmb_h100remote[] = { static const struct button_mapping button_context_listtree_scroll_w_cmb_h100remote[] = {
{ ACTION_TREE_PGLEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_NONE }, { ACTION_TREE_PGLEFT, BUTTON_RC_ON|BUTTON_RC_REW, BUTTON_NONE },
@ -387,7 +387,7 @@ static const struct button_mapping button_context_listtree_scroll_w_cmb_h100remo
{ ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF, BUTTON_NONE },
{ ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_ON|BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE },
{ ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE), LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
}; };
@ -405,7 +405,7 @@ static const struct button_mapping button_context_listtree_scroll_wo_cmb_h100rem
{ ACTION_TREE_ROOT_INIT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_RC_VOL_DOWN }, { ACTION_TREE_ROOT_INIT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_RC_VOL_DOWN },
{ ACTION_TREE_PGLEFT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_TREE_PGLEFT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP, BUTTON_NONE },
{ ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_TREE_PGRIGHT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE), LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE|CONTEXT_REMOTE),
}; };
@ -428,7 +428,7 @@ static const struct button_mapping button_context_settings_h100remote[] = {
/* { ACTION_NONE, BUTTON_RC_ON, BUTTON_NONE }, /* { ACTION_NONE, BUTTON_RC_ON, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RC_STOP, BUTTON_NONE }, { ACTION_NONE, BUTTON_RC_STOP, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE }, { ACTION_NONE, BUTTON_RC_MENU|BUTTON_REL, BUTTON_NONE },
*/ */
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settings */ }; /* button_context_settings */
@ -439,11 +439,11 @@ static const struct button_mapping button_context_settings_h300lcdremote[] = {
{ ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE }, { ACTION_NONE, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_NONE, BUTTON_RC_FF, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settings */ }; /* button_context_settings */
static const struct button_mapping button_context_settingsgraphical_h100remote[] = { static const struct button_mapping button_context_settingsgraphical_h100remote[] = {
{ ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_SETTINGS_INC, BUTTON_RC_FF, BUTTON_NONE },
@ -454,7 +454,7 @@ static const struct button_mapping button_context_settingsgraphical_h100remote[]
{ ACTION_STD_PREVREPEAT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RC_BITRATE, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_RC_BITRATE, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settingsgraphical_h100remote */ }; /* button_context_settingsgraphical_h100remote */
@ -467,7 +467,7 @@ static const struct button_mapping button_context_settingsgraphical_h300lcdremot
{ ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_PREVREPEAT, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE }, { ACTION_STD_NEXT, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_STD_NEXTREPEAT, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_settingsgraphical_h300remote */ }; /* button_context_settingsgraphical_h300remote */
@ -497,7 +497,7 @@ static const struct button_mapping button_context_quickscreen_nonlcdremote[] =
{ ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_RC_ON, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_RC_ON, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_quickscreen */ }; /* button_context_quickscreen */
@ -515,7 +515,7 @@ static const struct button_mapping button_context_quickscreen_h100lcdremote[] =
{ ACTION_QS_RIGHT, BUTTON_RC_BITRATE, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_BITRATE, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_quickscreen */ }; /* button_context_quickscreen */
@ -529,7 +529,7 @@ static const struct button_mapping button_context_quickscreen_h300lcdremote[] =
{ ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_QS_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_quickscreen */ }; /* button_context_quickscreen */
@ -547,7 +547,7 @@ static const struct button_mapping button_context_pitchscreen_nonlcdremote[] =
{ ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE }, { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE }, { ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_pitchcreen */ }; /* button_context_pitchcreen */
@ -565,7 +565,7 @@ static const struct button_mapping button_context_pitchscreen_h100lcdremote[] =
{ ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE }, { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_SLOWER, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_FASTER, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; };
@ -583,7 +583,7 @@ static const struct button_mapping button_context_pitchscreen_h300lcdremote[] =
{ ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE }, { ACTION_PS_EXIT, BUTTON_RC_STOP, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE }, { ACTION_PS_SLOWER, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_PS_FASTER, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; };
@ -595,7 +595,7 @@ static const struct button_mapping button_context_recscreen_h100remote[] = {
{ ACTION_SETTINGS_INCREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_INCREPEAT, BUTTON_RC_BITRATE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE, BUTTON_NONE }, { ACTION_SETTINGS_DEC, BUTTON_RC_SOURCE, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_DECREPEAT, BUTTON_RC_SOURCE|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_recscreen_h100remote */ }; /* button_context_recscreen_h100remote */
@ -607,13 +607,13 @@ static const struct button_mapping button_context_recscreen_h300lcdremote[] = {
{ ACTION_SETTINGS_INC, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_INC, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE }, { ACTION_SETTINGS_DEC, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_SETTINGS_DEC, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_recscreen_h300lcdremote */ }; /* button_context_recscreen_h300lcdremote */
static const struct button_mapping button_context_keyboard_h100remote[] = { static const struct button_mapping button_context_keyboard_h100remote[] = {
{ ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE }, { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, 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_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, 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_NONE },
@ -642,7 +642,7 @@ static const struct button_mapping button_context_keyboard_h100remote[] = {
static const struct button_mapping button_context_keyboard_h300lcdremote[] = { static const struct button_mapping button_context_keyboard_h300lcdremote[] = {
{ ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE }, { ACTION_KBD_LEFT, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_KBD_LEFT, BUTTON_RC_REW|BUTTON_REPEAT, 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_NONE },
{ ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, { ACTION_KBD_RIGHT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE, BUTTON_NONE }, { ACTION_KBD_CURSOR_LEFT, BUTTON_RC_SOURCE, BUTTON_NONE },
@ -703,7 +703,6 @@ static const struct button_mapping button_context_radio_h300lcdremote[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; };
static const struct button_mapping button_context_time_remote[] = { static const struct button_mapping button_context_time_remote[] = {
{ ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE }, { ACTION_STD_CANCEL, BUTTON_OFF, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_ON, BUTTON_NONE }, { ACTION_STD_OK, BUTTON_ON, BUTTON_NONE },
@ -713,8 +712,8 @@ static const struct button_mapping button_context_time_remote[] = {
}; /* button_context_settings_bmark */ }; /* button_context_settings_bmark */
/* the actual used tables */ /* the actual used tables */
static const struct button_mapping static const struct button_mapping
*remote_btn_ctxt_std = 0, *remote_btn_ctxt_std = 0,
*remote_btn_ctxt_wps = 0, *remote_btn_ctxt_wps = 0,
*remote_btn_ctxt_list = 0, *remote_btn_ctxt_list = 0,
*remote_btn_ctxt_tree = 0, *remote_btn_ctxt_tree = 0,
@ -738,7 +737,7 @@ static void remap_remote(void)
switch(_remote_type) switch(_remote_type)
{ {
case REMOTETYPE_UNPLUGGED: case REMOTETYPE_UNPLUGGED:
remote_btn_ctxt_std = NULL; remote_btn_ctxt_std = NULL;
remote_btn_ctxt_wps = NULL; remote_btn_ctxt_wps = NULL;
remote_btn_ctxt_list = NULL; remote_btn_ctxt_list = NULL;
remote_btn_ctxt_tree = NULL; remote_btn_ctxt_tree = NULL;
@ -756,16 +755,16 @@ static void remap_remote(void)
break; break;
case REMOTETYPE_H100_LCD: case REMOTETYPE_H100_LCD:
remote_btn_ctxt_std = button_context_standard_h100remote, remote_btn_ctxt_std = button_context_standard_h100remote,
remote_btn_ctxt_wps = button_context_wps_h100remote, remote_btn_ctxt_wps = button_context_wps_h100remote,
remote_btn_ctxt_list = button_context_list_h100remote, remote_btn_ctxt_list = button_context_list_h100remote,
remote_btn_ctxt_tree = button_context_tree_h100remote, remote_btn_ctxt_tree = button_context_tree_h100remote,
remote_btn_ctxt_listtree_scroll_w_cmb remote_btn_ctxt_listtree_scroll_w_cmb
= button_context_listtree_scroll_w_cmb_h100remote, = button_context_listtree_scroll_w_cmb_h100remote,
remote_btn_ctxt_listtree_scroll_wo_cmb remote_btn_ctxt_listtree_scroll_wo_cmb
= button_context_listtree_scroll_wo_cmb_h100remote, = button_context_listtree_scroll_wo_cmb_h100remote,
remote_btn_ctxt_settings = button_context_settings_h100remote, remote_btn_ctxt_settings = button_context_settings_h100remote,
remote_btn_ctxt_settingsgrph remote_btn_ctxt_settingsgrph
= button_context_settingsgraphical_h100remote, = button_context_settingsgraphical_h100remote,
remote_btn_ctxt_yesno = button_context_yesno_h100remote, remote_btn_ctxt_yesno = button_context_yesno_h100remote,
remote_btn_ctxt_bmark = button_context_bmark_h100remote, remote_btn_ctxt_bmark = button_context_bmark_h100remote,
@ -773,25 +772,25 @@ static void remap_remote(void)
= button_context_quickscreen_h100lcdremote, = button_context_quickscreen_h100lcdremote,
remote_btn_ctxt_pitchscreen remote_btn_ctxt_pitchscreen
= button_context_pitchscreen_h100lcdremote, = button_context_pitchscreen_h100lcdremote,
remote_btn_ctxt_recscreen remote_btn_ctxt_recscreen
= button_context_recscreen_h100remote, = button_context_recscreen_h100remote,
remote_btn_ctxt_keyboard remote_btn_ctxt_keyboard
= button_context_keyboard_h100remote, = button_context_keyboard_h100remote,
remote_btn_ctxt_radio remote_btn_ctxt_radio
= button_context_radio_h100remote; = button_context_radio_h100remote;
break; break;
case REMOTETYPE_H300_LCD: case REMOTETYPE_H300_LCD:
remote_btn_ctxt_std = button_context_standard_h300lcdremote, remote_btn_ctxt_std = button_context_standard_h300lcdremote,
remote_btn_ctxt_wps = button_context_wps_h300lcdremote, remote_btn_ctxt_wps = button_context_wps_h300lcdremote,
remote_btn_ctxt_list = button_context_list_h300lcdremote, remote_btn_ctxt_list = button_context_list_h300lcdremote,
remote_btn_ctxt_tree = button_context_tree_h300lcdremote, remote_btn_ctxt_tree = button_context_tree_h300lcdremote,
remote_btn_ctxt_listtree_scroll_w_cmb remote_btn_ctxt_listtree_scroll_w_cmb
= button_context_listtree_scroll_w_cmb_h300lcdremote, = button_context_listtree_scroll_w_cmb_h300lcdremote,
remote_btn_ctxt_listtree_scroll_wo_cmb remote_btn_ctxt_listtree_scroll_wo_cmb
= button_context_listtree_scroll_wo_cmb_h300lcdremote, = button_context_listtree_scroll_wo_cmb_h300lcdremote,
remote_btn_ctxt_settings = button_context_settings_h300lcdremote, remote_btn_ctxt_settings = button_context_settings_h300lcdremote,
remote_btn_ctxt_settingsgrph remote_btn_ctxt_settingsgrph
= button_context_settingsgraphical_h300lcdremote, = button_context_settingsgraphical_h300lcdremote,
remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote, remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote,
remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote, remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote,
@ -801,23 +800,23 @@ static void remap_remote(void)
= button_context_pitchscreen_h300lcdremote, = button_context_pitchscreen_h300lcdremote,
remote_btn_ctxt_recscreen remote_btn_ctxt_recscreen
= button_context_recscreen_h300lcdremote, = button_context_recscreen_h300lcdremote,
remote_btn_ctxt_keyboard remote_btn_ctxt_keyboard
= button_context_keyboard_h300lcdremote, = button_context_keyboard_h300lcdremote,
remote_btn_ctxt_radio remote_btn_ctxt_radio
= button_context_radio_h300lcdremote; = button_context_radio_h300lcdremote;
break; break;
case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */ case REMOTETYPE_H300_NONLCD: /* FIXME: add its tables */
remote_btn_ctxt_std = button_context_standard_h300lcdremote, remote_btn_ctxt_std = button_context_standard_h300lcdremote,
remote_btn_ctxt_wps = button_context_wps_h300lcdremote, remote_btn_ctxt_wps = button_context_wps_h300lcdremote,
remote_btn_ctxt_list = button_context_list_h300lcdremote, remote_btn_ctxt_list = button_context_list_h300lcdremote,
remote_btn_ctxt_tree = button_context_tree_h300lcdremote, remote_btn_ctxt_tree = button_context_tree_h300lcdremote,
remote_btn_ctxt_listtree_scroll_w_cmb remote_btn_ctxt_listtree_scroll_w_cmb
= button_context_listtree_scroll_w_cmb_h300lcdremote, = button_context_listtree_scroll_w_cmb_h300lcdremote,
remote_btn_ctxt_listtree_scroll_wo_cmb remote_btn_ctxt_listtree_scroll_wo_cmb
= button_context_listtree_scroll_wo_cmb_h300lcdremote, = button_context_listtree_scroll_wo_cmb_h300lcdremote,
remote_btn_ctxt_settings = button_context_settings_h300lcdremote, remote_btn_ctxt_settings = button_context_settings_h300lcdremote,
remote_btn_ctxt_settingsgrph remote_btn_ctxt_settingsgrph
= button_context_settingsgraphical_h300lcdremote, = button_context_settingsgraphical_h300lcdremote,
remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote, remote_btn_ctxt_yesno = button_context_yesno_h300lcdremote,
remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote, remote_btn_ctxt_bmark = button_context_bmark_h300lcdremote,
@ -827,26 +826,26 @@ static void remap_remote(void)
= button_context_pitchscreen_nonlcdremote, = button_context_pitchscreen_nonlcdremote,
remote_btn_ctxt_recscreen remote_btn_ctxt_recscreen
= button_context_recscreen_h300lcdremote, = button_context_recscreen_h300lcdremote,
remote_btn_ctxt_keyboard remote_btn_ctxt_keyboard
= button_context_keyboard_h300lcdremote, = button_context_keyboard_h300lcdremote,
remote_btn_ctxt_radio remote_btn_ctxt_radio
= button_context_radio_h300lcdremote; = button_context_radio_h300lcdremote;
#if 0 #if 0
remote_btn_ctxt_std = remote_btn_ctxt_std =
remote_btn_ctxt_wps = remote_btn_ctxt_wps =
remote_btn_ctxt_list = remote_btn_ctxt_list =
remote_btn_ctxt_tree = remote_btn_ctxt_tree =
remote_btn_ctxt_listtree_scroll_w_cmb = remote_btn_ctxt_listtree_scroll_w_cmb =
remote_btn_ctxt_listtree_scroll_wo_cmb = remote_btn_ctxt_listtree_scroll_wo_cmb =
remote_btn_ctxt_settings = remote_btn_ctxt_settings =
remote_btn_ctxt_settingsgrph = remote_btn_ctxt_settingsgrph =
remote_btn_ctxt_yesno = remote_btn_ctxt_yesno =
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_btn_ctxt_recscreen = remote_btn_ctxt_recscreen =
remote_btn_ctxt_keyboard = remote_btn_ctxt_keyboard =
remote_btn_ctxt_radio = remote_btn_ctxt_radio =
#endif #endif
break; break;
@ -859,7 +858,7 @@ static const struct button_mapping* get_context_mapping_remote(int context)
if(remote_type() != _remote_type) if(remote_type() != _remote_type)
remap_remote(); remap_remote();
context ^= CONTEXT_REMOTE; context ^= CONTEXT_REMOTE;
switch (context) switch (context)
{ {
case CONTEXT_STD: case CONTEXT_STD:
@ -868,7 +867,7 @@ static const struct button_mapping* get_context_mapping_remote(int context)
return button_context_wps_remotescommon; return button_context_wps_remotescommon;
case CONTEXT_CUSTOM|CONTEXT_WPS: case CONTEXT_CUSTOM|CONTEXT_WPS:
return remote_btn_ctxt_wps; return remote_btn_ctxt_wps;
case CONTEXT_LIST: case CONTEXT_LIST:
return remote_btn_ctxt_list; return remote_btn_ctxt_list;
@ -876,22 +875,23 @@ static const struct button_mapping* get_context_mapping_remote(int context)
case CONTEXT_MAINMENU: case CONTEXT_MAINMENU:
if (global_settings.hold_lr_for_scroll_in_list) if (global_settings.hold_lr_for_scroll_in_list)
return remote_btn_ctxt_listtree_scroll_wo_cmb; return remote_btn_ctxt_listtree_scroll_wo_cmb;
else else
return remote_btn_ctxt_listtree_scroll_w_cmb; return remote_btn_ctxt_listtree_scroll_w_cmb;
case CONTEXT_CUSTOM|CONTEXT_TREE: case CONTEXT_CUSTOM|CONTEXT_TREE:
return remote_btn_ctxt_tree; return remote_btn_ctxt_tree;
case CONTEXT_SETTINGS_TIME: case CONTEXT_SETTINGS_TIME:
return button_context_time_remote;
case CONTEXT_SETTINGS_RECTRIGGER: case CONTEXT_SETTINGS_RECTRIGGER:
return remote_btn_ctxt_settingsgrph; return remote_btn_ctxt_settingsgrph;
case CONTEXT_SETTINGS: case CONTEXT_SETTINGS:
return remote_btn_ctxt_settings; return remote_btn_ctxt_settings;
case CONTEXT_YESNOSCREEN: case CONTEXT_YESNOSCREEN:
return remote_btn_ctxt_yesno; return remote_btn_ctxt_yesno;
case CONTEXT_BOOKMARKSCREEN: case CONTEXT_BOOKMARKSCREEN:
return remote_btn_ctxt_bmark; return remote_btn_ctxt_bmark;
case CONTEXT_QUICKSCREEN: case CONTEXT_QUICKSCREEN:
return remote_btn_ctxt_quickscreen; return remote_btn_ctxt_quickscreen;
case CONTEXT_PITCHSCREEN: case CONTEXT_PITCHSCREEN:
@ -903,49 +903,49 @@ static const struct button_mapping* get_context_mapping_remote(int context)
return remote_btn_ctxt_keyboard; return remote_btn_ctxt_keyboard;
case CONTEXT_FM: case CONTEXT_FM:
return remote_btn_ctxt_radio; return remote_btn_ctxt_radio;
} }
return remote_btn_ctxt_std; return remote_btn_ctxt_std;
} }
const struct button_mapping* get_context_mapping(int context) const struct button_mapping* get_context_mapping(int context)
{ {
if (context&CONTEXT_REMOTE) if (context&CONTEXT_REMOTE)
return get_context_mapping_remote(context); return get_context_mapping_remote(context);
switch (context) switch (context)
{ {
case CONTEXT_STD: case CONTEXT_STD:
return button_context_standard; return button_context_standard;
case CONTEXT_WPS: case CONTEXT_WPS:
return button_context_wps; return button_context_wps;
case CONTEXT_LIST: case CONTEXT_LIST:
return button_context_list; return button_context_list;
case CONTEXT_TREE: case CONTEXT_TREE:
case CONTEXT_MAINMENU: case CONTEXT_MAINMENU:
if (global_settings.hold_lr_for_scroll_in_list) if (global_settings.hold_lr_for_scroll_in_list)
return button_context_listtree_scroll_without_combo; return button_context_listtree_scroll_without_combo;
else else
return button_context_listtree_scroll_with_combo; return button_context_listtree_scroll_with_combo;
case CONTEXT_CUSTOM|CONTEXT_TREE: case CONTEXT_CUSTOM|CONTEXT_TREE:
return button_context_tree; return button_context_tree;
case CONTEXT_SETTINGS: case CONTEXT_SETTINGS:
return button_context_settings; return button_context_settings;
case CONTEXT_CUSTOM|CONTEXT_SETTINGS: case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_RECTRIGGER: case CONTEXT_SETTINGS_RECTRIGGER:
return button_context_settings_right_is_inc; return button_context_settings_right_is_inc;
case CONTEXT_SETTINGS_COLOURCHOOSER: case CONTEXT_SETTINGS_COLOURCHOOSER:
return button_context_colorchooser; return button_context_colorchooser;
case CONTEXT_SETTINGS_EQ: case CONTEXT_SETTINGS_EQ:
return button_context_eq; return button_context_eq;
case CONTEXT_SETTINGS_TIME: case CONTEXT_SETTINGS_TIME:
return button_context_time; return button_context_time;
case CONTEXT_YESNOSCREEN: case CONTEXT_YESNOSCREEN:
return button_context_yesno; return button_context_yesno;
case CONTEXT_BOOKMARKSCREEN: case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark; return button_context_bmark;
case CONTEXT_QUICKSCREEN: case CONTEXT_QUICKSCREEN:
@ -959,6 +959,6 @@ const struct button_mapping* get_context_mapping(int context)
return button_context_keyboard; return button_context_keyboard;
case CONTEXT_FM: case CONTEXT_FM:
return button_context_radio; return button_context_radio;
} }
return button_context_standard; return button_context_standard;
} }

View file

@ -134,7 +134,9 @@ static int hist_l = 0;
static int hist_r = 0; static int hist_r = 0;
static unsigned char history_l[HIST_BUF_SIZE]; static unsigned char history_l[HIST_BUF_SIZE];
static unsigned char history_r[HIST_BUF_SIZE]; static unsigned char history_r[HIST_BUF_SIZE];
#ifdef HAVE_LCD_COLOR
static const char hist_level_marks[6] = { 29, 26, 23, 17, 9, 2}; static const char hist_level_marks[6] = { 29, 26, 23, 17, 9, 2};
#endif
static int history_pos = 0; static int history_pos = 0;
#define HIST_W (LCD_WIDTH / 2) #define HIST_W (LCD_WIDTH / 2)
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
@ -184,7 +186,7 @@ static int db_scale_count = DB_SCALE_SRC_VALUES_SIZE;
/** /**
* Calculates dB Value for the peak meter, uses peak value as input * Calculates dB Value for the peak meter, uses peak value as input
* @param int sample - The input value * @param int sample - The input value
* Make sure that 0 <= value < SAMPLE_RANGE * Make sure that 0 <= value < SAMPLE_RANGE
* *
* @return int - The 2 digit fixed point result of the euation * @return int - The 2 digit fixed point result of the euation
@ -294,10 +296,10 @@ static int db_to_sample_bin_search(int min, int max, int db)
* Converts a value representing dBfs to a linear * Converts a value representing dBfs to a linear
* scaled volume info as it is used by the MAS. * scaled volume info as it is used by the MAS.
* An incredibly inefficiant function which is * An incredibly inefficiant function which is
* the vague inverse of calc_db. This really * the vague inverse of calc_db. This really
* should be replaced by something better soon. * should be replaced by something better soon.
* *
* @param int db - A dBfs * 100 value with * @param int db - A dBfs * 100 value with
* -9000 < value <= 0 * -9000 < value <= 0
* @return int - The return value is in the range of * @return int - The return value is in the range of
* 0 <= return value < MAX_PEAK * 0 <= return value < MAX_PEAK
@ -323,10 +325,10 @@ int peak_meter_db2sample(int db)
else { else {
retval = db_to_sample_bin_search(0, MAX_PEAK, max_peak_db + db); retval = db_to_sample_bin_search(0, MAX_PEAK, max_peak_db + db);
/* as this is a dirty function anyway, we want to adjust the /* as this is a dirty function anyway, we want to adjust the
full scale hit manually to avoid users complaining that when full scale hit manually to avoid users complaining that when
they adjust maximum for 0 dBfs and display it in percent it they adjust maximum for 0 dBfs and display it in percent it
shows 99%. That is due to precision loss and this is the shows 99%. That is due to precision loss and this is the
optical fix */ optical fix */
} }
@ -340,7 +342,7 @@ int peak_meter_db2sample(int db)
* for dBfs: -9000 < newmin <= 0 * for dBfs: -9000 < newmin <= 0
* for linear: 0 <= newmin <= 100 * for linear: 0 <= newmin <= 100
*/ */
static void peak_meter_set_min(int newmin) static void peak_meter_set_min(int newmin)
{ {
if (pm_use_dbfs) { if (pm_use_dbfs) {
peak_meter_range_min = peak_meter_db2sample(newmin); peak_meter_range_min = peak_meter_db2sample(newmin);
@ -366,13 +368,13 @@ static void peak_meter_set_min(int newmin)
} }
/** /**
* Returns the minimum value of the range the meter * Returns the minimum value of the range the meter
* displays. If the scale is set to dBfs it returns * displays. If the scale is set to dBfs it returns
* dBfs values * 100 or linear percent values. * dBfs values * 100 or linear percent values.
* @return: using dBfs : -9000 < value <= 0 * @return: using dBfs : -9000 < value <= 0
* using linear scale: 0 <= value <= 100 * using linear scale: 0 <= value <= 100
*/ */
int peak_meter_get_min(void) int peak_meter_get_min(void)
{ {
int retval = 0; int retval = 0;
if (pm_use_dbfs) { if (pm_use_dbfs) {
@ -390,7 +392,7 @@ int peak_meter_get_min(void)
* for dBfs: -9000 < newmax <= 0 * for dBfs: -9000 < newmax <= 0
* for linear: 0 <= newmax <= 100 * for linear: 0 <= newmax <= 100
*/ */
static void peak_meter_set_max(int newmax) static void peak_meter_set_max(int newmax)
{ {
if (pm_use_dbfs) { if (pm_use_dbfs) {
peak_meter_range_max = peak_meter_db2sample(newmax); peak_meter_range_max = peak_meter_db2sample(newmax);
@ -415,13 +417,13 @@ static void peak_meter_set_max(int newmax)
} }
/** /**
* Returns the minimum value of the range the meter * Returns the minimum value of the range the meter
* displays. If the scale is set to dBfs it returns * displays. If the scale is set to dBfs it returns
* dBfs values * 100 or linear percent values * dBfs values * 100 or linear percent values
* @return: using dBfs : -9000 < value <= 0 * @return: using dBfs : -9000 < value <= 0
* using linear scale: 0 <= value <= 100 * using linear scale: 0 <= value <= 100
*/ */
int peak_meter_get_max(void) int peak_meter_get_max(void)
{ {
int retval = 0; int retval = 0;
if (pm_use_dbfs) { if (pm_use_dbfs) {
@ -445,7 +447,7 @@ bool peak_meter_get_use_dbfs(void)
/** /**
* Specifies whether the values displayed are scaled * Specifies whether the values displayed are scaled
* as dBfs or as linear percent values. * as dBfs or as linear percent values.
* @param use - set to true for dBfs, * @param use - set to true for dBfs,
* set to false for linear scaling in percent * set to false for linear scaling in percent
*/ */
void peak_meter_set_use_dbfs(bool use) void peak_meter_set_use_dbfs(bool use)
@ -459,12 +461,12 @@ void peak_meter_set_use_dbfs(bool use)
* Initialize the range of the meter. Only values * Initialize the range of the meter. Only values
* that are in the range of [range_min ... range_max] * that are in the range of [range_min ... range_max]
* are displayed. * are displayed.
* @param bool dbfs - set to true for dBfs, * @param bool dbfs - set to true for dBfs,
* set to false for linear scaling in percent * set to false for linear scaling in percent
* @param int range_min - Specifies the lower value of the range. * @param int range_min - Specifies the lower value of the range.
* Pass a value dBfs * 100 when dbfs is set to true. * Pass a value dBfs * 100 when dbfs is set to true.
* Pass a percent value when dbfs is set to false. * Pass a percent value when dbfs is set to false.
* @param int range_max - Specifies the upper value of the range. * @param int range_max - Specifies the upper value of the range.
* Pass a value dBfs * 100 when dbfs is set to true. * Pass a value dBfs * 100 when dbfs is set to true.
* Pass a percent value when dbfs is set to false. * Pass a percent value when dbfs is set to false.
*/ */
@ -509,7 +511,7 @@ int pm_get_clipcount(void)
} }
/** /**
* Set clipping counter to zero (typically at start of recording or playback) * Set clipping counter to zero (typically at start of recording or playback)
*/ */
void pm_reset_clipcount(void) void pm_reset_clipcount(void)
{ {
@ -518,7 +520,7 @@ void pm_reset_clipcount(void)
#endif #endif
/** /**
* Set the source of the peak meter to playback or to * Set the source of the peak meter to playback or to
* record. * record.
* @param: bool playback - If true playback peak meter is used. * @param: bool playback - If true playback peak meter is used.
* If false recording peak meter is used. * If false recording peak meter is used.
@ -534,7 +536,7 @@ void peak_meter_playback(bool playback)
} }
#ifdef HAVE_RECORDING #ifdef HAVE_RECORDING
static void set_trig_status(int new_state) static void set_trig_status(int new_state)
{ {
if (trig_status != new_state) { if (trig_status != new_state) {
trig_status = new_state; trig_status = new_state;
@ -547,9 +549,9 @@ static void set_trig_status(int new_state)
#endif #endif
/** /**
* Reads peak values from the MAS, and detects clips. The * Reads peak values from the MAS, and detects clips. The
* values are stored in pm_max_left pm_max_right for later * values are stored in pm_max_left pm_max_right for later
* evauluation. Consecutive calls to peak_meter_peek detect * evauluation. Consecutive calls to peak_meter_peek detect
* that ocurred. This function could be used by a thread for * that ocurred. This function could be used by a thread for
* busy reading the MAS. * busy reading the MAS.
*/ */
@ -620,7 +622,7 @@ void peak_meter_peek(void)
case TRIG_READY: case TRIG_READY:
/* no more changes, if trigger was activated as release trigger */ /* no more changes, if trigger was activated as release trigger */
/* threshold exceeded? */ /* threshold exceeded? */
if ((left > trig_strt_threshold) if ((left > trig_strt_threshold)
|| (right > trig_strt_threshold)) { || (right > trig_strt_threshold)) {
/* reset trigger duration */ /* reset trigger duration */
trig_hightime = current_tick; trig_hightime = current_tick;
@ -670,7 +672,7 @@ void peak_meter_peek(void)
case TRIG_GO: case TRIG_GO:
case TRIG_CONTINUE: case TRIG_CONTINUE:
/* threshold exceeded? */ /* threshold exceeded? */
if ((left > trig_stp_threshold) if ((left > trig_stp_threshold)
|| (right > trig_stp_threshold)) { || (right > trig_stp_threshold)) {
/* restart hold time countdown */ /* restart hold time countdown */
trig_lowtime = current_tick; trig_lowtime = current_tick;
@ -684,7 +686,7 @@ void peak_meter_peek(void)
/* gap time expired? */ /* gap time expired? */
if (current_tick - trig_lowtime > trig_rstrt_gap){ if (current_tick - trig_lowtime > trig_rstrt_gap){
/* start threshold exceeded? */ /* start threshold exceeded? */
if ((left > trig_strt_threshold) if ((left > trig_strt_threshold)
|| (right > trig_strt_threshold)) { || (right > trig_strt_threshold)) {
set_trig_status(TRIG_RETRIG); set_trig_status(TRIG_RETRIG);
@ -694,7 +696,7 @@ void peak_meter_peek(void)
else else
/* stop threshold exceeded */ /* stop threshold exceeded */
if ((left > trig_stp_threshold) if ((left > trig_stp_threshold)
|| (right > trig_stp_threshold)) { || (right > trig_stp_threshold)) {
if (current_tick - trig_hightime > trig_stp_hold){ if (current_tick - trig_hightime > trig_stp_hold){
trig_lowtime = current_tick; trig_lowtime = current_tick;
@ -830,7 +832,7 @@ void peak_meter_get_peakhold(int *peak_left, int *peak_right)
* @param int unused - This parameter was added to * @param int unused - This parameter was added to
* make the function compatible with set_int * make the function compatible with set_int
*/ */
void peak_meter_set_clip_hold(int time) void peak_meter_set_clip_hold(int time)
{ {
pm_clip_left = false; pm_clip_left = false;
pm_clip_right = false; pm_clip_right = false;
@ -870,7 +872,7 @@ unsigned short peak_meter_scale_value(unsigned short val, int meterwidth)
else else
{ {
/* scale the samples */ /* scale the samples */
retval = ((retval - peak_meter_range_min) * meterwidth) retval = ((retval - peak_meter_range_min) * meterwidth)
/ pm_range; / pm_range;
} }
return retval; return retval;
@ -887,7 +889,7 @@ void peak_meter_current_vals(int *left, int *right)
static int left_level = 0, right_level = 0; static int left_level = 0, right_level = 0;
if (level_check){ if (level_check){
/* only read the volume info from MAS if peek since last read*/ /* only read the volume info from MAS if peek since last read*/
left_level = peak_meter_read_l(); left_level = peak_meter_read_l();
right_level = peak_meter_read_r(); right_level = peak_meter_read_r();
level_check = false; level_check = false;
} }
@ -897,9 +899,9 @@ void peak_meter_current_vals(int *left, int *right)
/** /**
* Draws a peak meter in the specified size at the specified position. * Draws a peak meter in the specified size at the specified position.
* @param int x - The x coordinate. * @param int x - The x coordinate.
* Make sure that 0 <= x and x + width < display->getwidth() * Make sure that 0 <= x and x + width < display->getwidth()
* @param int y - The y coordinate. * @param int y - The y coordinate.
* Make sure that 0 <= y and y + height < display->getheight() * Make sure that 0 <= y and y + height < display->getheight()
* @param int width - The width of the peak meter. Note that for display * @param int width - The width of the peak meter. Note that for display
* of clips a 3 pixel wide area is used -> * of clips a 3 pixel wide area is used ->
@ -907,7 +909,7 @@ void peak_meter_current_vals(int *left, int *right)
* @param int height - The height of the peak meter. height > 3 * @param int height - The height of the peak meter. height > 3
*/ */
static void peak_meter_draw(struct screen *display, struct meter_scales *scales, static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
int x, int y, int width, int height) int x, int y, int width, int height)
{ {
int left_level = 0, right_level = 0; int left_level = 0, right_level = 0;
int left = 0, right = 0; int left = 0, right = 0;
@ -931,11 +933,11 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
peak_meter_current_vals(&left_level, &right_level); peak_meter_current_vals(&left_level, &right_level);
/* scale the samples dBfs */ /* scale the samples dBfs */
left = peak_meter_scale_value(left_level, meterwidth); left = peak_meter_scale_value(left_level, meterwidth);
right = peak_meter_scale_value(right_level, meterwidth); right = peak_meter_scale_value(right_level, meterwidth);
/*if the scale has changed -> recalculate the scale /*if the scale has changed -> recalculate the scale
(The scale becomes invalid when the range changed.) */ (The scale becomes invalid when the range changed.) */
if (!scales->db_scale_valid){ if (!scales->db_scale_valid){
@ -949,7 +951,7 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
peak_meter_scale_value( peak_meter_scale_value(
db_scale_src_values[i], db_scale_src_values[i],
meterwidth - 1); meterwidth - 1);
} }
} }
/* when scaling linear we simly make 10% steps */ /* when scaling linear we simly make 10% steps */
@ -988,12 +990,12 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
} }
if (!pm_clip_eternal) { if (!pm_clip_eternal) {
if (pm_clip_left && if (pm_clip_left &&
TIME_AFTER(current_tick, pm_clip_timeout_l)){ TIME_AFTER(current_tick, pm_clip_timeout_l)){
pm_clip_left = false; pm_clip_left = false;
} }
if (pm_clip_right && if (pm_clip_right &&
TIME_AFTER(current_tick, pm_clip_timeout_r)){ TIME_AFTER(current_tick, pm_clip_timeout_r)){
pm_clip_right = false; pm_clip_right = false;
} }
@ -1039,7 +1041,7 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
/* draw dots for scale marks */ /* draw dots for scale marks */
for (i = 0; i < db_scale_count; i++) { for (i = 0; i < db_scale_count; i++) {
/* The x-coordinates of interesting scale mark points /* The x-coordinates of interesting scale mark points
have been calculated before */ have been calculated before */
display->drawpixel(x + scales->db_scale_lcd_coord[i], display->drawpixel(x + scales->db_scale_lcd_coord[i],
y + height / 2 - 1); y + height / 2 - 1);
@ -1103,7 +1105,7 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
ticks_per_redraw[tmp] ++; ticks_per_redraw[tmp] ++;
} }
/* display a bar to show how many ticks have passed since /* display a bar to show how many ticks have passed since
the last redraw */ the last redraw */
display->fillrect(x, y + height / 2, current_tick - pm_tick, 2); display->fillrect(x, y + height / 2, current_tick - pm_tick, 2);
pm_tick = current_tick; pm_tick = current_tick;
@ -1174,7 +1176,7 @@ void peak_meter_define_trigger(
* Enables or disables the trigger. * Enables or disables the trigger.
* @param on - If true the trigger is turned on. * @param on - If true the trigger is turned on.
*/ */
void peak_meter_trigger(bool on) void peak_meter_trigger(bool on)
{ {
/* don't use set_trigger here as that would fire an undesired event */ /* don't use set_trigger here as that would fire an undesired event */
trig_status = on ? TRIG_READY : TRIG_OFF; trig_status = on ? TRIG_READY : TRIG_OFF;
@ -1185,7 +1187,7 @@ void peak_meter_trigger(bool on)
* @param listener - The function that is called with each change of * @param listener - The function that is called with each change of
* trig_status. May be set to NULL if no callback is desired. * trig_status. May be set to NULL if no callback is desired.
*/ */
void peak_meter_set_trigger_listener(void (*listener)(int status)) void peak_meter_set_trigger_listener(void (*listener)(int status))
{ {
trigger_listener = listener; trigger_listener = listener;
} }
@ -1202,7 +1204,7 @@ void peak_meter_set_trigger_listener(void (*listener)(int status))
* peak_meter_release_trigger. To turn the trigger off call * peak_meter_release_trigger. To turn the trigger off call
* peak_meter_trigger_off. * peak_meter_trigger_off.
*/ */
int peak_meter_trigger_status(void) int peak_meter_trigger_status(void)
{ {
return trig_status; /* & TRIG_PIT_MASK;*/ return trig_status; /* & TRIG_PIT_MASK;*/
} }
@ -1313,7 +1315,7 @@ int peak_meter_draw_get_btn(int action_context, int x[], int y[],
if (TIME_AFTER(current_tick, next_refresh)) { if (TIME_AFTER(current_tick, next_refresh)) {
for(i = 0; i < nb_screens; i++) for(i = 0; i < nb_screens; i++)
{ {
screens[i].set_viewport(&vps[i]); screens[i].set_viewport(&vps[i]);
peak_meter_screen(&screens[i], x[i], y[i], height[i]); peak_meter_screen(&screens[i], x[i], y[i], height[i]);
screens[i].update_viewport_rect(x[i], y[i], screens[i].update_viewport_rect(x[i], y[i],
screens[i].getwidth() - x[i], screens[i].getwidth() - x[i],
@ -1340,7 +1342,7 @@ static void peak_meter_clear_histogram(void)
} }
} }
bool peak_meter_histogram(void) bool peak_meter_histogram(void)
{ {
int i; int i;
int btn = BUTTON_NONE; int btn = BUTTON_NONE;
@ -1453,4 +1455,3 @@ void histogram_draw(int x1, int x2, int y1, int y2, int width, int height)
#endif #endif
} }
#endif /* HAVE_HISTOGRAM */ #endif /* HAVE_HISTOGRAM */