diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2007-10-08 09:09:40 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2007-10-08 09:09:40 +0000 |
commit | 16301880a147cee50dc49fc1890feaf28bb4edb1 (patch) | |
tree | d1322206a658135c71b7d726b1c6d58ca0133bdf | |
parent | 46b7028f918101df9de81d698ad2c1bb09060bd3 (diff) | |
download | rockbox-16301880a147cee50dc49fc1890feaf28bb4edb1.tar.gz rockbox-16301880a147cee50dc49fc1890feaf28bb4edb1.zip |
Make sure that audio_resume() is not called in interrupt context when car adapter mode is enabled. Fixes FS#7304.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15034 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/misc.c | 7 | ||||
-rw-r--r-- | firmware/export/kernel.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/apps/misc.c b/apps/misc.c index 3d361f4ccb..3a47d2f1c9 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -800,6 +800,7 @@ static void car_adapter_mode_processing(bool inserted) | |||
800 | else | 800 | else |
801 | audio_pause(); | 801 | audio_pause(); |
802 | } | 802 | } |
803 | waiting_to_resume_play = false; | ||
803 | } | 804 | } |
804 | } | 805 | } |
805 | } | 806 | } |
@@ -812,7 +813,7 @@ static void car_adapter_tick(void) | |||
812 | { | 813 | { |
813 | if (audio_status() & AUDIO_STATUS_PAUSE) | 814 | if (audio_status() & AUDIO_STATUS_PAUSE) |
814 | { | 815 | { |
815 | audio_resume(); | 816 | queue_broadcast(SYS_CAR_ADAPTER_RESUME, 0); |
816 | } | 817 | } |
817 | waiting_to_resume_play = false; | 818 | waiting_to_resume_play = false; |
818 | } | 819 | } |
@@ -892,6 +893,10 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame | |||
892 | case SYS_CHARGER_DISCONNECTED: | 893 | case SYS_CHARGER_DISCONNECTED: |
893 | car_adapter_mode_processing(false); | 894 | car_adapter_mode_processing(false); |
894 | return SYS_CHARGER_DISCONNECTED; | 895 | return SYS_CHARGER_DISCONNECTED; |
896 | |||
897 | case SYS_CAR_ADAPTER_RESUME: | ||
898 | audio_resume(); | ||
899 | return SYS_CAR_ADAPTER_RESUME; | ||
895 | #endif | 900 | #endif |
896 | #ifdef HAVE_HEADPHONE_DETECTION | 901 | #ifdef HAVE_HEADPHONE_DETECTION |
897 | case SYS_PHONE_PLUGGED: | 902 | case SYS_PHONE_PLUGGED: |
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h index 8d7ca95184..3d70e49a4c 100644 --- a/firmware/export/kernel.h +++ b/firmware/export/kernel.h | |||
@@ -70,6 +70,7 @@ | |||
70 | #define SYS_REMOTE_PLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 4) | 70 | #define SYS_REMOTE_PLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 4) |
71 | #define SYS_REMOTE_UNPLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 5) | 71 | #define SYS_REMOTE_UNPLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 5) |
72 | #define SYS_SCREENDUMP MAKE_SYS_EVENT(SYS_EVENT_CLS_MISC, 0) | 72 | #define SYS_SCREENDUMP MAKE_SYS_EVENT(SYS_EVENT_CLS_MISC, 0) |
73 | #define SYS_CAR_ADAPTER_RESUME MAKE_SYS_EVENT(SYS_EVENT_CLS_MISC, 1) | ||
73 | 74 | ||
74 | struct event | 75 | struct event |
75 | { | 76 | { |