From f0ca536edd6089fb8030fc98df021239e99cb403 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 2 Oct 2014 09:52:04 +0000 Subject: deinterleave --- alsa.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'alsa.c') diff --git a/alsa.c b/alsa.c index 8c875d5..bc7408a 100644 --- a/alsa.c +++ b/alsa.c @@ -79,10 +79,10 @@ init_sio(void) } size_t -read_sio(int *left, int *right, size_t n) +read_sio(int **out, size_t n) { snd_pcm_sframes_t rc; - struct data *data; + int16_t *tmp; int i; if (n > samples) @@ -95,13 +95,11 @@ read_sio(int *left, int *right, size_t n) snd_pcm_prepare(hdl); } - data = (struct data *)&buffer[samples - n]; + tmp = buffer[samples - n]; - /* split and normalize */ - for (i = 0; i < n; i++) { - left[i] = data[i].left; - right[i] = data[i].right; - } + /* split */ + for (i = 0; i < n * STEREO; i++) + out[i % STEREO][i / STEREO] = tmp[i]; return n; } -- cgit v1.2.3