diff options
Diffstat (limited to 'firmware/pcm_record.c')
-rw-r--r-- | firmware/pcm_record.c | 8 |
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 | ||
85 | static unsigned int rec_buffer_offset; | ||
85 | static unsigned char *rec_buffer; /* Circular recording buffer */ | 86 | static unsigned char *rec_buffer; /* Circular recording buffer */ |
86 | static int num_chunks; /* Number of chunks available in rec_buffer */ | 87 | static 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 | ||
139 | void audio_init_recording(void) | 140 | void 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 | ||