diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/pcm_playback.h | 1 | ||||
-rw-r--r-- | firmware/pcm_playback.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/firmware/export/pcm_playback.h b/firmware/export/pcm_playback.h index 6222574ed8..3972e45768 100644 --- a/firmware/export/pcm_playback.h +++ b/firmware/export/pcm_playback.h | |||
@@ -26,6 +26,7 @@ void pcm_set_frequency(unsigned int frequency); | |||
26 | void pcm_play_data(void (*get_more)(unsigned char** start, long* size)); | 26 | void pcm_play_data(void (*get_more)(unsigned char** start, long* size)); |
27 | 27 | ||
28 | void pcm_calculate_peaks(int *left, int *right); | 28 | void pcm_calculate_peaks(int *left, int *right); |
29 | long pcm_get_bytes_waiting(void); | ||
29 | 30 | ||
30 | void pcm_play_stop(void); | 31 | void pcm_play_stop(void); |
31 | void pcm_play_pause(bool play); | 32 | void pcm_play_pause(bool play); |
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, | |||
164 | void pcm_calculate_peaks(int *left, int *right) | 164 | void 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 | ||
225 | long pcm_get_bytes_waiting(void) | ||
226 | { | ||
227 | return next_size + (BCR0 & 0xffffff); | ||
228 | } | ||
229 | |||
225 | void pcm_play_stop(void) | 230 | void pcm_play_stop(void) |
226 | { | 231 | { |
227 | if (pcm_playing) { | 232 | if (pcm_playing) { |