diff options
author | Hristo Kovachev <bger@rockbox.org> | 2006-04-04 12:04:15 +0000 |
---|---|---|
committer | Hristo Kovachev <bger@rockbox.org> | 2006-04-04 12:04:15 +0000 |
commit | e16339e07ba60fd16f511ef9b1c730d5463af4e8 (patch) | |
tree | 0df90c2f3b4fbdce45bcae933c512a9c87fe140d /apps/plugins/viewer.c | |
parent | 4dc76573f07d6fefc98760b198519f1160dc8506 (diff) | |
download | rockbox-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.c | 63 |
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 | ||
23 | PLUGIN_HEADER | 24 | PLUGIN_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 | |||
1062 | bool exit=false; | ||
1063 | int col = 0; | ||
1064 | |||
1065 | static 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 | |||
1060 | enum plugin_status plugin_start(struct plugin_api* api, void* file) | 1093 | enum 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 | |||