diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2006-09-17 18:52:31 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2006-09-17 18:52:31 +0000 |
commit | 9d56f2d2cf8889465fdf95ffefce195a06024f83 (patch) | |
tree | 36efe64d97c5ef76563cbc783e1e02c22742af42 /apps | |
parent | d8f32834d697d32efb7736117190ad9bbf120669 (diff) | |
download | rockbox-9d56f2d2cf8889465fdf95ffefce195a06024f83.tar.gz rockbox-9d56f2d2cf8889465fdf95ffefce195a06024f83.zip |
SWCODEC recording hang fixed. Fixed other trouble spots for codec swapping when playing. Removed call to audio_set_recording_options from fm_recording_settings on SWCODEC (Not proper to do ! My bad.).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10978 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/playback.c | 17 | ||||
-rw-r--r-- | apps/recorder/radio.c | 6 |
2 files changed, 8 insertions, 15 deletions
diff --git a/apps/playback.c b/apps/playback.c index d5f2b9024e..e4806507ef 100644 --- a/apps/playback.c +++ b/apps/playback.c | |||
@@ -951,19 +951,13 @@ static void* voice_request_buffer_callback(size_t *realsize, size_t reqsize) | |||
951 | case Q_AUDIO_PLAY: | 951 | case Q_AUDIO_PLAY: |
952 | LOGFQUEUE("voice < Q_AUDIO_PLAY"); | 952 | LOGFQUEUE("voice < Q_AUDIO_PLAY"); |
953 | if (playing) | 953 | if (playing) |
954 | { | 954 | swap_codec(); |
955 | if (audio_codec_loaded) | ||
956 | swap_codec(); | ||
957 | else | ||
958 | yield(); | ||
959 | } | ||
960 | break; | 955 | break; |
961 | 956 | ||
962 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) | 957 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) |
963 | case Q_ENCODER_RECORD: | 958 | case Q_ENCODER_RECORD: |
964 | LOGFQUEUE("voice < Q_ENCODER_RECORD"); | 959 | LOGFQUEUE("voice < Q_ENCODER_RECORD"); |
965 | if (audio_codec_loaded) | 960 | swap_codec(); |
966 | swap_codec(); | ||
967 | break; | 961 | break; |
968 | #endif | 962 | #endif |
969 | 963 | ||
@@ -1747,7 +1741,8 @@ static void codec_thread(void) | |||
1747 | LOGFQUEUE("codec < Q_CODEC_LOAD_DISK"); | 1741 | LOGFQUEUE("codec < Q_CODEC_LOAD_DISK"); |
1748 | audio_codec_loaded = true; | 1742 | audio_codec_loaded = true; |
1749 | #ifdef PLAYBACK_VOICE | 1743 | #ifdef PLAYBACK_VOICE |
1750 | if (voice_codec_loaded) | 1744 | /* Don't sent messages to voice codec if it's not current */ |
1745 | if (voice_codec_loaded && current_codec == CODEC_IDX_VOICE) | ||
1751 | { | 1746 | { |
1752 | LOGFQUEUE("codec > voice Q_AUDIO_PLAY"); | 1747 | LOGFQUEUE("codec > voice Q_AUDIO_PLAY"); |
1753 | queue_post(&voice_queue, Q_AUDIO_PLAY, 0); | 1748 | queue_post(&voice_queue, Q_AUDIO_PLAY, 0); |
@@ -1776,7 +1771,7 @@ static void codec_thread(void) | |||
1776 | 1771 | ||
1777 | audio_codec_loaded = true; | 1772 | audio_codec_loaded = true; |
1778 | #ifdef PLAYBACK_VOICE | 1773 | #ifdef PLAYBACK_VOICE |
1779 | if (voice_codec_loaded) | 1774 | if (voice_codec_loaded && current_codec == CODEC_IDX_VOICE) |
1780 | { | 1775 | { |
1781 | LOGFQUEUE("codec > voice Q_AUDIO_PLAY"); | 1776 | LOGFQUEUE("codec > voice Q_AUDIO_PLAY"); |
1782 | queue_post(&voice_queue, Q_AUDIO_PLAY, 0); | 1777 | queue_post(&voice_queue, Q_AUDIO_PLAY, 0); |
@@ -1794,7 +1789,7 @@ static void codec_thread(void) | |||
1794 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) | 1789 | #if defined(HAVE_RECORDING) && !defined(SIMULATOR) |
1795 | case Q_ENCODER_LOAD_DISK: | 1790 | case Q_ENCODER_LOAD_DISK: |
1796 | LOGFQUEUE("codec < Q_ENCODER_LOAD_DISK"); | 1791 | LOGFQUEUE("codec < Q_ENCODER_LOAD_DISK"); |
1797 | audio_codec_loaded = false; | 1792 | audio_codec_loaded = false; /* Not audio codec! */ |
1798 | #ifdef PLAYBACK_VOICE | 1793 | #ifdef PLAYBACK_VOICE |
1799 | if (voice_codec_loaded && current_codec == CODEC_IDX_VOICE) | 1794 | if (voice_codec_loaded && current_codec == CODEC_IDX_VOICE) |
1800 | { | 1795 | { |
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index 208e7b67fa..caaba67404 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c | |||
@@ -1635,19 +1635,17 @@ static bool fm_recording_settings(void) | |||
1635 | { | 1635 | { |
1636 | bool ret = recording_menu(true); | 1636 | bool ret = recording_menu(true); |
1637 | 1637 | ||
1638 | #if CONFIG_CODEC != SWCODEC | ||
1638 | if (!ret) | 1639 | if (!ret) |
1639 | { | 1640 | { |
1640 | rec_set_recording_options(global_settings.rec_frequency, | 1641 | rec_set_recording_options(global_settings.rec_frequency, |
1641 | global_settings.rec_quality, | 1642 | global_settings.rec_quality, |
1642 | #if CONFIG_CODEC == SWCODEC | ||
1643 | AUDIO_SRC_FMRADIO, SRCF_FMRADIO_PLAYING, | ||
1644 | #else | ||
1645 | AUDIO_SRC_LINEIN, 0, | 1643 | AUDIO_SRC_LINEIN, 0, |
1646 | #endif | ||
1647 | global_settings.rec_channels, | 1644 | global_settings.rec_channels, |
1648 | global_settings.rec_editable, | 1645 | global_settings.rec_editable, |
1649 | global_settings.rec_prerecord_time); | 1646 | global_settings.rec_prerecord_time); |
1650 | } | 1647 | } |
1648 | #endif | ||
1651 | 1649 | ||
1652 | return ret; | 1650 | return ret; |
1653 | } | 1651 | } |