summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-02-20 20:53:13 +0000
committerThomas Martitz <kugel@rockbox.org>2010-02-20 20:53:13 +0000
commit68169026e536c5febe8009e60edae44d50c08442 (patch)
tree550ae15ccbd6aae8dc336aa4446488bbfb2c9eee
parent69338424a813bd3ceb730ae2b22a2c79fe09c2c6 (diff)
downloadrockbox-68169026e536c5febe8009e60edae44d50c08442.tar.gz
rockbox-68169026e536c5febe8009e60edae44d50c08442.zip
Quickscreen for the radio screen. I added a keymap for almost all targets. I couldn't find a nice one (i.e. one that's consistent with the wps/menu quickscreen combo) for iaudio m3, ondavx747 and the gogears.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24795 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/action.h1
-rw-r--r--apps/keymaps/keymap-av300.c1
-rw-r--r--apps/keymaps/keymap-c100.c1
-rw-r--r--apps/keymaps/keymap-c200.c3
-rw-r--r--apps/keymaps/keymap-clip.c3
-rw-r--r--apps/keymaps/keymap-e200.c1
-rw-r--r--apps/keymaps/keymap-fuze.c2
-rw-r--r--apps/keymaps/keymap-gigabeat-s.c3
-rw-r--r--apps/keymaps/keymap-h10.c3
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c3
-rw-r--r--apps/keymaps/keymap-ipod.c3
-rw-r--r--apps/keymaps/keymap-m200.c3
-rw-r--r--apps/keymaps/keymap-m3.c1
-rw-r--r--apps/keymaps/keymap-ondavx747.c1
-rw-r--r--apps/keymaps/keymap-recorder.c3
-rw-r--r--apps/keymaps/keymap-touchscreen.c3
-rw-r--r--apps/keymaps/keymap-x5.c4
-rw-r--r--apps/recorder/radio.c23
18 files changed, 52 insertions, 10 deletions
diff --git a/apps/action.h b/apps/action.h
index cea9384ec2..63ec905e51 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -155,6 +155,7 @@ enum {
155 /* radio */ 155 /* radio */
156 ACTION_FM_MENU, 156 ACTION_FM_MENU,
157 ACTION_FM_PRESET, 157 ACTION_FM_PRESET,
158 ACTION_FM_QUICKSCREEN,
158 ACTION_FM_RECORD, 159 ACTION_FM_RECORD,
159 ACTION_FM_FREEZE, 160 ACTION_FM_FREEZE,
160 ACTION_FM_STOP, 161 ACTION_FM_STOP,
diff --git a/apps/keymaps/keymap-av300.c b/apps/keymaps/keymap-av300.c
index 7bf5fe1287..7d66921c3a 100644
--- a/apps/keymaps/keymap-av300.c
+++ b/apps/keymaps/keymap-av300.c
@@ -217,6 +217,7 @@ static const struct button_mapping button_context_radio[] = {
217 { ACTION_FM_STOP, BUTTON_OFF, BUTTON_NONE }, 217 { ACTION_FM_STOP, BUTTON_OFF, BUTTON_NONE },
218 { ACTION_FM_MODE, BUTTON_ON | BUTTON_REPEAT, BUTTON_ON }, 218 { ACTION_FM_MODE, BUTTON_ON | BUTTON_REPEAT, BUTTON_ON },
219 { ACTION_FM_EXIT, BUTTON_ON | BUTTON_REL, BUTTON_ON }, 219 { ACTION_FM_EXIT, BUTTON_ON | BUTTON_REL, BUTTON_ON },
220 { ACTION_FM_QUICKSCREEN, BUTTON_F2|BUTTON_REPEAT, BUTTON_NONE },
220 221
221 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 222 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
222 223
diff --git a/apps/keymaps/keymap-c100.c b/apps/keymaps/keymap-c100.c
index 457e81ed99..3312da3e1d 100644
--- a/apps/keymaps/keymap-c100.c
+++ b/apps/keymaps/keymap-c100.c
@@ -194,6 +194,7 @@ static const struct button_mapping button_context_radio[] = {
194 { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, 194 { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
195 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, 195 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
196 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 196 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
197 { ACTION_FM_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
197 198
198 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 199 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
199}; /* button_context_radio */ 200}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
index af7c990340..487a2db1a7 100644
--- a/apps/keymaps/keymap-c200.c
+++ b/apps/keymaps/keymap-c200.c
@@ -216,7 +216,7 @@ static const struct button_mapping button_context_recscreen[] = {
216#if CONFIG_TUNER 216#if CONFIG_TUNER
217static const struct button_mapping button_context_radio[] = { 217static const struct button_mapping button_context_radio[] = {
218 { ACTION_NONE, BUTTON_UP, BUTTON_NONE }, 218 { ACTION_NONE, BUTTON_UP, BUTTON_NONE },
219 { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE }, 219 { ACTION_FM_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
220 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE }, 220 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE },
221 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, 221 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
222 { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE }, 222 { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE },
@@ -226,6 +226,7 @@ static const struct button_mapping button_context_radio[] = {
226 { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 226 { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
227 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, 227 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE },
228 { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 228 { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
229 { ACTION_FM_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
229 230
230 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 231 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
231}; /* button_context_radio */ 232}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c
index c3121797ac..a50db6dc0a 100644
--- a/apps/keymaps/keymap-clip.c
+++ b/apps/keymaps/keymap-clip.c
@@ -232,13 +232,14 @@ static const struct button_mapping button_context_radio[] = {
232 { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE }, 232 { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE },
233 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE }, 233 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE },
234 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, 234 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
235 { ACTION_FM_MODE, BUTTON_HOME, BUTTON_NONE }, 235 { ACTION_FM_MODE, BUTTON_HOME|BUTTON_REL, BUTTON_HOME },
236 { ACTION_FM_EXIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, 236 { ACTION_FM_EXIT, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
237 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 237 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
238 { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, 238 { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE },
239 { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 239 { ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
240 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, 240 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE },
241 { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 241 { ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
242 { ACTION_FM_QUICKSCREEN, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME },
242 243
243 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 244 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
244}; /* button_context_radio */ 245}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
index f6972223fd..367fdcb88f 100644
--- a/apps/keymaps/keymap-e200.c
+++ b/apps/keymaps/keymap-e200.c
@@ -241,6 +241,7 @@ static const struct button_mapping button_context_radio[] = {
241 { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, 241 { ACTION_FM_MODE, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
242 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, 242 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
243 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 243 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
244 { ACTION_FM_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
244 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 245 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
245}; /* button_context_radio */ 246}; /* button_context_radio */
246 247
diff --git a/apps/keymaps/keymap-fuze.c b/apps/keymaps/keymap-fuze.c
index 1272233df6..416674f814 100644
--- a/apps/keymaps/keymap-fuze.c
+++ b/apps/keymaps/keymap-fuze.c
@@ -242,7 +242,7 @@ static const struct button_mapping button_context_radio[] = {
242 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE }, 242 { ACTION_FM_EXIT, BUTTON_DOWN|BUTTON_REL, BUTTON_NONE },
243 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP }, 243 { ACTION_FM_PLAY, BUTTON_UP|BUTTON_REL, BUTTON_UP },
244 { ACTION_FM_PRESET, BUTTON_HOME|BUTTON_REL, BUTTON_NONE }, 244 { ACTION_FM_PRESET, BUTTON_HOME|BUTTON_REL, BUTTON_NONE },
245 { ACTION_NONE, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 245 { ACTION_FM_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
246 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 246 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
247}; /* button_context_radio */ 247}; /* button_context_radio */
248 248
diff --git a/apps/keymaps/keymap-gigabeat-s.c b/apps/keymaps/keymap-gigabeat-s.c
index 0793f7bfbf..d690b24e77 100644
--- a/apps/keymaps/keymap-gigabeat-s.c
+++ b/apps/keymaps/keymap-gigabeat-s.c
@@ -305,13 +305,14 @@ static const struct button_mapping button_context_radio[] = {
305 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE }, 305 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE },
306 { ACTION_FM_PRESET, BUTTON_SELECT | BUTTON_REL, BUTTON_SELECT }, 306 { ACTION_FM_PRESET, BUTTON_SELECT | BUTTON_REL, BUTTON_SELECT },
307 { ACTION_FM_STOP, BUTTON_POWER, BUTTON_NONE }, 307 { ACTION_FM_STOP, BUTTON_POWER, BUTTON_NONE },
308 { ACTION_FM_MODE, BUTTON_MENU, BUTTON_NONE }, 308 { ACTION_FM_MODE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
309 { ACTION_FM_EXIT, BUTTON_BACK, BUTTON_NONE }, 309 { ACTION_FM_EXIT, BUTTON_BACK, BUTTON_NONE },
310 { ACTION_FM_PLAY, BUTTON_PLAY, BUTTON_NONE }, 310 { ACTION_FM_PLAY, BUTTON_PLAY, BUTTON_NONE },
311 { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE }, 311 { ACTION_SETTINGS_INC, BUTTON_VOL_UP, BUTTON_NONE },
312 { ACTION_SETTINGS_INCREPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE }, 312 { ACTION_SETTINGS_INCREPEAT, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
313 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE }, 313 { ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE },
314 { ACTION_SETTINGS_DECREPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE }, 314 { ACTION_SETTINGS_DECREPEAT, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
315 { ACTION_FM_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
315 316
316 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 317 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
317}; /* button_context_radio */ 318}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c
index 315f28c213..8597e24023 100644
--- a/apps/keymaps/keymap-h10.c
+++ b/apps/keymaps/keymap-h10.c
@@ -320,7 +320,8 @@ const struct button_mapping button_context_recscreen[] = {
320static const struct button_mapping button_context_radio[] = { 320static const struct button_mapping button_context_radio[] = {
321 { ACTION_FM_PRESET, BUTTON_RIGHT | BUTTON_REL, BUTTON_RIGHT }, 321 { ACTION_FM_PRESET, BUTTON_RIGHT | BUTTON_REL, BUTTON_RIGHT },
322 { ACTION_FM_MENU, BUTTON_RIGHT | BUTTON_REPEAT, BUTTON_NONE }, 322 { ACTION_FM_MENU, BUTTON_RIGHT | BUTTON_REPEAT, BUTTON_NONE },
323 { ACTION_FM_MODE, BUTTON_LEFT, BUTTON_NONE }, 323 { ACTION_FM_MODE, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
324 { ACTION_FM_QUICKSCREEN, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
324 { ACTION_FM_STOP, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY }, 325 { ACTION_FM_STOP, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY },
325 { ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE }, 326 { ACTION_FM_EXIT, BUTTON_POWER, BUTTON_NONE },
326 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY }, 327 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY },
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index d3b76ee3ad..64d0f30b8e 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -280,6 +280,7 @@ static const struct button_mapping button_context_radio[] = {
280 { ACTION_FM_MODE, BUTTON_ON | BUTTON_REPEAT, BUTTON_ON }, 280 { ACTION_FM_MODE, BUTTON_ON | BUTTON_REPEAT, BUTTON_ON },
281 { ACTION_FM_EXIT, BUTTON_MODE | BUTTON_REL, BUTTON_MODE }, 281 { ACTION_FM_EXIT, BUTTON_MODE | BUTTON_REL, BUTTON_MODE },
282 { ACTION_FM_PLAY, BUTTON_ON | BUTTON_REL, BUTTON_ON }, 282 { ACTION_FM_PLAY, BUTTON_ON | BUTTON_REL, BUTTON_ON },
283 { ACTION_FM_QUICKSCREEN, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
283 284
284 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 285 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
285 286
@@ -690,6 +691,7 @@ static const struct button_mapping button_context_radio_h100remote[] = {
690 { ACTION_FM_STOP, BUTTON_RC_STOP, BUTTON_NONE }, 691 { ACTION_FM_STOP, BUTTON_RC_STOP, BUTTON_NONE },
691 { ACTION_FM_MODE, BUTTON_RC_ON | BUTTON_REPEAT, BUTTON_RC_ON }, 692 { ACTION_FM_MODE, BUTTON_RC_ON | BUTTON_REPEAT, BUTTON_RC_ON },
692 { ACTION_FM_EXIT, BUTTON_RC_MODE | BUTTON_REL, BUTTON_RC_MODE }, 693 { ACTION_FM_EXIT, BUTTON_RC_MODE | BUTTON_REL, BUTTON_RC_MODE },
694 { ACTION_FM_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
693 { ACTION_FM_PLAY, BUTTON_RC_ON | BUTTON_REL, BUTTON_RC_ON }, 695 { ACTION_FM_PLAY, BUTTON_RC_ON | BUTTON_REL, BUTTON_RC_ON },
694 { ACTION_FM_NEXT_PRESET, BUTTON_RC_BITRATE, BUTTON_NONE }, 696 { ACTION_FM_NEXT_PRESET, BUTTON_RC_BITRATE, BUTTON_NONE },
695 { ACTION_FM_PREV_PRESET, BUTTON_RC_SOURCE, BUTTON_NONE }, 697 { ACTION_FM_PREV_PRESET, BUTTON_RC_SOURCE, BUTTON_NONE },
@@ -711,6 +713,7 @@ static const struct button_mapping button_context_radio_h300lcdremote[] = {
711 { ACTION_FM_STOP, BUTTON_RC_STOP, BUTTON_NONE }, 713 { ACTION_FM_STOP, BUTTON_RC_STOP, BUTTON_NONE },
712 { ACTION_FM_MODE, BUTTON_RC_ON | BUTTON_REPEAT, BUTTON_RC_ON }, 714 { ACTION_FM_MODE, BUTTON_RC_ON | BUTTON_REPEAT, BUTTON_RC_ON },
713 { ACTION_FM_EXIT, BUTTON_RC_MODE | BUTTON_REL, BUTTON_RC_MODE }, 715 { ACTION_FM_EXIT, BUTTON_RC_MODE | BUTTON_REL, BUTTON_RC_MODE },
716 { ACTION_FM_QUICKSCREEN, BUTTON_RC_MODE|BUTTON_REPEAT, BUTTON_RC_MODE },
714 { ACTION_FM_PLAY, BUTTON_RC_ON | BUTTON_REL, BUTTON_RC_ON }, 717 { ACTION_FM_PLAY, BUTTON_RC_ON | BUTTON_REL, BUTTON_RC_ON },
715 { ACTION_FM_NEXT_PRESET, BUTTON_RC_BITRATE, BUTTON_NONE }, 718 { ACTION_FM_NEXT_PRESET, BUTTON_RC_BITRATE, BUTTON_NONE },
716 { ACTION_FM_PREV_PRESET, BUTTON_RC_SOURCE, BUTTON_NONE }, 719 { ACTION_FM_PREV_PRESET, BUTTON_RC_SOURCE, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c
index 4f987777b4..751c6d89aa 100644
--- a/apps/keymaps/keymap-ipod.c
+++ b/apps/keymaps/keymap-ipod.c
@@ -199,7 +199,8 @@ const struct button_mapping button_context_recscreen[] = {
199 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE }, 199 { ACTION_FM_MENU, BUTTON_SELECT | BUTTON_REPEAT, BUTTON_NONE },
200 { ACTION_FM_STOP, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY }, 200 { ACTION_FM_STOP, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY },
201 { ACTION_FM_MODE, BUTTON_SELECT, BUTTON_NONE }, 201 { ACTION_FM_MODE, BUTTON_SELECT, BUTTON_NONE },
202 { ACTION_FM_EXIT, BUTTON_MENU | BUTTON_REL, BUTTON_NONE }, 202 { ACTION_FM_EXIT, BUTTON_MENU | BUTTON_REL, BUTTON_MENU },
203 { ACTION_FM_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
203 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY }, 204 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY },
204 { ACTION_SETTINGS_INC, BUTTON_SCROLL_FWD, BUTTON_NONE }, 205 { ACTION_SETTINGS_INC, BUTTON_SCROLL_FWD, BUTTON_NONE },
205 { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE }, 206 { ACTION_SETTINGS_INCREPEAT,BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-m200.c b/apps/keymaps/keymap-m200.c
index d1e6f626fd..d199b208bb 100644
--- a/apps/keymaps/keymap-m200.c
+++ b/apps/keymaps/keymap-m200.c
@@ -234,7 +234,8 @@ static const struct button_mapping button_context_recscreen[] = {
234#if CONFIG_TUNER 234#if CONFIG_TUNER
235static const struct button_mapping button_context_radio[] = { 235static const struct button_mapping button_context_radio[] = {
236 { ACTION_NONE, BUTTON_UP, BUTTON_NONE }, 236 { ACTION_NONE, BUTTON_UP, BUTTON_NONE },
237 { ACTION_FM_MENU, BUTTON_DOWN, BUTTON_NONE }, 237 { ACTION_FM_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
238 { ACTION_FM_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
238 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE }, 239 { ACTION_FM_PRESET, BUTTON_SELECT, BUTTON_NONE },
239 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP }, 240 { ACTION_FM_STOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_UP },
240// { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE }, 241// { ACTION_FM_MODE, BUTTON_REC, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-m3.c b/apps/keymaps/keymap-m3.c
index a8f098b3e3..4449d77068 100644
--- a/apps/keymaps/keymap-m3.c
+++ b/apps/keymaps/keymap-m3.c
@@ -96,6 +96,7 @@ static const struct button_mapping button_context_radio[] = {
96 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 96 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
97 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, 97 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
98 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, 98 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
99 //{ ACTION_FM_QUICKSCREEN, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC },
99 100
100 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 101 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
101}; /* button_context_radio */ 102}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-ondavx747.c b/apps/keymaps/keymap-ondavx747.c
index 508d86d6eb..812b16274a 100644
--- a/apps/keymaps/keymap-ondavx747.c
+++ b/apps/keymaps/keymap-ondavx747.c
@@ -153,6 +153,7 @@ static const struct button_mapping button_context_radio[] = {
153 { ACTION_FM_PRESET, BUTTON_MENU|BUTTON_REL, BUTTON_NONE }, 153 { ACTION_FM_PRESET, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
154 { ACTION_FM_MODE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER }, 154 { ACTION_FM_MODE, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
155 { ACTION_FM_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE }, 155 { ACTION_FM_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE },
156 //{ ACTION_FM_QUICKSCREEN, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
156 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS) 157 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
157}; /* button_context_radio */ 158}; /* button_context_radio */
158 159
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index 859f4feeb4..c2ac45e0d6 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -212,7 +212,8 @@ static const struct button_mapping button_context_bmark[] = {
212 212
213static const struct button_mapping button_context_radio[] = { 213static const struct button_mapping button_context_radio[] = {
214 { ACTION_FM_MENU, BUTTON_F1, BUTTON_NONE }, 214 { ACTION_FM_MENU, BUTTON_F1, BUTTON_NONE },
215 { ACTION_FM_PRESET, BUTTON_F2, BUTTON_NONE }, 215 { ACTION_FM_PRESET, BUTTON_F2|BUTTON_REL, BUTTON_F2 },
216 { ACTION_FM_QUICKSCREEN, BUTTON_F2|BUTTON_REPEAT, BUTTON_NONE },
216 { ACTION_FM_RECORD, BUTTON_F3, BUTTON_NONE }, 217 { ACTION_FM_RECORD, BUTTON_F3, BUTTON_NONE },
217 { ACTION_FM_FREEZE, BUTTON_PLAY, BUTTON_NONE }, 218 { ACTION_FM_FREEZE, BUTTON_PLAY, BUTTON_NONE },
218 { ACTION_FM_STOP, BUTTON_OFF, BUTTON_NONE }, 219 { ACTION_FM_STOP, BUTTON_OFF, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c
index ab1bf8a173..6d3a515da7 100644
--- a/apps/keymaps/keymap-touchscreen.c
+++ b/apps/keymaps/keymap-touchscreen.c
@@ -274,7 +274,8 @@ static const struct button_mapping button_context_radio[] = {
274 { ACTION_FM_PRESET, BUTTON_CENTER|BUTTON_REL, BUTTON_NONE }, 274 { ACTION_FM_PRESET, BUTTON_CENTER|BUTTON_REL, BUTTON_NONE },
275 { ACTION_FM_STOP, BUTTON_BOTTOMRIGHT|BUTTON_REL, BUTTON_NONE }, 275 { ACTION_FM_STOP, BUTTON_BOTTOMRIGHT|BUTTON_REL, BUTTON_NONE },
276 { ACTION_FM_EXIT, BUTTON_TOPLEFT|BUTTON_REL, BUTTON_NONE }, 276 { ACTION_FM_EXIT, BUTTON_TOPLEFT|BUTTON_REL, BUTTON_NONE },
277 { ACTION_FM_MODE, BUTTON_BOTTOMLEFT|BUTTON_REL, BUTTON_NONE }, 277 { ACTION_FM_MODE, BUTTON_BOTTOMLEFT|BUTTON_REL, BUTTON_BOTTOMLEFT },
278 { ACTION_FM_QUICKSCREEN, BUTTON_BOTTOMLEFT|BUTTON_REPEAT, BUTTON_BOTTOMLEFT },
278 { ACTION_FM_PLAY, BUTTON_TOPRIGHT|BUTTON_REL, BUTTON_NONE }, 279 { ACTION_FM_PLAY, BUTTON_TOPRIGHT|BUTTON_REL, BUTTON_NONE },
279 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_FM) 280 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_FM)
280}; /* button_context_radio */ 281}; /* button_context_radio */
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index 059a3f25b5..a2be6404e8 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -100,6 +100,7 @@ static const struct button_mapping button_context_radio[] = {
100 { ACTION_FM_STOP, BUTTON_POWER, BUTTON_NONE }, 100 { ACTION_FM_STOP, BUTTON_POWER, BUTTON_NONE },
101 { ACTION_FM_MODE, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY }, 101 { ACTION_FM_MODE, BUTTON_PLAY | BUTTON_REPEAT, BUTTON_PLAY },
102 { ACTION_FM_EXIT, BUTTON_REC | BUTTON_REL, BUTTON_REC }, 102 { ACTION_FM_EXIT, BUTTON_REC | BUTTON_REL, BUTTON_REC },
103 { ACTION_FM_QUICKSCREEN, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC },
103 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY }, 104 { ACTION_FM_PLAY, BUTTON_PLAY | BUTTON_REL, BUTTON_PLAY },
104 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, 105 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
105 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE }, 106 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
@@ -114,7 +115,8 @@ static const struct button_mapping remote_button_context_radio[] = {
114 { ACTION_FM_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY }, 115 { ACTION_FM_STOP, BUTTON_RC_PLAY|BUTTON_REPEAT, BUTTON_RC_PLAY },
115 { ACTION_FM_PLAY, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY }, 116 { ACTION_FM_PLAY, BUTTON_RC_PLAY|BUTTON_REL, BUTTON_RC_PLAY },
116 { ACTION_FM_MODE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_RC_REC }, 117 { ACTION_FM_MODE, BUTTON_RC_REC|BUTTON_REPEAT, BUTTON_RC_REC },
117 { ACTION_FM_EXIT, BUTTON_RC_MENU, BUTTON_NONE }, 118 { ACTION_FM_EXIT, BUTTON_RC_MENU|BUTTON_REL, BUTTON_RC_MENU },
119 { ACTION_FM_QUICKSCREEN, BUTTON_RC_MENU|BUTTON_REPEAT, BUTTON_RC_MENU },
118 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE }, 120 { ACTION_STD_PREVREPEAT, BUTTON_RC_REW|BUTTON_REPEAT, BUTTON_NONE },
119 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE }, 121 { ACTION_STD_NEXT, BUTTON_RC_FF, BUTTON_NONE },
120 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE }, 122 { ACTION_STD_NEXTREPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE },
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index 6e8cc289ff..7eed961202 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -67,6 +67,9 @@
67#include "menus/exported_menus.h" 67#include "menus/exported_menus.h"
68#include "root_menu.h" 68#include "root_menu.h"
69#include "viewport.h" 69#include "viewport.h"
70#ifdef HAVE_QUICKSCREEN
71#include "quickscreen.h"
72#endif
70 73
71#if CONFIG_TUNER 74#if CONFIG_TUNER
72 75
@@ -801,6 +804,26 @@ int radio_screen(void)
801 break; 804 break;
802#endif /* FM_PRESET */ 805#endif /* FM_PRESET */
803 806
807#ifdef HAVE_QUICKSCREEN
808 case ACTION_FM_QUICKSCREEN:
809 {
810 if (quick_screen_quick(button))
811 {
812 done = true;
813 break;
814 }
815 FOR_NB_SCREENS(i)
816 {
817 screens[i].set_viewport(&vp[i]);
818 screens[i].stop_scroll();
819 screens[i].clear_viewport();
820 screens[i].update_viewport();
821 screens[i].set_viewport(NULL);
822 }
823 update_screen = true;
824 }
825 break;
826#endif
804#ifdef FM_FREEZE 827#ifdef FM_FREEZE
805 case ACTION_FM_FREEZE: 828 case ACTION_FM_FREEZE:
806 if(!screen_freeze) 829 if(!screen_freeze)