summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-08-29 14:42:03 +0000
committerThomas Martitz <kugel@rockbox.org>2009-08-29 14:42:03 +0000
commite454a3985275819d998b84bc0cf7b7b8ad9eab00 (patch)
treebae381c959526bd90df6a4675f7c3314950e8c14
parent5226a89cce46e53d3c011de1e7b1c1d7b91af734 (diff)
downloadrockbox-e454a3985275819d998b84bc0cf7b7b8ad9eab00.tar.gz
rockbox-e454a3985275819d998b84bc0cf7b7b8ad9eab00.tar.bz2
rockbox-e454a3985275819d998b84bc0cf7b7b8ad9eab00.zip
Quickscreen: 4th item
This adds a 4th top item to the quickscreen. It's as configurable as the existing three items. This patch goes along with optimisations for small screens for better displaying of all four items. 14px font is very usable on a 64px height display for example. Left and Top items go through the items in the opposite direction, so that you can mirror a setting and toggle through it in both directions. Default item is party mode, as it's target independant. Flyspray: FS#9706 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22532 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/action.h4
-rw-r--r--apps/gui/quickscreen.c130
-rw-r--r--apps/gui/quickscreen.h3
-rw-r--r--apps/keymaps/keymap-av300.c4
-rw-r--r--apps/keymaps/keymap-c100.c4
-rw-r--r--apps/keymaps/keymap-c200.c4
-rw-r--r--apps/keymaps/keymap-clip.c4
-rw-r--r--apps/keymaps/keymap-creativezv.c4
-rw-r--r--apps/keymaps/keymap-creativezvm.c4
-rw-r--r--apps/keymaps/keymap-e200.c4
-rw-r--r--apps/keymaps/keymap-fuze.c4
-rw-r--r--apps/keymaps/keymap-gigabeat-s.c8
-rw-r--r--apps/keymaps/keymap-gigabeat.c4
-rw-r--r--apps/keymaps/keymap-h10.c8
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c16
-rw-r--r--apps/keymaps/keymap-hdd1630.c4
-rw-r--r--apps/keymaps/keymap-iaudio67.c4
-rw-r--r--apps/keymaps/keymap-ifp7xx.c4
-rw-r--r--apps/keymaps/keymap-logikdax.c4
-rw-r--r--apps/keymaps/keymap-m200.c4
-rw-r--r--apps/keymaps/keymap-m3.c8
-rw-r--r--apps/keymaps/keymap-meizu-m6sl.c4
-rw-r--r--apps/keymaps/keymap-mr100.c4
-rw-r--r--apps/keymaps/keymap-mr500.c2
-rw-r--r--apps/keymaps/keymap-recorder.c4
-rw-r--r--apps/keymaps/keymap-sa9200.c4
-rw-r--r--apps/keymaps/keymap-touchscreen.c4
-rw-r--r--apps/keymaps/keymap-x5.c8
-rwxr-xr-xapps/keymaps/keymap-yh8xx_yh9xx.c4
-rw-r--r--apps/lang/deutsch.lang17
-rw-r--r--apps/lang/english.lang17
-rw-r--r--apps/menu.c10
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_list.c4
34 files changed, 190 insertions, 126 deletions
diff --git a/apps/action.h b/apps/action.h
index eae5f1249b..5df8639cdf 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -191,13 +191,11 @@ enum {
/* bookmark screen */
ACTION_BMS_DELETE,
- /* alarm menu screen */
-
/* quickscreen */
ACTION_QS_LEFT,
ACTION_QS_RIGHT,
ACTION_QS_DOWN,
- ACTION_QS_DOWNINV, /* why is this not called up?? :p */
+ ACTION_QS_TOP,
/* pitchscreen */
/* obviously ignore if you dont have thise screen */
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c
index d6d662b1f1..ab13e67a81 100644
--- a/apps/gui/quickscreen.c
+++ b/apps/gui/quickscreen.c
@@ -38,17 +38,18 @@
#include "talk.h"
#include "list.h"
#include "option_select.h"
+#include "debug.h"
static struct viewport vps[NB_SCREENS][QUICKSCREEN_ITEM_COUNT];
static struct viewport vp_icons[NB_SCREENS];
-/* vp_icons will be used like this:
- the side icons will be aligned to the top of this vp and to their sides
- the bottom icon will be aligned center and at the bottom of this vp */
-
-#define MIN_LINES 4
-#define MAX_NEEDED_LINES 8
-#define CENTER_MARGIN 10 /* pixels between the 2 center items minimum */
-#define CENTER_ICONAREA_WIDTH (CENTER_MARGIN+8*2)
+ /* 1 top, 1 bottom, 2 on either side, 1 for the icons
+ * if enough space, top and bottom have 2 lines */
+#define MIN_LINES 5
+#define MAX_NEEDED_LINES 10
+ /* pixels between the 2 center items minimum or between text and icons,
+ * and between text and parent boundaries */
+#define MARGIN 10
+#define CENTER_ICONAREA_SIZE (MARGIN+8*2)
static void quickscreen_fix_viewports(struct gui_quickscreen *qs,
struct screen *display,
@@ -59,9 +60,8 @@ static void quickscreen_fix_viewports(struct gui_quickscreen *qs,
#else
const int screen = 0;
#endif
-
- int char_height, i, width, pad = 0;
- int left_width, right_width, bottom_lines = 2;
+ int char_height, width, pad = 0;
+ int left_width, right_width, vert_lines;
unsigned char *s;
int nb_lines = viewport_get_nb_lines(parent);
@@ -75,43 +75,57 @@ static void quickscreen_fix_viewports(struct gui_quickscreen *qs,
/* center the icons VP first */
vp_icons[screen] = *parent;
- vp_icons[screen].width = CENTER_ICONAREA_WIDTH; /* absolute smallest allowed */
- vp_icons[screen].x = parent->x + (parent->width / 2 - CENTER_ICONAREA_WIDTH / 2);
+ vp_icons[screen].width = CENTER_ICONAREA_SIZE; /* abosulte smallest allowed */
+ vp_icons[screen].x = parent->x;
+ vp_icons[screen].x += (parent->width-CENTER_ICONAREA_SIZE)/2;
+
vps[screen][QUICKSCREEN_BOTTOM] = *parent;
- if (nb_lines <= MIN_LINES) /* make the bottom item use 1 line */
- bottom_lines = 1;
+ vps[screen][QUICKSCREEN_TOP] = *parent;
+ /* depending on the space the top/buttom items use 1 or 2 lines */
+ if (nb_lines < MIN_LINES)
+ vert_lines = 1;
else
- bottom_lines = 2;
- vps[screen][QUICKSCREEN_BOTTOM].height = bottom_lines*char_height;
- vps[screen][QUICKSCREEN_BOTTOM].y =
- parent->y + parent->height - bottom_lines*char_height;
+ vert_lines = 2;
+ vps[screen][QUICKSCREEN_TOP].y = parent->y;
+ vps[screen][QUICKSCREEN_TOP].height = vps[screen][QUICKSCREEN_BOTTOM].height
+ = vert_lines*char_height;
+ vps[screen][QUICKSCREEN_BOTTOM].y
+ = parent->y + parent->height - vps[screen][QUICKSCREEN_BOTTOM].height;
+
+ /* enough space vertically, so put a nice margin */
if (nb_lines >= MAX_NEEDED_LINES)
{
- vps[screen][QUICKSCREEN_BOTTOM].y -= char_height;
+ vps[screen][QUICKSCREEN_TOP].y += MARGIN;
+ vps[screen][QUICKSCREEN_BOTTOM].y -= MARGIN;
}
+ vp_icons[screen].y = vps[screen][QUICKSCREEN_TOP].y
+ + vps[screen][QUICKSCREEN_TOP].height;
+ vp_icons[screen].height = parent->height - vp_icons[screen].y;
+ vp_icons[screen].height -= parent->height - vps[screen][QUICKSCREEN_BOTTOM].y;
+
/* adjust the left/right items widths to fit the screen nicely */
s = P2STR(ID2P(qs->items[QUICKSCREEN_LEFT]->lang_id));
left_width = display->getstringsize(s, NULL, NULL);
s = P2STR(ID2P(qs->items[QUICKSCREEN_RIGHT]->lang_id));
right_width = display->getstringsize(s, NULL, NULL);
- nb_lines -= bottom_lines;
-
+
width = MAX(left_width, right_width);
if (width*2 + vp_icons[screen].width > display->lcdwidth)
width = (display->lcdwidth - vp_icons[screen].width)/2;
else /* add more gap in icons vp */
{
int excess = display->lcdwidth - vp_icons[screen].width - width*2;
- if (excess > CENTER_MARGIN*4)
+ if (excess > MARGIN*4)
{
- pad = CENTER_MARGIN;
- excess -= CENTER_MARGIN*2;
+ pad = MARGIN;
+ excess -= MARGIN*2;
}
vp_icons[screen].x -= excess/2;
vp_icons[screen].width += excess;
}
+
vps[screen][QUICKSCREEN_LEFT] = *parent;
vps[screen][QUICKSCREEN_LEFT].x = parent->x + pad;
vps[screen][QUICKSCREEN_LEFT].width = width;
@@ -119,32 +133,25 @@ static void quickscreen_fix_viewports(struct gui_quickscreen *qs,
vps[screen][QUICKSCREEN_RIGHT] = *parent;
vps[screen][QUICKSCREEN_RIGHT].x = parent->x + parent->width - width - pad;
vps[screen][QUICKSCREEN_RIGHT].width = width;
-
+
+ vps[screen][QUICKSCREEN_LEFT].height = vps[screen][QUICKSCREEN_RIGHT].height
+ = 2*char_height;
+
+ vps[screen][QUICKSCREEN_LEFT].y = vps[screen][QUICKSCREEN_RIGHT].y
+ = parent->y + (parent->height/2) - char_height;
+
/* shrink the icons vp by a few pixels if there is room so the arrows
aren't drawn right next to the text */
- if (vp_icons[screen].width > CENTER_ICONAREA_WIDTH+8)
+ if (vp_icons[screen].width > CENTER_ICONAREA_SIZE*2)
{
- vp_icons[screen].width -= 8;
- vp_icons[screen].x += 4;
+ vp_icons[screen].width -= CENTER_ICONAREA_SIZE*2/3;
+ vp_icons[screen].x += CENTER_ICONAREA_SIZE*2/6;
+ }
+ if (vp_icons[screen].height > CENTER_ICONAREA_SIZE*2)
+ {
+ vp_icons[screen].height -= CENTER_ICONAREA_SIZE*2/3;
+ vp_icons[screen].y += CENTER_ICONAREA_SIZE*2/6;
}
-
-
- if (nb_lines <= MIN_LINES)
- i = 0;
- else
- i = nb_lines/2;
- vps[screen][QUICKSCREEN_LEFT].y = parent->y + (i*char_height);
- vps[screen][QUICKSCREEN_RIGHT].y = parent->y + (i*char_height);
- if (nb_lines >= 3)
- i = 3*char_height;
- else
- i = nb_lines*char_height;
-
- vps[screen][QUICKSCREEN_LEFT].height = i;
- vps[screen][QUICKSCREEN_RIGHT].height = i;
- vp_icons[screen].y = vps[screen][QUICKSCREEN_LEFT].y + (char_height/2);
- vp_icons[screen].height =
- vps[screen][QUICKSCREEN_BOTTOM].y - vp_icons[screen].y;
}
static void quickscreen_draw_text(const char *s, int item, bool title,
@@ -158,6 +165,7 @@ static void quickscreen_draw_text(const char *s, int item, bool title,
line = 1;
switch (item)
{
+ case QUICKSCREEN_TOP:
case QUICKSCREEN_BOTTOM:
x = (vp->width - w)/2;
break;
@@ -219,13 +227,18 @@ static void gui_quickscreen_draw(struct gui_quickscreen *qs,
}
/* draw the icons */
display->set_viewport(&vp_icons[screen]);
+
+ display->mono_bitmap(bitmap_icons_7x8[Icon_UpArrow],
+ (vp_icons[screen].width/2) - 4, 0, 7, 8);
display->mono_bitmap(bitmap_icons_7x8[Icon_FastForward],
- vp_icons[screen].width - 8, 0, 7, 8);
- display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward], 0, 0, 7, 8);
+ vp_icons[screen].width - 8,
+ (vp_icons[screen].height/2) - 4, 7, 8);
+ display->mono_bitmap(bitmap_icons_7x8[Icon_FastBackward], 0,
+ (vp_icons[screen].height/2) - 4, 7, 8);
+
display->mono_bitmap(bitmap_icons_7x8[Icon_DownArrow],
(vp_icons[screen].width/2) - 4,
- vp_icons[screen].height - 7, 7, 8);
- display->update_viewport();
+ vp_icons[screen].height - 8, 7, 8);
display->set_viewport(parent);
display->update_viewport();
@@ -254,12 +267,15 @@ static bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button)
bool invert = false;
switch(button)
{
+ case ACTION_QS_TOP:
+ invert = true;
+ item = QUICKSCREEN_TOP;
+ break;
case ACTION_QS_LEFT:
+ invert = true;
item = QUICKSCREEN_LEFT;
break;
- case ACTION_QS_DOWNINV:
- invert = true; /* fallthrough */
case ACTION_QS_DOWN:
item = QUICKSCREEN_BOTTOM;
break;
@@ -367,6 +383,9 @@ bool quick_screen_quick(int button_enter)
bool oldshuffle = global_settings.playlist_shuffle;
int oldrepeat = global_settings.repeat_mode;
+ qs.items[QUICKSCREEN_TOP] =
+ get_setting(global_settings.qs_item_top,
+ find_setting(&global_settings.party_mode, NULL));
qs.items[QUICKSCREEN_LEFT] =
get_setting(global_settings.qs_item_left,
find_setting(&global_settings.playlist_shuffle, NULL));
@@ -452,6 +471,9 @@ void set_as_qs_item(const struct settings_list *setting,
}
switch (item)
{
+ case QUICKSCREEN_TOP:
+ global_settings.qs_item_top = i;
+ break;
case QUICKSCREEN_LEFT:
global_settings.qs_item_left = i;
break;
@@ -461,7 +483,7 @@ void set_as_qs_item(const struct settings_list *setting,
case QUICKSCREEN_BOTTOM:
global_settings.qs_item_bottom = i;
break;
- default: /* shut the copiler up */
+ default: /* shut the compiler up */
break;
}
}
diff --git a/apps/gui/quickscreen.h b/apps/gui/quickscreen.h
index 2a67916d37..c725eae60a 100644
--- a/apps/gui/quickscreen.h
+++ b/apps/gui/quickscreen.h
@@ -29,7 +29,8 @@
#include "screen_access.h"
enum quickscreen_item {
- QUICKSCREEN_LEFT = 0,
+ QUICKSCREEN_TOP = 0,
+ QUICKSCREEN_LEFT,
QUICKSCREEN_RIGHT,
QUICKSCREEN_BOTTOM,
QUICKSCREEN_ITEM_COUNT,
diff --git a/apps/keymaps/keymap-av300.c b/apps/keymaps/keymap-av300.c
index 15fc561f62..7bf5fe1287 100644
--- a/apps/keymaps/keymap-av300.c
+++ b/apps/keymaps/keymap-av300.c
@@ -135,8 +135,8 @@ static const struct button_mapping button_context_yesno[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
};
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-c100.c b/apps/keymaps/keymap-c100.c
index e40a2df61e..a19549dbd9 100644
--- a/apps/keymaps/keymap-c100.c
+++ b/apps/keymaps/keymap-c100.c
@@ -142,8 +142,8 @@ static const struct button_mapping button_context_yesno[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_STD_CANCEL, BUTTON_POWER, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
index 36345ee4fb..32e5ce5cc0 100644
--- a/apps/keymaps/keymap-c200.c
+++ b/apps/keymaps/keymap-c200.c
@@ -147,8 +147,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c
index 7956bbd324..5b45f4fb3d 100644
--- a/apps/keymaps/keymap-clip.c
+++ b/apps/keymaps/keymap-clip.c
@@ -164,8 +164,8 @@ static const struct button_mapping button_context_yesno[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_HOME, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-creativezv.c b/apps/keymaps/keymap-creativezv.c
index 6004eb2cd2..c75a5b29cd 100644
--- a/apps/keymaps/keymap-creativezv.c
+++ b/apps/keymaps/keymap-creativezv.c
@@ -177,8 +177,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-creativezvm.c b/apps/keymaps/keymap-creativezvm.c
index 8d190f4262..12694bc473 100644
--- a/apps/keymaps/keymap-creativezvm.c
+++ b/apps/keymaps/keymap-creativezvm.c
@@ -176,8 +176,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
index 4d5ac65171..86d54b2eb7 100644
--- a/apps/keymaps/keymap-e200.c
+++ b/apps/keymaps/keymap-e200.c
@@ -152,8 +152,8 @@ static const struct button_mapping button_context_yesno[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-fuze.c b/apps/keymaps/keymap-fuze.c
index b64549b1ba..e44ee518f2 100644
--- a/apps/keymaps/keymap-fuze.c
+++ b/apps/keymaps/keymap-fuze.c
@@ -152,8 +152,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_SELECT|BUTTON_REL, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_HOME|BUTTON_REPEAT, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-gigabeat-s.c b/apps/keymaps/keymap-gigabeat-s.c
index 5c13bc0efc..4fb7e1b3f1 100644
--- a/apps/keymaps/keymap-gigabeat-s.c
+++ b/apps/keymaps/keymap-gigabeat-s.c
@@ -227,8 +227,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -422,8 +422,8 @@ static const struct button_mapping remote_button_context_yesno[] = {
}; /* button_context_settings_yesno */
static const struct button_mapping remote_button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-gigabeat.c b/apps/keymaps/keymap-gigabeat.c
index dbaac6fc49..a1a38a9600 100644
--- a/apps/keymaps/keymap-gigabeat.c
+++ b/apps/keymaps/keymap-gigabeat.c
@@ -215,8 +215,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c
index 7fef53d55b..ad1ed64c5a 100644
--- a/apps/keymaps/keymap-h10.c
+++ b/apps/keymaps/keymap-h10.c
@@ -207,8 +207,8 @@ static const struct button_mapping button_context_yesno[] = {
}; /* button_context_settings_yesno */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_SCROLL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_SCROLL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_SCROLL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_SCROLL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_REW, BUTTON_NONE },
@@ -220,8 +220,8 @@ static const struct button_mapping button_context_quickscreen[] = {
}; /* button_context_quickscreen */
static const struct button_mapping remote_button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index 10139d6356..4e13c7a734 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -205,8 +205,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_settings_bmark */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -507,8 +507,8 @@ static const struct button_mapping *button_context_bmark_h300lcdremote =
button_context_bmark_h100remote;
static const struct button_mapping button_context_quickscreen_nonlcdremote[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
@@ -521,8 +521,8 @@ static const struct button_mapping button_context_quickscreen_nonlcdremote[] =
}; /* button_context_quickscreen */
static const struct button_mapping button_context_quickscreen_h100lcdremote[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
@@ -539,8 +539,8 @@ static const struct button_mapping button_context_quickscreen_h100lcdremote[] =
}; /* button_context_quickscreen */
static const struct button_mapping button_context_quickscreen_h300lcdremote[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-hdd1630.c b/apps/keymaps/keymap-hdd1630.c
index 1d1866b4a3..4565c2807b 100644
--- a/apps/keymaps/keymap-hdd1630.c
+++ b/apps/keymaps/keymap-hdd1630.c
@@ -215,8 +215,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-iaudio67.c b/apps/keymaps/keymap-iaudio67.c
index 6679ede293..14bb945527 100644
--- a/apps/keymaps/keymap-iaudio67.c
+++ b/apps/keymaps/keymap-iaudio67.c
@@ -154,8 +154,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_VOLUP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_VOLUP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOLDOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-ifp7xx.c b/apps/keymaps/keymap-ifp7xx.c
index 3b09df49fc..23e56e8b6e 100644
--- a/apps/keymaps/keymap-ifp7xx.c
+++ b/apps/keymaps/keymap-ifp7xx.c
@@ -109,8 +109,8 @@ static const struct button_mapping button_context_bmark[] = {
}; /* button_context_settings_bmark */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-logikdax.c b/apps/keymaps/keymap-logikdax.c
index cda6107b45..95913678d8 100644
--- a/apps/keymaps/keymap-logikdax.c
+++ b/apps/keymaps/keymap-logikdax.c
@@ -147,8 +147,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MODE|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-m200.c b/apps/keymaps/keymap-m200.c
index 8a16936525..78a4947b2f 100644
--- a/apps/keymaps/keymap-m200.c
+++ b/apps/keymaps/keymap-m200.c
@@ -165,8 +165,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-m3.c b/apps/keymaps/keymap-m3.c
index 5bd0f9d258..a8f098b3e3 100644
--- a/apps/keymaps/keymap-m3.c
+++ b/apps/keymaps/keymap-m3.c
@@ -188,8 +188,8 @@ static const struct button_mapping remote_button_context_pitchscreen[] = {
/** Quickscreen **/
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -202,8 +202,8 @@ static const struct button_mapping button_context_quickscreen[] = {
}; /* button_context_quickscreen */
static const struct button_mapping remote_button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-meizu-m6sl.c b/apps/keymaps/keymap-meizu-m6sl.c
index 1d7ca42412..988f8a21fe 100644
--- a/apps/keymaps/keymap-meizu-m6sl.c
+++ b/apps/keymaps/keymap-meizu-m6sl.c
@@ -202,8 +202,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-mr100.c b/apps/keymaps/keymap-mr100.c
index efbbca4d1b..bf9da0de58 100644
--- a/apps/keymaps/keymap-mr100.c
+++ b/apps/keymaps/keymap-mr100.c
@@ -212,8 +212,8 @@ static const struct button_mapping button_context_time[] = {
}; /* button_context_time */
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-mr500.c b/apps/keymaps/keymap-mr500.c
index b1a3e4aae1..36ffea46de 100644
--- a/apps/keymaps/keymap-mr500.c
+++ b/apps/keymaps/keymap-mr500.c
@@ -164,7 +164,7 @@ static const struct button_mapping button_context_time[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_STD_CANCEL, BUTTON_RC_MODE, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_PLAY, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_PLAY, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_DOWN, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_RC_FF, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index 60f7f34b6a..6c8ae0460e 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -137,8 +137,8 @@ static const struct button_mapping button_context_yesno[] = {
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
};
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-sa9200.c b/apps/keymaps/keymap-sa9200.c
index 06e93b085d..3e83932347 100644
--- a/apps/keymaps/keymap-sa9200.c
+++ b/apps/keymaps/keymap-sa9200.c
@@ -203,8 +203,8 @@ static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c
index 0d9595cd1d..dfa4fde39c 100644
--- a/apps/keymaps/keymap-touchscreen.c
+++ b/apps/keymaps/keymap-touchscreen.c
@@ -183,8 +183,8 @@ static const struct button_mapping button_context_time[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_STD_CANCEL, BUTTON_CENTER|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_TOPMIDDLE|BUTTON_REL, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_TOPMIDDLE|BUTTON_REL, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_TOPMIDDLE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_BOTTOMMIDDLE|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_BOTTOMMIDDLE|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_MIDLEFT|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index 7a7dd9a7c9..8b94118ac1 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -195,8 +195,8 @@ static const struct button_mapping remote_button_context_pitchscreen[] = {
/** Quickscreen **/
static const struct button_mapping button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -209,8 +209,8 @@ static const struct button_mapping button_context_quickscreen[] = {
}; /* button_context_quickscreen */
static const struct button_mapping remote_button_context_quickscreen[] = {
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_RC_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_RC_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_RC_REW, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-yh8xx_yh9xx.c b/apps/keymaps/keymap-yh8xx_yh9xx.c
index 2cb7b4b67a..7e65749f52 100755
--- a/apps/keymaps/keymap-yh8xx_yh9xx.c
+++ b/apps/keymaps/keymap-yh8xx_yh9xx.c
@@ -212,8 +212,8 @@ static const struct button_mapping button_context_time[] = {
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_NONE, BUTTON_LEFT, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP, BUTTON_NONE },
- { ACTION_QS_DOWNINV, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
+ { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang
index 7cd59a5b67..1a9d1e6a65 100644
--- a/apps/lang/deutsch.lang
+++ b/apps/lang/deutsch.lang
@@ -12464,3 +12464,20 @@
swcodec: "Geschwindigkeit"
</voice>
</phrase>
+<phrase>
+ id: LANG_TOP_QS_ITEM
+ desc: used for the submenu name for the quickscreen items
+ user: core
+ <source>
+ *: none
+ quickscreen: "Set as Top Quickscreen Item"
+ </source>
+ <dest>
+ *: none
+ quickscreen: "Als obere Schnelleinstellung verwenden"
+ </dest>
+ <voice>
+ *: none
+ quickscreen: "Als obere Schnelleinstellung verwenden"
+ </voice>
+</phrase>
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 73a3fe9b1b..915c329a39 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12718,3 +12718,20 @@
swcodec: "Limiter Preamp"
</voice>
</phrase>
+<phrase>
+ id: LANG_TOP_QS_ITEM
+ desc: used for the submenu name for the quickscreen items
+ user: core
+ <source>
+ *: none
+ quickscreen: "Set as Top Quickscreen Item"
+ </source>
+ <dest>
+ *: none
+ quickscreen: "Set as Top Quickscreen Item"
+ </dest>
+ <voice>
+ *: none
+ quickscreen: "Set as Top Quickscreen Item"
+ </voice>
+</phrase>
diff --git a/apps/menu.c b/apps/menu.c
index b442d4423d..1c2df9294c 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -455,6 +455,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
MENUITEM_STRINGLIST(quickscreen_able_option,
ID2P(LANG_ONPLAY_MENU_TITLE), NULL,
ID2P(LANG_RESET_SETTING),
+ ID2P(LANG_TOP_QS_ITEM),
ID2P(LANG_LEFT_QS_ITEM),
ID2P(LANG_BOTTOM_QS_ITEM),
ID2P(LANG_RIGHT_QS_ITEM));
@@ -481,13 +482,16 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
break;
#ifdef HAVE_QUICKSCREEN
break;
- case 1: /* set as left QS item */
+ case 1: /* set as top QS item */
+ set_as_qs_item(setting, QUICKSCREEN_TOP);
+ break;
+ case 2: /* set as left QS item */
set_as_qs_item(setting, QUICKSCREEN_LEFT);
break;
- case 2: /* set as bottom QS item */
+ case 3: /* set as bottom QS item */
set_as_qs_item(setting, QUICKSCREEN_BOTTOM);
break;
- case 3: /* set as right QS item */
+ case 4: /* set as right QS item */
set_as_qs_item(setting, QUICKSCREEN_RIGHT);
break;
#endif
diff --git a/apps/settings.h b/apps/settings.h
index bd28b99401..e8ffe91471 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -503,6 +503,7 @@ struct user_settings
#ifdef HAVE_QUICKSCREEN
/* these are split because settings_list cant handle arrays */
+ int qs_item_top;
int qs_item_left;
int qs_item_right;
int qs_item_bottom;
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 23f07cb24c..db69f6cb9b 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1525,6 +1525,10 @@ const struct settings_list settings[] = {
ID2P(LANG_NORMAL), ID2P(LANG_HIGH)),
#endif
#ifdef HAVE_QUICKSCREEN
+ CUSTOM_SETTING(0, qs_item_top, LANG_TOP_QS_ITEM,
+ &global_settings.party_mode, "qs top",
+ qs_load_from_cfg, qs_write_to_cfg,
+ qs_is_changed, qs_set_default),
CUSTOM_SETTING(0, qs_item_left, LANG_LEFT_QS_ITEM,
&global_settings.playlist_shuffle, "qs left",
qs_load_from_cfg, qs_write_to_cfg,