diff options
author | Brandon Low <lostlogic@rockbox.org> | 2008-03-18 07:01:23 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2008-03-18 07:01:23 +0000 |
commit | 7b1de20544bd3bb0fdbd2d998c9a49327b5aa0c4 (patch) | |
tree | 7c18df6b21d60ccb8a4b2ce41a49fad3b33b5a2d /apps | |
parent | 6d8b8274728ecfa7519f0ead2802514f456ae41d (diff) | |
download | rockbox-7b1de20544bd3bb0fdbd2d998c9a49327b5aa0c4.tar.gz rockbox-7b1de20544bd3bb0fdbd2d998c9a49327b5aa0c4.zip |
Fix FS 8753, JdGordon started it, I finished it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16692 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/misc.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/apps/misc.c b/apps/misc.c index b6b0a79b06..6f34e50a54 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -862,24 +862,35 @@ void car_adapter_mode_init(void) #ifdef HAVE_HEADPHONE_DETECTION static void unplug_change(bool inserted) { + static bool headphone_caused_pause = false; + if (global_settings.unplug_mode) { + int audio_stat = audio_status(); if (inserted) { - if ( global_settings.unplug_mode > 1 ) + if ((audio_stat & AUDIO_STATUS_PLAY) && + headphone_caused_pause && + global_settings.unplug_mode > 1 ) audio_resume(); backlight_on(); + headphone_caused_pause = false; } else { - audio_pause(); - - if (global_settings.unplug_rw) + if ((audio_stat & AUDIO_STATUS_PLAY) && + !(audio_stat & AUDIO_STATUS_PAUSE)) { - if ( audio_current_track()->elapsed > - (unsigned long)(global_settings.unplug_rw*1000)) - audio_ff_rewind(audio_current_track()->elapsed - - (global_settings.unplug_rw*1000)); - else - audio_ff_rewind(0); + headphone_caused_pause = true; + audio_pause(); + + if (global_settings.unplug_rw) + { + if (audio_current_track()->elapsed > + (unsigned long)(global_settings.unplug_rw*1000)) + audio_ff_rewind(audio_current_track()->elapsed - + (global_settings.unplug_rw*1000)); + else + audio_ff_rewind(0); + } } } } |