summaryrefslogtreecommitdiff
path: root/firmware/pcm_playback.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/pcm_playback.c')
-rw-r--r--firmware/pcm_playback.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index 3a68db4d0c..bafbd8c761 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -164,7 +164,7 @@ static long calculate_channel_peak_average(int channel, unsigned short *addr,
164void pcm_calculate_peaks(int *left, int *right) 164void pcm_calculate_peaks(int *left, int *right)
165{ 165{
166 unsigned short *addr = (unsigned short *)SAR0; 166 unsigned short *addr = (unsigned short *)SAR0;
167 long size = MIN(512, BCR0 / 2); 167 long size = MIN(512, (BCR0 & 0xffffff) / 2);
168 168
169 if (left != NULL) 169 if (left != NULL)
170 *left = calculate_channel_peak_average(0, addr, size); 170 *left = calculate_channel_peak_average(0, addr, size);
@@ -222,6 +222,11 @@ void pcm_play_data(void (*get_more)(unsigned char** start, long* size))
222 uda1380_mute(false); 222 uda1380_mute(false);
223} 223}
224 224
225long pcm_get_bytes_waiting(void)
226{
227 return next_size + (BCR0 & 0xffffff);
228}
229
225void pcm_play_stop(void) 230void pcm_play_stop(void)
226{ 231{
227 if (pcm_playing) { 232 if (pcm_playing) {