diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2005-08-20 18:55:15 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-08-20 18:55:15 +0000 |
commit | e3dc61e0b9393d263240a716e2bf5ac63ebff80c (patch) | |
tree | cfa8e3f5c0ba9468e8a749f8ba38e8e8ea49cc1b /apps | |
parent | fa0cecf5a9fe309e445f6146c2c49c3205ebc85e (diff) | |
download | rockbox-e3dc61e0b9393d263240a716e2bf5ac63ebff80c.tar.gz rockbox-e3dc61e0b9393d263240a716e2bf5ac63ebff80c.zip |
Preparations to fix the usb mode (something is still preventing it from
working).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7363 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/playback.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/playback.c b/apps/playback.c index 8829757949..e340938c0c 100644 --- a/apps/playback.c +++ b/apps/playback.c | |||
@@ -1454,7 +1454,9 @@ bool codec_request_next_track_callback(void) | |||
1454 | { | 1454 | { |
1455 | if (current_codec == CODEC_IDX_VOICE) { | 1455 | if (current_codec == CODEC_IDX_VOICE) { |
1456 | voice_remaining = 0; | 1456 | voice_remaining = 0; |
1457 | return !ci_voice.stop_codec; | 1457 | /* Terminate the codec if they are messages waiting on the queue or |
1458 | core has been requested the codec to be terminated. */ | ||
1459 | return !ci_voice.stop_codec && queue_empty(&voice_codec_queue); | ||
1458 | } | 1460 | } |
1459 | 1461 | ||
1460 | if (ci.stop_codec || !playing) | 1462 | if (ci.stop_codec || !playing) |
@@ -1679,7 +1681,7 @@ void audio_thread(void) | |||
1679 | 1681 | ||
1680 | #ifndef SIMULATOR | 1682 | #ifndef SIMULATOR |
1681 | case SYS_USB_CONNECTED: | 1683 | case SYS_USB_CONNECTED: |
1682 | logf("USB Connection"); | 1684 | logf("USB: Audio core"); |
1683 | audio_stop_playback(); | 1685 | audio_stop_playback(); |
1684 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | 1686 | usb_acknowledge(SYS_USB_CONNECTED_ACK); |
1685 | usb_wait_for_disconnect(&audio_queue); | 1687 | usb_wait_for_disconnect(&audio_queue); |
@@ -1737,6 +1739,12 @@ void codec_thread(void) | |||
1737 | 1739 | ||
1738 | #ifndef SIMULATOR | 1740 | #ifndef SIMULATOR |
1739 | case SYS_USB_CONNECTED: | 1741 | case SYS_USB_CONNECTED: |
1742 | while (voice_codec_loaded) { | ||
1743 | if (current_codec != CODEC_IDX_VOICE) | ||
1744 | swap_codec(); | ||
1745 | sleep(1); | ||
1746 | } | ||
1747 | logf("USB: Audio codec"); | ||
1740 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | 1748 | usb_acknowledge(SYS_USB_CONNECTED_ACK); |
1741 | usb_wait_for_disconnect(&codec_queue); | 1749 | usb_wait_for_disconnect(&codec_queue); |
1742 | break ; | 1750 | break ; |
@@ -1816,6 +1824,7 @@ void voice_codec_thread(void) | |||
1816 | 1824 | ||
1817 | #ifndef SIMULATOR | 1825 | #ifndef SIMULATOR |
1818 | case SYS_USB_CONNECTED: | 1826 | case SYS_USB_CONNECTED: |
1827 | logf("USB: Voice codec"); | ||
1819 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | 1828 | usb_acknowledge(SYS_USB_CONNECTED_ACK); |
1820 | usb_wait_for_disconnect(&voice_codec_queue); | 1829 | usb_wait_for_disconnect(&voice_codec_queue); |
1821 | break ; | 1830 | break ; |