summaryrefslogtreecommitdiff
path: root/src/play.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/play.c')
-rw-r--r--src/play.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/play.c b/src/play.c
index 9fceecf..c2faa7b 100644
--- a/src/play.c
+++ b/src/play.c
@@ -83,9 +83,10 @@ static void tmr_polling(void *arg)
/**
* NOTE: DSP cannot be destroyed inside handler
*/
-static bool write_handler(uint8_t *buf, size_t sz, void *arg)
+static void write_handler(int16_t *sampv, size_t sampc, void *arg)
{
struct play *play = arg;
+ size_t sz = sampc * 2;
lock_write_get(play->lock);
@@ -94,22 +95,21 @@ static bool write_handler(uint8_t *buf, size_t sz, void *arg)
if (mbuf_get_left(play->mb) < sz) {
- memset(buf, 0, sz);
- (void)mbuf_read_mem(play->mb, buf, mbuf_get_left(play->mb));
+ memset(sampv, 0, sz);
+ (void)mbuf_read_mem(play->mb, (void *)sampv,
+ mbuf_get_left(play->mb));
play->eof = true;
}
else {
- (void)mbuf_read_mem(play->mb, buf, sz);
+ (void)mbuf_read_mem(play->mb, (void *)sampv, sz);
}
silence:
if (play->eof)
- memset(buf, 0, sz);
+ memset(sampv, 0, sz);
lock_rel(play->lock);
-
- return true;
}