summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-11-22 09:13:14 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-11-22 09:13:14 +0000
commitfbac4f84442b0e2a5cc9c0845ccabf0af554e82a (patch)
tree814084269382cf56b738830819af3995a3fdd920 /firmware
parentee61057ceabd8b2b69a5e733d27caae2adece6cf (diff)
downloadrockbox-fbac4f84442b0e2a5cc9c0845ccabf0af554e82a.zip
rockbox-fbac4f84442b0e2a5cc9c0845ccabf0af554e82a.tar.gz
rockbox-fbac4f84442b0e2a5cc9c0845ccabf0af554e82a.tar.bz2
rockbox-fbac4f84442b0e2a5cc9c0845ccabf0af554e82a.tar.xz
Audio bugfixes. Should wait for voice codec to reload before returning buffer when stealing voice. Certain variables that get or may get used during an IRQ should be declared 'volatile'.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11572 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/pcm_playback.c6
-rw-r--r--firmware/pcm_record.c4
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c10
3 files changed, 10 insertions, 10 deletions
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index a2d09e7..8b5479c 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -48,9 +48,9 @@
be shared semi-privately **/
/* the registered callback function to ask for more mp3 data */
-pcm_more_callback_type pcm_callback_for_more = NULL;
-bool pcm_playing = false;
-bool pcm_paused = false;
+volatile pcm_more_callback_type pcm_callback_for_more = NULL;
+volatile bool pcm_playing = false;
+volatile bool pcm_paused = false;
void pcm_play_dma_start(const void *addr, size_t size);
void pcm_play_dma_stop(void);
diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c
index 04289f3..a1b2afd 100644
--- a/firmware/pcm_record.c
+++ b/firmware/pcm_record.c
@@ -55,9 +55,9 @@
be shared semi-privately **/
/* the registered callback function for when more data is available */
-pcm_more_callback_type pcm_callback_more_ready = NULL;
+volatile pcm_more_callback_type pcm_callback_more_ready = NULL;
/* DMA transfer in is currently active */
-bool pcm_recording = false;
+volatile bool pcm_recording = false;
/* APIs implemented in the target-specific portion */
void pcm_rec_dma_start(const void *addr, size_t size);
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index 9cd66d7..a0d3b67 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -44,13 +44,13 @@
/** Semi-private shared symbols **/
/* the registered callback function to ask for more pcm data */
-extern pcm_more_callback_type pcm_callback_for_more;
-extern bool pcm_playing;
-extern bool pcm_paused;
+extern volatile pcm_more_callback_type pcm_callback_for_more;
+extern volatile bool pcm_playing;
+extern volatile bool pcm_paused;
/* the registered callback function for when more data is available */
-extern pcm_more_callback_type pcm_callback_more_ready;
-extern bool pcm_recording;
+extern volatile pcm_more_callback_type pcm_callback_more_ready;
+extern volatile bool pcm_recording;
/* peaks */
static int play_peak_left, play_peak_right;