diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2006-09-26 10:03:56 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2006-09-26 10:03:56 +0000 |
commit | 537c7546f946d266e55fdbce03558352a3342908 (patch) | |
tree | 9e594c9d40ec54047fa858472f737bc4d7b7d406 /apps/misc.c | |
parent | 9f960e405f72e1f624797547e1ad8e9584206118 (diff) | |
download | rockbox-537c7546f946d266e55fdbce03558352a3342908.tar.gz rockbox-537c7546f946d266e55fdbce03558352a3342908.zip |
Patch #4899 by Robert Keevil - Automatic pause on iPod when removing the headphones
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11057 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
-rw-r--r-- | apps/misc.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/apps/misc.c b/apps/misc.c index e95c5e5650..806f5ff63e 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -580,6 +580,33 @@ void car_adapter_mode_init(void) | |||
580 | } | 580 | } |
581 | #endif | 581 | #endif |
582 | 582 | ||
583 | #ifdef HAVE_HEADPHONE_DETECTION | ||
584 | void unplug_change(bool inserted) | ||
585 | { | ||
586 | if (global_settings.unplug_mode) | ||
587 | { | ||
588 | if (inserted) | ||
589 | { | ||
590 | if ( global_settings.unplug_mode > 1 ) | ||
591 | audio_resume(); | ||
592 | backlight_on(); | ||
593 | } else { | ||
594 | audio_pause(); | ||
595 | |||
596 | if (global_settings.unplug_rw) | ||
597 | { | ||
598 | if ( audio_current_track()->elapsed > | ||
599 | (unsigned long)(global_settings.unplug_rw*1000)) | ||
600 | audio_ff_rewind(audio_current_track()->elapsed - | ||
601 | (global_settings.unplug_rw*1000)); | ||
602 | else | ||
603 | audio_ff_rewind(0); | ||
604 | } | ||
605 | } | ||
606 | } | ||
607 | } | ||
608 | #endif | ||
609 | |||
583 | long default_event_handler_ex(long event, void (*callback)(void *), void *parameter) | 610 | long default_event_handler_ex(long event, void (*callback)(void *), void *parameter) |
584 | { | 611 | { |
585 | switch(event) | 612 | switch(event) |
@@ -609,6 +636,15 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame | |||
609 | car_adapter_mode_processing(false); | 636 | car_adapter_mode_processing(false); |
610 | return SYS_CHARGER_DISCONNECTED; | 637 | return SYS_CHARGER_DISCONNECTED; |
611 | #endif | 638 | #endif |
639 | #ifdef HAVE_HEADPHONE_DETECTION | ||
640 | case SYS_PHONE_PLUGGED: | ||
641 | unplug_change(true); | ||
642 | return SYS_PHONE_PLUGGED; | ||
643 | |||
644 | case SYS_PHONE_UNPLUGGED: | ||
645 | unplug_change(false); | ||
646 | return SYS_PHONE_UNPLUGGED; | ||
647 | #endif | ||
612 | } | 648 | } |
613 | return 0; | 649 | return 0; |
614 | } | 650 | } |