summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c36
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
584void 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
583long default_event_handler_ex(long event, void (*callback)(void *), void *parameter) 610long 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}