From 537c7546f946d266e55fdbce03558352a3342908 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Tue, 26 Sep 2006 10:03:56 +0000 Subject: 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 --- apps/misc.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'apps/misc.c') 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) } #endif +#ifdef HAVE_HEADPHONE_DETECTION +void unplug_change(bool inserted) +{ + if (global_settings.unplug_mode) + { + if (inserted) + { + if ( global_settings.unplug_mode > 1 ) + audio_resume(); + backlight_on(); + } else { + 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); + } + } + } +} +#endif + long default_event_handler_ex(long event, void (*callback)(void *), void *parameter) { switch(event) @@ -608,6 +635,15 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame case SYS_CHARGER_DISCONNECTED: car_adapter_mode_processing(false); return SYS_CHARGER_DISCONNECTED; +#endif +#ifdef HAVE_HEADPHONE_DETECTION + case SYS_PHONE_PLUGGED: + unplug_change(true); + return SYS_PHONE_PLUGGED; + + case SYS_PHONE_UNPLUGGED: + unplug_change(false); + return SYS_PHONE_UNPLUGGED; #endif } return 0; -- cgit v1.2.3