summaryrefslogtreecommitdiff
path: root/firmware/pcm_record.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/pcm_record.c')
-rw-r--r--firmware/pcm_record.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c
index 8d34b345c8..a7d8bc707c 100644
--- a/firmware/pcm_record.c
+++ b/firmware/pcm_record.c
@@ -82,6 +82,7 @@ static short peak_left, peak_right;
82 82
83#define GET_CHUNK(x) (short*)(&rec_buffer[CHUNK_SIZE*(x)]) 83#define GET_CHUNK(x) (short*)(&rec_buffer[CHUNK_SIZE*(x)])
84 84
85static unsigned int rec_buffer_offset;
85static unsigned char *rec_buffer; /* Circular recording buffer */ 86static unsigned char *rec_buffer; /* Circular recording buffer */
86static int num_chunks; /* Number of chunks available in rec_buffer */ 87static int num_chunks; /* Number of chunks available in rec_buffer */
87 88
@@ -136,8 +137,9 @@ void pcm_rec_init(void)
136 * - Prepare for DMA transfers 137 * - Prepare for DMA transfers
137 */ 138 */
138 139
139void audio_init_recording(void) 140void audio_init_recording(unsigned int buffer_offset)
140{ 141{
142 rec_buffer_offset = buffer_offset;
141 init_done = false; 143 init_done = false;
142 queue_post(&pcmrec_queue, PCMREC_INIT, 0); 144 queue_post(&pcmrec_queue, PCMREC_INIT, 0);
143 145
@@ -820,8 +822,8 @@ static void pcmrec_init(void)
820 is_paused = false; 822 is_paused = false;
821 is_error = false; 823 is_error = false;
822 824
823 rec_buffer = (unsigned char*)(((unsigned long)audiobuf + talk_get_bufsize()) & ~3); 825 rec_buffer = (unsigned char*)(((unsigned long)audiobuf + rec_buffer_offset) & ~3);
824 buffer_size = (long)audiobufend - (long)audiobuf - talk_get_bufsize() - 16; 826 buffer_size = (long)audiobufend - (long)audiobuf - rec_buffer_offset - 16;
825 827
826 logf("buf size: %d kb", buffer_size/1024); 828 logf("buf size: %d kb", buffer_size/1024);
827 829