summaryrefslogtreecommitdiff
path: root/apps/plugins/viewer.c
diff options
context:
space:
mode:
authorHristo Kovachev <bger@rockbox.org>2006-04-04 12:04:15 +0000
committerHristo Kovachev <bger@rockbox.org>2006-04-04 12:04:15 +0000
commite16339e07ba60fd16f511ef9b1c730d5463af4e8 (patch)
tree0df90c2f3b4fbdce45bcae933c512a9c87fe140d /apps/plugins/viewer.c
parent4dc76573f07d6fefc98760b198519f1160dc8506 (diff)
downloadrockbox-e16339e07ba60fd16f511ef9b1c730d5463af4e8.tar.gz
rockbox-e16339e07ba60fd16f511ef9b1c730d5463af4e8.zip
Patch #5011 by Peter K. Cawley: added playback_control menu in text viewer plugin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9488 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/viewer.c')
-rw-r--r--apps/plugins/viewer.c63
1 files changed, 47 insertions, 16 deletions
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index f8e72be445..8271d1f7f9 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -19,6 +19,7 @@
19 ****************************************************************************/ 19 ****************************************************************************/
20#include "plugin.h" 20#include "plugin.h"
21#include <ctype.h> 21#include <ctype.h>
22#include "playback_control.h"
22 23
23PLUGIN_HEADER 24PLUGIN_HEADER
24 25
@@ -60,7 +61,7 @@ PLUGIN_HEADER
60 61
61/* Recorder keys */ 62/* Recorder keys */
62#if CONFIG_KEYPAD == RECORDER_PAD 63#if CONFIG_KEYPAD == RECORDER_PAD
63#define VIEWER_QUIT BUTTON_OFF 64#define VIEWER_MENU BUTTON_OFF
64#define VIEWER_PAGE_UP BUTTON_UP 65#define VIEWER_PAGE_UP BUTTON_UP
65#define VIEWER_PAGE_DOWN BUTTON_DOWN 66#define VIEWER_PAGE_DOWN BUTTON_DOWN
66#define VIEWER_SCREEN_LEFT BUTTON_LEFT 67#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -77,7 +78,7 @@ PLUGIN_HEADER
77 78
78/* Ondio keys */ 79/* Ondio keys */
79#elif CONFIG_KEYPAD == ONDIO_PAD 80#elif CONFIG_KEYPAD == ONDIO_PAD
80#define VIEWER_QUIT BUTTON_OFF 81#define VIEWER_MENU BUTTON_OFF
81#define VIEWER_PAGE_UP BUTTON_UP 82#define VIEWER_PAGE_UP BUTTON_UP
82#define VIEWER_PAGE_DOWN BUTTON_DOWN 83#define VIEWER_PAGE_DOWN BUTTON_DOWN
83#define VIEWER_SCREEN_LEFT BUTTON_LEFT 84#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -90,7 +91,7 @@ PLUGIN_HEADER
90 91
91/* Player keys */ 92/* Player keys */
92#elif CONFIG_KEYPAD == PLAYER_PAD 93#elif CONFIG_KEYPAD == PLAYER_PAD
93#define VIEWER_QUIT BUTTON_STOP 94#define VIEWER_MENU BUTTON_STOP
94#define VIEWER_PAGE_UP BUTTON_LEFT 95#define VIEWER_PAGE_UP BUTTON_LEFT
95#define VIEWER_PAGE_DOWN BUTTON_RIGHT 96#define VIEWER_PAGE_DOWN BUTTON_RIGHT
96#define VIEWER_SCREEN_LEFT (BUTTON_MENU | BUTTON_LEFT) 97#define VIEWER_SCREEN_LEFT (BUTTON_MENU | BUTTON_LEFT)
@@ -102,7 +103,7 @@ PLUGIN_HEADER
102/* iRiver H1x0 && H3x0 keys */ 103/* iRiver H1x0 && H3x0 keys */
103#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 104#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
104 (CONFIG_KEYPAD == IRIVER_H300_PAD) 105 (CONFIG_KEYPAD == IRIVER_H300_PAD)
105#define VIEWER_QUIT BUTTON_OFF 106#define VIEWER_MENU BUTTON_OFF
106#define VIEWER_PAGE_UP BUTTON_UP 107#define VIEWER_PAGE_UP BUTTON_UP
107#define VIEWER_PAGE_DOWN BUTTON_DOWN 108#define VIEWER_PAGE_DOWN BUTTON_DOWN
108#define VIEWER_SCREEN_LEFT BUTTON_LEFT 109#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -120,7 +121,7 @@ PLUGIN_HEADER
120/* iPods with the 4G pad */ 121/* iPods with the 4G pad */
121#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 122#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
122 (CONFIG_KEYPAD == IPOD_3G_PAD) 123 (CONFIG_KEYPAD == IPOD_3G_PAD)
123#define VIEWER_QUIT BUTTON_MENU 124#define VIEWER_MENU BUTTON_MENU
124#define VIEWER_PAGE_UP BUTTON_SCROLL_BACK 125#define VIEWER_PAGE_UP BUTTON_SCROLL_BACK
125#define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD 126#define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD
126#define VIEWER_SCREEN_LEFT BUTTON_LEFT 127#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -133,7 +134,7 @@ PLUGIN_HEADER
133 134
134/* iFP7xx keys */ 135/* iFP7xx keys */
135#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 136#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
136#define VIEWER_QUIT BUTTON_PLAY 137#define VIEWER_MENU BUTTON_PLAY
137#define VIEWER_PAGE_UP BUTTON_UP 138#define VIEWER_PAGE_UP BUTTON_UP
138#define VIEWER_PAGE_DOWN BUTTON_DOWN 139#define VIEWER_PAGE_DOWN BUTTON_DOWN
139#define VIEWER_SCREEN_LEFT BUTTON_LEFT 140#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -144,7 +145,7 @@ PLUGIN_HEADER
144 145
145/* iAudio X5 keys */ 146/* iAudio X5 keys */
146#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 147#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
147#define VIEWER_QUIT BUTTON_POWER 148#define VIEWER_MENU BUTTON_POWER
148#define VIEWER_PAGE_UP BUTTON_UP 149#define VIEWER_PAGE_UP BUTTON_UP
149#define VIEWER_PAGE_DOWN BUTTON_DOWN 150#define VIEWER_PAGE_DOWN BUTTON_DOWN
150#define VIEWER_SCREEN_LEFT BUTTON_LEFT 151#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -155,7 +156,7 @@ PLUGIN_HEADER
155 156
156/* iAudio X5 keys */ 157/* iAudio X5 keys */
157#elif CONFIG_KEYPAD == GIGABEAT_PAD 158#elif CONFIG_KEYPAD == GIGABEAT_PAD
158#define VIEWER_QUIT BUTTON_A 159#define VIEWER_MENU BUTTON_A
159#define VIEWER_PAGE_UP BUTTON_UP 160#define VIEWER_PAGE_UP BUTTON_UP
160#define VIEWER_PAGE_DOWN BUTTON_DOWN 161#define VIEWER_PAGE_DOWN BUTTON_DOWN
161#define VIEWER_SCREEN_LEFT BUTTON_LEFT 162#define VIEWER_SCREEN_LEFT BUTTON_LEFT
@@ -1057,11 +1058,42 @@ static int col_limit(int col)
1057 return col; 1058 return col;
1058} 1059}
1059 1060
1061
1062bool exit=false;
1063int col = 0;
1064
1065static void show_menu(void)
1066 {
1067 int m;
1068 int result;
1069 static const struct menu_item items[] = {
1070 {"Quit", NULL },
1071 {"Show Playback menu", NULL },
1072 {"Return", NULL },
1073 };
1074 m = rb->menu_init(items, sizeof(items) / sizeof(*items), NULL, NULL, NULL, NULL);
1075 result=rb->menu_show(m);
1076 switch (result)
1077 {
1078 case 0:
1079 viewer_exit(NULL);
1080 exit = true;
1081 break;
1082 case 1:
1083 playback_control(rb);
1084 break;
1085 case 2:
1086 rb->menu_exit(m);
1087 viewer_draw(col);
1088 break;
1089 }
1090 viewer_draw(col);
1091 }
1092
1060enum plugin_status plugin_start(struct plugin_api* api, void* file) 1093enum plugin_status plugin_start(struct plugin_api* api, void* file)
1061{ 1094{
1062 bool exit=false; 1095
1063 int button; 1096 int button;
1064 int col = 0;
1065 int i; 1097 int i;
1066 int ok; 1098 int ok;
1067 1099
@@ -1082,14 +1114,12 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
1082 1114
1083 viewer_draw(col); 1115 viewer_draw(col);
1084 1116
1085 while (!exit) { 1117 while (!exit) {
1086 button = rb->button_get(true); 1118 button = rb->button_get(true);
1087 switch (button) { 1119 switch (button) {
1088 1120 case VIEWER_MENU:
1089 case VIEWER_QUIT: 1121 show_menu();
1090 viewer_exit(NULL); 1122 break;
1091 exit = true;
1092 break;
1093 1123
1094 case VIEWER_MODE_WRAP: 1124 case VIEWER_MODE_WRAP:
1095 /* Word-wrap mode: WRAP or CHOP */ 1125 /* Word-wrap mode: WRAP or CHOP */
@@ -1297,3 +1327,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file)
1297 } 1327 }
1298 return PLUGIN_OK; 1328 return PLUGIN_OK;
1299} 1329}
1330