summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2007-03-18 17:04:44 +0000
committerDave Chapman <dave@dchapman.com>2007-03-18 17:04:44 +0000
commitf1bf798b8aa8af2b366060aa6fee81beafdaf3bb (patch)
tree84d79004df0244662414eced2c1aa104190b4859 /apps
parent2cf98689cfa101e870670bda6e19ef1ccb790687 (diff)
downloadrockbox-f1bf798b8aa8af2b366060aa6fee81beafdaf3bb.tar.gz
rockbox-f1bf798b8aa8af2b366060aa6fee81beafdaf3bb.zip
Volume control for mpegplayer - based on FS #6814 by Jacob Gardner and Pascal Briehl, modified by me (blame me for any problems). Mapped to the same buttons that are used to control volume in the WPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12834 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 96866c397d..cfb070d1ec 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -117,31 +117,45 @@ PLUGIN_IRAM_DECLARE
117#define MPEG_MENU BUTTON_MODE 117#define MPEG_MENU BUTTON_MODE
118#define MPEG_STOP BUTTON_OFF 118#define MPEG_STOP BUTTON_OFF
119#define MPEG_PAUSE BUTTON_ON 119#define MPEG_PAUSE BUTTON_ON
120#define MPEG_VOLDOWN BUTTON_DOWN
121#define MPEG_VOLUP BUTTON_UP
120 122
121#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) 123#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
122#define MPEG_MENU BUTTON_MENU 124#define MPEG_MENU BUTTON_MENU
123#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL) 125#define MPEG_PAUSE (BUTTON_PLAY | BUTTON_REL)
124#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT) 126#define MPEG_STOP (BUTTON_PLAY | BUTTON_REPEAT)
127#define MPEG_VOLDOWN BUTTON_SCROLL_BACK
128#define MPEG_VOLUP BUTTON_SCROLL_FWD
125 129
126#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD 130#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
127#define MPEG_MENU (BUTTON_REC | BUTTON_REL) 131#define MPEG_MENU (BUTTON_REC | BUTTON_REL)
128#define MPEG_STOP BUTTON_POWER 132#define MPEG_STOP BUTTON_POWER
129#define MPEG_PAUSE BUTTON_PLAY 133#define MPEG_PAUSE BUTTON_PLAY
134#define MPEG_VOLDOWN BUTTON_DOWN
135#define MPEG_VOLUP BUTTON_UP
130 136
131#elif CONFIG_KEYPAD == GIGABEAT_PAD 137#elif CONFIG_KEYPAD == GIGABEAT_PAD
132#define MPEG_MENU BUTTON_MENU 138#define MPEG_MENU BUTTON_MENU
133#define MPEG_STOP BUTTON_A 139#define MPEG_STOP BUTTON_A
134#define MPEG_PAUSE BUTTON_SELECT 140#define MPEG_PAUSE BUTTON_SELECT
141#define MPEG_VOLDOWN BUTTON_DOWN
142#define MPEG_VOLUP BUTTON_UP
143#define MPEG_VOLDOWN2 BUTTON_VOL_DOWN
144#define MPEG_VOLUP2 BUTTON_VOL_UP
135 145
136#elif CONFIG_KEYPAD == IRIVER_H10_PAD 146#elif CONFIG_KEYPAD == IRIVER_H10_PAD
137#define MPEG_MENU (BUTTON_REW | BUTTON_REL) 147#define MPEG_MENU (BUTTON_REW | BUTTON_REL)
138#define MPEG_STOP BUTTON_POWER 148#define MPEG_STOP BUTTON_POWER
139#define MPEG_PAUSE BUTTON_PLAY 149#define MPEG_PAUSE BUTTON_PLAY
150#define MPEG_VOLDOWN BUTTON_SCROLL_DOWN
151#define MPEG_VOLUP BUTTON_SCROLL_UP
140 152
141#elif CONFIG_KEYPAD == SANSA_E200_PAD 153#elif CONFIG_KEYPAD == SANSA_E200_PAD
142#define MPEG_MENU BUTTON_SELECT 154#define MPEG_MENU BUTTON_SELECT
143#define MPEG_STOP BUTTON_POWER 155#define MPEG_STOP BUTTON_POWER
144#define MPEG_PAUSE BUTTON_UP 156#define MPEG_PAUSE BUTTON_UP
157#define MPEG_VOLDOWN BUTTON_SCROLL_UP
158#define MPEG_VOLUP BUTTON_SCROLL_DOWN
145 159
146#else 160#else
147#error MPEGPLAYER: Unsupported keypad 161#error MPEGPLAYER: Unsupported keypad
@@ -224,10 +238,43 @@ static void pause_timer(void)
224static void button_loop(void) 238static void button_loop(void)
225{ 239{
226 bool result; 240 bool result;
241 int vol, minvol, maxvol;
227 int button = rb->button_get(false); 242 int button = rb->button_get(false);
228 243
229 switch (button) 244 switch (button)
230 { 245 {
246 case MPEG_VOLUP:
247 case MPEG_VOLUP|BUTTON_REPEAT:
248#ifdef MPEG_VOLUP2
249 case MPEG_VOLUP2:
250 case MPEG_VOLUP2|BUTTON_REPEAT:
251#endif
252 vol = rb->global_settings->volume;
253 maxvol = rb->sound_max(SOUND_VOLUME);
254
255 if (vol < maxvol) {
256 vol++;
257 rb->sound_set(SOUND_VOLUME, vol);
258 rb->global_settings->volume = vol;
259 }
260 break;
261
262 case MPEG_VOLDOWN:
263 case MPEG_VOLDOWN|BUTTON_REPEAT:
264#ifdef MPEG_VOLDOWN2
265 case MPEG_VOLDOWN2:
266 case MPEG_VOLDOWN2|BUTTON_REPEAT:
267#endif
268 vol = rb->global_settings->volume;
269 minvol = rb->sound_min(SOUND_VOLUME);
270
271 if (vol > minvol) {
272 vol--;
273 rb->sound_set(SOUND_VOLUME, vol);
274 rb->global_settings->volume = vol;
275 }
276 break;
277
231 case MPEG_MENU: 278 case MPEG_MENU:
232 videostatus=PLEASE_PAUSE; 279 videostatus=PLEASE_PAUSE;
233 rb->pcm_play_pause(false); 280 rb->pcm_play_pause(false);