From e50cc0e3d760d4fdb99f971070a6943ee15a9a98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= Date: Mon, 14 Mar 2011 12:25:48 +0000 Subject: Listen to and follow external Android volume changes. (Based on FS#11914 by Maurus Cuelenaere) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29586 a1c6a512-1295-4272-9138-f99709370657 --- apps/misc.c | 9 +++++++++ apps/playback.c | 2 ++ apps/settings.c | 2 ++ 3 files changed, 13 insertions(+) (limited to 'apps') diff --git a/apps/misc.c b/apps/misc.c index fa34c21..995d656 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -636,6 +636,15 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame resume = false; return SYS_CALL_HUNG_UP; #endif +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(PLATFORM_HAS_VOLUME_CHANGE) + case SYS_VOLUME_CHANGED: + { + int volume = hosted_get_volume(); + if (global_settings.volume != volume) + global_settings.volume = volume; + return 0; + } +#endif #ifdef HAVE_MULTIMEDIA_KEYS /* multimedia keys on keyboards, headsets */ case BUTTON_MULTIMEDIA_PLAYPAUSE: diff --git a/apps/playback.c b/apps/playback.c index b72ed8a..fb79c4d 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1834,7 +1834,9 @@ static void audio_play_start(size_t offset) ci.seek_time = 0; wps_offset = 0; +#ifndef PLAFORM_HAS_VOLUME_CHANGE sound_set_volume(global_settings.volume); +#endif track_widx = track_ridx = 0; buf_set_base_handle(-1); diff --git a/apps/settings.c b/apps/settings.c index e9458dc..623bc5b 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -726,7 +726,9 @@ void sound_settings_apply(void) sound_set(SOUND_TREBLE, global_settings.treble); #endif sound_set(SOUND_BALANCE, global_settings.balance); +#ifndef PLATFORM_HAS_VOLUME_CHANGE sound_set(SOUND_VOLUME, global_settings.volume); +#endif sound_set(SOUND_CHANNELS, global_settings.channel_config); sound_set(SOUND_STEREO_WIDTH, global_settings.stereo_width); #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) -- cgit v1.1