diff options
Diffstat (limited to 'firmware/target/hosted/pcm-alsa.c')
-rw-r--r-- | firmware/target/hosted/pcm-alsa.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/firmware/target/hosted/pcm-alsa.c b/firmware/target/hosted/pcm-alsa.c index b78993dd0a..1385f75b34 100644 --- a/firmware/target/hosted/pcm-alsa.c +++ b/firmware/target/hosted/pcm-alsa.c | |||
@@ -223,9 +223,11 @@ static bool fill_frames(void) | |||
223 | if (!pcm_size) | 223 | if (!pcm_size) |
224 | { | 224 | { |
225 | new_buffer = true; | 225 | new_buffer = true; |
226 | pcm_play_get_more_callback((void **)&pcm_data, &pcm_size); | 226 | if (!pcm_play_dma_complete_callback(PCM_DMAST_OK, |
227 | if (!pcm_size || !pcm_data) | 227 | (const void **)&pcm_data, &pcm_size)) |
228 | { | ||
228 | return false; | 229 | return false; |
230 | } | ||
229 | } | 231 | } |
230 | copy_n = MIN((ssize_t)pcm_size, frames_left*4); | 232 | copy_n = MIN((ssize_t)pcm_size, frames_left*4); |
231 | memcpy(&frames[2*(period_size-frames_left)], pcm_data, copy_n); | 233 | memcpy(&frames[2*(period_size-frames_left)], pcm_data, copy_n); |
@@ -237,7 +239,7 @@ static bool fill_frames(void) | |||
237 | if (new_buffer) | 239 | if (new_buffer) |
238 | { | 240 | { |
239 | new_buffer = false; | 241 | new_buffer = false; |
240 | pcm_play_dma_started_callback(); | 242 | pcm_play_dma_status_callback(PCM_DMAST_STARTED); |
241 | } | 243 | } |
242 | } | 244 | } |
243 | return true; | 245 | return true; |