summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/action.h1
-rw-r--r--apps/gui/gwps.c8
-rw-r--r--apps/gui/gwps.h2
-rw-r--r--apps/gui/wps_parser.c2
-rw-r--r--apps/keymaps/keymap-av300.c3
-rw-r--r--apps/keymaps/keymap-c100.c1
-rw-r--r--apps/keymaps/keymap-c200.c1
-rw-r--r--apps/keymaps/keymap-clip.c5
-rw-r--r--apps/keymaps/keymap-creativezv.c2
-rw-r--r--apps/keymaps/keymap-creativezvm.c2
-rw-r--r--apps/keymaps/keymap-e200.c1
-rw-r--r--apps/keymaps/keymap-fuze.c1
-rw-r--r--apps/keymaps/keymap-gigabeat-s.c2
-rw-r--r--apps/keymaps/keymap-gigabeat.c2
-rw-r--r--apps/keymaps/keymap-h10.c1
-rw-r--r--apps/keymaps/keymap-h1x0_h3x0.c3
-rw-r--r--apps/keymaps/keymap-hdd1630.c2
-rw-r--r--apps/keymaps/keymap-iaudio67.c1
-rw-r--r--apps/keymaps/keymap-ipod.c1
-rw-r--r--apps/keymaps/keymap-m200.c1
-rw-r--r--apps/keymaps/keymap-m3.c1
-rw-r--r--apps/keymaps/keymap-meizu-m6sl.c4
-rw-r--r--apps/keymaps/keymap-mr100.c1
-rw-r--r--apps/keymaps/keymap-ondio.c1
-rw-r--r--apps/keymaps/keymap-player.c1
-rw-r--r--apps/keymaps/keymap-recorder.c3
-rw-r--r--apps/keymaps/keymap-sa9200.c1
-rw-r--r--apps/keymaps/keymap-touchscreen.c1
-rw-r--r--apps/keymaps/keymap-x5.c1
-rwxr-xr-xapps/keymaps/keymap-yh8xx_yh9xx.c1
-rw-r--r--apps/recorder/jpeg_load.c2
-rw-r--r--firmware/target/arm/samsung/adc-target.h7
-rw-r--r--wps/cabbiev2.240x400x16.wps1
-rw-r--r--wps/cabbiev2.320x240x16.mrobe500.wps2
34 files changed, 54 insertions, 15 deletions
diff --git a/apps/action.h b/apps/action.h
index dd81d13818..eae5f1249b 100644
--- a/apps/action.h
+++ b/apps/action.h
@@ -120,6 +120,7 @@ enum {
ACTION_WPS_CONTEXT,
ACTION_WPS_QUICKSCREEN,/* optional */
ACTION_WPS_MENU, /*this should be the same as ACTION_STD_MENU */
+ ACTION_WPS_VIEW_PLAYLIST,
ACTION_WPS_REC,
#if 0
ACTION_WPSAB_SINGLE, /* This needs to be #defined in
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index eb1437c910..154864a280 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -65,6 +65,7 @@
#include "pcmbuf.h"
#include "option_select.h"
#include "dsp.h"
+#include "playlist_viewer.h"
#define RESTORE_WPS_INSTANTLY 0l
#define RESTORE_WPS_NEXT_SECOND ((long)(HZ+current_tick))
@@ -786,7 +787,12 @@ long gui_wps_show(void)
case SYS_POWEROFF:
default_event_handler(SYS_POWEROFF);
break;
-
+ case ACTION_WPS_VIEW_PLAYLIST:
+ gwps_leave_wps();
+ if (playlist_viewer()) /* true if USB connected */
+ return SYS_USB_CONNECTED;
+ restore = true;
+ break;
default:
if(default_event_handler(button) == SYS_USB_CONNECTED)
return GO_TO_ROOT;
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h
index ac1cbad60b..2acde0dc39 100644
--- a/apps/gui/gwps.h
+++ b/apps/gui/gwps.h
@@ -378,7 +378,7 @@ struct touchregion {
bool repeat; /* requires the area be held for the action */
int action; /* action this button will return */
};
-#define MAX_TOUCHREGIONS 12
+#define MAX_TOUCHREGIONS 15
#endif
/* wps_data
this struct holds all necessary data which describes the
diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c
index 248269ddcb..fb0b3ac4c6 100644
--- a/apps/gui/wps_parser.c
+++ b/apps/gui/wps_parser.c
@@ -1163,6 +1163,7 @@ static struct touchaction touchactions[] = {
{"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE },
{"shuffle", ACTION_TOUCH_SHUFFLE }, {"repmode", ACTION_TOUCH_REPMODE },
{"quickscreen", ACTION_WPS_QUICKSCREEN },{"contextmenu", ACTION_WPS_CONTEXT },
+ {"playlist", ACTION_WPS_VIEW_PLAYLIST },
};
static int parse_touchregion(const char *wps_bufptr,
struct wps_token *token, struct wps_data *wps_data)
@@ -1191,6 +1192,7 @@ static int parse_touchregion(const char *wps_bufptr,
* contextmenu - open the context menu
*/
+
if ((wps_data->touchregion_count +1 >= MAX_TOUCHREGIONS) || (*ptr != '|'))
return WPS_ERROR_INVALID_PARAM;
ptr++;
diff --git a/apps/keymaps/keymap-av300.c b/apps/keymaps/keymap-av300.c
index 1cca2c2a8b..15fc561f62 100644
--- a/apps/keymaps/keymap-av300.c
+++ b/apps/keymaps/keymap-av300.c
@@ -74,7 +74,8 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_MENU, BUTTON_F1|BUTTON_REL, BUTTON_F1 },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_SELECT },
- { ACTION_WPS_QUICKSCREEN, BUTTON_F2, BUTTON_NONE },
+ { ACTION_WPS_QUICKSCREEN, BUTTON_F2|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_F2|BUTTON_REL, BUTTON_F2 },
{ ACTION_WPS_BROWSE, BUTTON_ON|BUTTON_REL, BUTTON_ON },
{ ACTION_WPS_ID3SCREEN, BUTTON_F1|BUTTON_ON, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_UP, BUTTON_ON },
diff --git a/apps/keymaps/keymap-c100.c b/apps/keymaps/keymap-c100.c
index 80948c0e19..e40a2df61e 100644
--- a/apps/keymaps/keymap-c100.c
+++ b/apps/keymaps/keymap-c100.c
@@ -69,6 +69,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_VOLUP, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_VOLDOWN, BUTTON_SELECT },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_SELECT|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
LAST_ITEM_IN_LIST
diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c
index bddfa9b1d5..36345ee4fb 100644
--- a/apps/keymaps/keymap-c200.c
+++ b/apps/keymaps/keymap-c200.c
@@ -81,6 +81,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_WPS_QUICKSCREEN, BUTTON_DOWN, BUTTON_NONE },
{ ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_REC|BUTTON_REL, BUTTON_REC },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c
index 592e0b4a9a..7956bbd324 100644
--- a/apps/keymaps/keymap-clip.c
+++ b/apps/keymaps/keymap-clip.c
@@ -80,8 +80,9 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_QUICKSCREEN, BUTTON_HOME|BUTTON_REPEAT, BUTTON_HOME },
{ ACTION_WPS_MENU, BUTTON_HOME|BUTTON_REL, BUTTON_HOME },
- { ACTION_WPS_PITCHSCREEN, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
- { ACTION_WPS_ID3SCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
+ { ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT },
+ { ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-creativezv.c b/apps/keymaps/keymap-creativezv.c
index c66d19c5fa..6004eb2cd2 100644
--- a/apps/keymaps/keymap-creativezv.c
+++ b/apps/keymaps/keymap-creativezv.c
@@ -92,7 +92,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
- { ACTION_WPS_MENU, BUTTON_POWER, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_POWER, BUTTON_NONE },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_BACK|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-creativezvm.c b/apps/keymaps/keymap-creativezvm.c
index 4b0618e15d..8d190f4262 100644
--- a/apps/keymaps/keymap-creativezvm.c
+++ b/apps/keymaps/keymap-creativezvm.c
@@ -91,7 +91,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
- { ACTION_WPS_MENU, BUTTON_POWER, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_POWER, BUTTON_NONE },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_BACK|BUTTON_REL, BUTTON_NONE },
diff --git a/apps/keymaps/keymap-e200.c b/apps/keymaps/keymap-e200.c
index 569862827d..4d5ac65171 100644
--- a/apps/keymaps/keymap-e200.c
+++ b/apps/keymaps/keymap-e200.c
@@ -80,6 +80,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
{ ACTION_WPS_MENU, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_REC|BUTTON_REL, BUTTON_REC },
{ ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT },
diff --git a/apps/keymaps/keymap-fuze.c b/apps/keymaps/keymap-fuze.c
index 783446429f..b64549b1ba 100644
--- a/apps/keymaps/keymap-fuze.c
+++ b/apps/keymaps/keymap-fuze.c
@@ -83,6 +83,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_PITCHSCREEN, BUTTON_SELECT|BUTTON_UP, BUTTON_SELECT },
{ ACTION_WPS_ID3SCREEN, BUTTON_SELECT|BUTTON_DOWN, BUTTON_SELECT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_HOME|BUTTON_REL, BUTTON_HOME },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-gigabeat-s.c b/apps/keymaps/keymap-gigabeat-s.c
index 19d27ee136..5c13bc0efc 100644
--- a/apps/keymaps/keymap-gigabeat-s.c
+++ b/apps/keymaps/keymap-gigabeat-s.c
@@ -100,7 +100,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_BACK|BUTTON_UP, BUTTON_BACK },
- { ACTION_WPS_PITCHSCREEN, BUTTON_BACK|BUTTON_DOWN, BUTTON_BACK },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_BACK|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
diff --git a/apps/keymaps/keymap-gigabeat.c b/apps/keymaps/keymap-gigabeat.c
index 3e5f404c71..dbaac6fc49 100644
--- a/apps/keymaps/keymap-gigabeat.c
+++ b/apps/keymaps/keymap-gigabeat.c
@@ -93,7 +93,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_A|BUTTON_UP, BUTTON_A },
- { ACTION_WPS_PITCHSCREEN, BUTTON_A|BUTTON_DOWN, BUTTON_A },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_A|BUTTON_DOWN, BUTTON_NONE },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
diff --git a/apps/keymaps/keymap-h10.c b/apps/keymaps/keymap-h10.c
index ff6c66d629..7fef53d55b 100644
--- a/apps/keymaps/keymap-h10.c
+++ b/apps/keymaps/keymap-h10.c
@@ -87,6 +87,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
{ ACTION_WPS_QUICKSCREEN, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
{ ACTION_WPS_MENU, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_POWER|BUTTON_PLAY, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_PLAY|BUTTON_LEFT, BUTTON_PLAY },
{ ACTION_WPS_ID3SCREEN, BUTTON_PLAY|BUTTON_RIGHT, BUTTON_PLAY },
diff --git a/apps/keymaps/keymap-h1x0_h3x0.c b/apps/keymaps/keymap-h1x0_h3x0.c
index cd18bf0041..10139d6356 100644
--- a/apps/keymaps/keymap-h1x0_h3x0.c
+++ b/apps/keymaps/keymap-h1x0_h3x0.c
@@ -91,7 +91,8 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_WPS_ABRESET, BUTTON_ON|BUTTON_SELECT, BUTTON_ON },
{ 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_VIEW_PLAYLIST, BUTTON_REC|BUTTON_REL, BUTTON_REC },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-hdd1630.c b/apps/keymaps/keymap-hdd1630.c
index 86a6a58797..1d1866b4a3 100644
--- a/apps/keymaps/keymap-hdd1630.c
+++ b/apps/keymaps/keymap-hdd1630.c
@@ -93,7 +93,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_VIEW|BUTTON_UP, BUTTON_VIEW },
- { ACTION_WPS_PITCHSCREEN, BUTTON_VIEW|BUTTON_DOWN, BUTTON_VIEW },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_VIEW|BUTTON_DOWN, BUTTON_VIEW },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
diff --git a/apps/keymaps/keymap-iaudio67.c b/apps/keymaps/keymap-iaudio67.c
index a1eeb08886..6679ede293 100644
--- a/apps/keymaps/keymap-iaudio67.c
+++ b/apps/keymaps/keymap-iaudio67.c
@@ -71,6 +71,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
{ ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOP, BUTTON_STOP, BUTTON_NONE },
LAST_ITEM_IN_LIST
diff --git a/apps/keymaps/keymap-ipod.c b/apps/keymaps/keymap-ipod.c
index 02c562eb45..83f46e6575 100644
--- a/apps/keymaps/keymap-ipod.c
+++ b/apps/keymaps/keymap-ipod.c
@@ -91,6 +91,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_BROWSE, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_SELECT|BUTTON_PLAY, BUTTON_NONE },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
diff --git a/apps/keymaps/keymap-m200.c b/apps/keymaps/keymap-m200.c
index 8318bd42e7..adcbf78206 100644
--- a/apps/keymaps/keymap-m200.c
+++ b/apps/keymaps/keymap-m200.c
@@ -82,6 +82,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_DOWN|BUTTON_REL, BUTTON_DOWN },
{ ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
// { ACTION_WPS_REC, BUTTON_REC|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_REC|BUTTON_REL, BUTTON_REC },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-m3.c b/apps/keymaps/keymap-m3.c
index c5c0796644..5bd0f9d258 100644
--- a/apps/keymaps/keymap-m3.c
+++ b/apps/keymaps/keymap-m3.c
@@ -351,6 +351,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_MODE|BUTTON_REPEAT, BUTTON_MODE },
{ ACTION_WPS_MENU, BUTTON_REC|BUTTON_REL, BUTTON_REC },
{ ACTION_WPS_QUICKSCREEN, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC },
+ { ACTION_WPS_VIEW_PLAYLIST,BUTTON_REC|BUTTON_MODE, BUTTON_REC },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-meizu-m6sl.c b/apps/keymaps/keymap-meizu-m6sl.c
index 0741f632b7..1d7ca42412 100644
--- a/apps/keymaps/keymap-meizu-m6sl.c
+++ b/apps/keymaps/keymap-meizu-m6sl.c
@@ -87,8 +87,8 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
- { ACTION_WPS_PITCHSCREEN, BUTTON_PLAY|BUTTON_UP, BUTTON_PLAY },
- { ACTION_WPS_PITCHSCREEN, BUTTON_PLAY|BUTTON_DOWN, BUTTON_PLAY },
+ { ACTION_WPS_PITCHSCREEN, BUTTON_PLAY|BUTTON_UP, BUTTON_PLAY },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_PLAY|BUTTON_DOWN, BUTTON_PLAY },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
diff --git a/apps/keymaps/keymap-mr100.c b/apps/keymaps/keymap-mr100.c
index 4f178b7793..f7138a506d 100644
--- a/apps/keymaps/keymap-mr100.c
+++ b/apps/keymaps/keymap-mr100.c
@@ -96,6 +96,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_PITCHSCREEN, BUTTON_DISPLAY|BUTTON_UP, BUTTON_DISPLAY },
{ ACTION_WPS_PITCHSCREEN, BUTTON_DISPLAY|BUTTON_DOWN, BUTTON_DISPLAY },
{ ACTION_WPS_ID3SCREEN, BUTTON_DISPLAY|BUTTON_MENU, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_PLAY|BUTTON_ON, BUTTON_PLAY },
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
diff --git a/apps/keymaps/keymap-ondio.c b/apps/keymaps/keymap-ondio.c
index 586fcb5e7b..5e56117298 100644
--- a/apps/keymaps/keymap-ondio.c
+++ b/apps/keymaps/keymap-ondio.c
@@ -67,6 +67,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
/* { ACTION_WPS_MENU, BUTTON_NONE, BUTTON_NONE }, we can't have that */
{ ACTION_STD_KEYLOCK, BUTTON_MENU|BUTTON_DOWN, BUTTON_NONE },
+ /* { ACTION_WPS_VIEW_PLAYLIST,BUTTON_NONE, BUTTON_NONE }, can't have this either */
LAST_ITEM_IN_LIST
};
diff --git a/apps/keymaps/keymap-player.c b/apps/keymaps/keymap-player.c
index 82362ecedb..5fce6be83e 100644
--- a/apps/keymaps/keymap-player.c
+++ b/apps/keymaps/keymap-player.c
@@ -63,6 +63,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
{ ACTION_WPS_ID3SCREEN, BUTTON_MENU|BUTTON_ON, BUTTON_NONE },
{ ACTION_STD_KEYLOCK, BUTTON_MENU|BUTTON_STOP, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST,BUTTON_MENU|BUTTON_ON, BUTTON_NONE },
LAST_ITEM_IN_LIST
};
diff --git a/apps/keymaps/keymap-recorder.c b/apps/keymaps/keymap-recorder.c
index 08c1213fa4..60f7f34b6a 100644
--- a/apps/keymaps/keymap-recorder.c
+++ b/apps/keymaps/keymap-recorder.c
@@ -75,7 +75,8 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_MENU, BUTTON_F1|BUTTON_REL, BUTTON_F1 },
{ ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
- { ACTION_WPS_QUICKSCREEN, BUTTON_F2, BUTTON_NONE },
+ { ACTION_WPS_QUICKSCREEN, BUTTON_F2|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST,BUTTON_F2|BUTTON_REL, BUTTON_F2 },
{ ACTION_WPS_BROWSE, BUTTON_ON|BUTTON_REL, BUTTON_ON },
{ ACTION_WPS_ID3SCREEN, BUTTON_F1|BUTTON_ON, BUTTON_NONE },
{ ACTION_WPS_PITCHSCREEN, BUTTON_ON|BUTTON_UP, BUTTON_ON },
diff --git a/apps/keymaps/keymap-sa9200.c b/apps/keymaps/keymap-sa9200.c
index 098e216a42..06e93b085d 100644
--- a/apps/keymaps/keymap-sa9200.c
+++ b/apps/keymaps/keymap-sa9200.c
@@ -100,6 +100,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
{ ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_WPS_PITCHSCREEN, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
{ ACTION_WPS_ID3SCREEN, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST
diff --git a/apps/keymaps/keymap-touchscreen.c b/apps/keymaps/keymap-touchscreen.c
index b285446546..0d9595cd1d 100644
--- a/apps/keymaps/keymap-touchscreen.c
+++ b/apps/keymaps/keymap-touchscreen.c
@@ -83,6 +83,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_BROWSE, BUTTON_CENTER|BUTTON_REL, BUTTON_CENTER },
{ ACTION_WPS_CONTEXT, BUTTON_CENTER|BUTTON_REPEAT, BUTTON_CENTER },
{ ACTION_WPS_QUICKSCREEN, BUTTON_TOPLEFT|BUTTON_REPEAT, BUTTON_TOPLEFT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_TOPLEFT|BUTTON_REL, BUTTON_TOPLEFT },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM2|CONTEXT_WPS)
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-x5.c b/apps/keymaps/keymap-x5.c
index b6d8f9bb50..40e6b4c225 100644
--- a/apps/keymaps/keymap-x5.c
+++ b/apps/keymaps/keymap-x5.c
@@ -367,6 +367,7 @@ static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
{ ACTION_WPS_MENU, BUTTON_REC|BUTTON_REL, BUTTON_REC },
{ ACTION_WPS_QUICKSCREEN, BUTTON_REC|BUTTON_REPEAT, BUTTON_REC },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_REC|BUTTON_SELECT, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
diff --git a/apps/keymaps/keymap-yh8xx_yh9xx.c b/apps/keymaps/keymap-yh8xx_yh9xx.c
index 2df862134f..4f9a010991 100755
--- a/apps/keymaps/keymap-yh8xx_yh9xx.c
+++ b/apps/keymaps/keymap-yh8xx_yh9xx.c
@@ -89,6 +89,7 @@ static const struct button_mapping button_context_wps[] = {
/* these match context_standard */
{ ACTION_WPS_MENU, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT },
+ { ACTION_WPS_VIEW_PLAYLIST, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
{ ACTION_WPS_CONTEXT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT },
{ ACTION_WPS_QUICKSCREEN, BUTTON_FFWD|BUTTON_RIGHT, BUTTON_FFWD },
diff --git a/apps/recorder/jpeg_load.c b/apps/recorder/jpeg_load.c
index 65ddd2a9e4..ec1143f279 100644
--- a/apps/recorder/jpeg_load.c
+++ b/apps/recorder/jpeg_load.c
@@ -31,7 +31,7 @@
#include "debug.h"
#include "jpeg_load.h"
/*#define JPEG_BS_DEBUG*/
-#define ROCKBOX_DEBUG_JPEG
+//#define ROCKBOX_DEBUG_JPEG
/* for portability of below JPEG code */
#define MEMSET(p,v,c) memset(p,v,c)
#define MEMCPY(d,s,c) memcpy(d,s,c)
diff --git a/firmware/target/arm/samsung/adc-target.h b/firmware/target/arm/samsung/adc-target.h
index e84fc23ef8..a95bcd2e99 100644
--- a/firmware/target/arm/samsung/adc-target.h
+++ b/firmware/target/arm/samsung/adc-target.h
@@ -28,8 +28,15 @@
#define ADC_CHANNEL_2 2
#define ADC_CHANNEL_3 3
+#define ADC_BATTERY ADC_CHANNEL_0
+/*
+#define ADC_UNKNOWN_1 1
+#define ADC_REMOTE 2
+#define ADC_SCROLLPAD 3
+*/
#define ADC_UNREG_POWER ADC_BATTERY /* For compatibility */
+
/* Force a scan now */
unsigned short adc_scan(int channel);
diff --git a/wps/cabbiev2.240x400x16.wps b/wps/cabbiev2.240x400x16.wps
index 97f9696996..9d45643074 100644
--- a/wps/cabbiev2.240x400x16.wps
+++ b/wps/cabbiev2.240x400x16.wps
@@ -8,6 +8,7 @@
%T|206|372|24|24|play|
%T|182|372|18|92|repmode|
%T|139|372|37|23|shuffle|
+%T|90|238|60|20|playlist|
%X|wpsbackdrop-240x400x16.bmp|
%xl|A|lock-240x320x16.bmp|11|372|2|
diff --git a/wps/cabbiev2.320x240x16.mrobe500.wps b/wps/cabbiev2.320x240x16.mrobe500.wps
index a18babd0f4..89362c5eb9 100644
--- a/wps/cabbiev2.320x240x16.mrobe500.wps
+++ b/wps/cabbiev2.320x240x16.mrobe500.wps
@@ -49,6 +49,8 @@
%s%ac%Ia
%V|0|180|-|20|1|-|-|
+#touch the X of X regions to let the playlist viewer pop up
+%T|130|0|60|20|playlist|
%al %pc%ac%pp of %pe%ar%pr
#viewport for the touch icons