From aaa10c75879d64e67865490b364bf863dea77b60 Mon Sep 17 00:00:00 2001 From: sletz Date: Wed, 29 Nov 2006 20:16:01 +0000 Subject: [PATCH] Karsten Wiese correction for ALSA usx2y driver. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1314 0c269be4-1314-0410-8aa9-9f06e86f4224 --- ChangeLog | 3 ++- linux/alsa/usx2y.c | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index e659ca7b..3772fdc4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,8 @@ 2006-11-29 Stephane Letz - * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case). Correct JackEngine::ClientExternalNew. + * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case). Correct JackEngine::ClientExternalNew. + * Karsten Wiese correction for ALSA usx2y driver. 2006-11-22 Stephane Letz diff --git a/linux/alsa/usx2y.c b/linux/alsa/usx2y.c index 7ab128d7..fc5b1e01 100644 --- a/linux/alsa/usx2y.c +++ b/linux/alsa/usx2y.c @@ -210,16 +210,19 @@ usx2y_driver_get_channel_addresses_capture (alsa_driver_t *driver, static int usx2y_driver_start (alsa_driver_t *driver) { - int err; + int err, i; snd_pcm_uframes_t poffset, pavail; usx2y_t *h = (usx2y_t *) driver->hw->private; - if (driver->capture_nchannels == 4) { + for (i = 0; i < driver->capture_nchannels; i++) // US428 channels 3+4 are on a seperate 2 channel stream. - // ALSA thinks its 1 stream with 4 channels, so we have to hack here. - driver->capture_interleave_skip = 2 * driver->capture_sample_bytes; - } + // ALSA thinks its 1 stream with 4 channels. + driver->capture_interleave_skip[i] = 2 * driver->capture_sample_bytes; + + + driver->playback_interleave_skip[0] = 2 * driver->playback_sample_bytes; + driver->playback_interleave_skip[1] = 2 * driver->playback_sample_bytes; driver->poll_last = 0; driver->poll_next = 0;