summaryrefslogtreecommitdiff
path: root/drivers/alsa
diff options
context:
space:
mode:
authorsletz <sletz@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-07-23 13:45:30 +0000
committersletz <sletz@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-07-23 13:45:30 +0000
commitc17e21ee12f579c01a8a63aa1b2482060d4897f9 (patch)
tree326002e604d008c6437a4432d4b8be3497f232fe /drivers/alsa
parentd1399bb35853c248e0261b74af71ef57bd8e1c80 (diff)
downloadjack1-c17e21ee12f579c01a8a63aa1b2482060d4897f9.tar.gz
Florian Faber native 32 bits float patch for alsa driver.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@2723 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'drivers/alsa')
-rw-r--r--drivers/alsa/alsa_driver.c237
-rw-r--r--drivers/alsa/memops.c85
-rw-r--r--drivers/alsa/memops.h4
3 files changed, 172 insertions, 154 deletions
diff --git a/drivers/alsa/alsa_driver.c b/drivers/alsa/alsa_driver.c
index 757cca6..a360e5b 100644
--- a/drivers/alsa/alsa_driver.c
+++ b/drivers/alsa/alsa_driver.c
@@ -233,129 +233,145 @@ alsa_driver_hw_specific (alsa_driver_t *driver, int hw_monitoring,
static void
alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
{
- switch (driver->playback_sample_bytes) {
- case 2:
- if (driver->playback_interleaved) {
- driver->channel_copy = memcpy_interleave_d16_s16;
+ if (SNDRV_PCM_FORMAT_FLOAT_LE == driver->playback_sample_format) {
+ if (driver->playback_interleaved) {
+ driver->channel_copy = memcpy_interleave_d32_s32;
} else {
driver->channel_copy = memcpy_fake;
}
-
- switch (driver->dither) {
+ driver->read_via_copy = sample_move_floatLE_sSs;
+ driver->write_via_copy = sample_move_dS_floatLE;
+ } else {
+ switch (driver->playback_sample_bytes) {
+ case 2:
+ if (driver->playback_interleaved) {
+ driver->channel_copy = memcpy_interleave_d16_s16;
+ } else {
+ driver->channel_copy = memcpy_fake;
+ }
+
+ switch (driver->dither) {
case Rectangular:
- jack_info("Rectangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_rect_d16_sSs:
- sample_move_dither_rect_d16_sS;
- break;
-
- case Triangular:
- jack_info("Triangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_tri_d16_sSs:
- sample_move_dither_tri_d16_sS;
- break;
-
+ jack_info("Rectangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_rect_d16_sSs:
+ sample_move_dither_rect_d16_sS;
+ break;
+
+ case Triangular:
+ jack_info("Triangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_tri_d16_sSs:
+ sample_move_dither_tri_d16_sS;
+ break;
+
case Shaped:
- jack_info("Noise-shaped dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_shaped_d16_sSs:
- sample_move_dither_shaped_d16_sS;
- break;
-
+ jack_info("Noise-shaped dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_shaped_d16_sSs:
+ sample_move_dither_shaped_d16_sS;
+ break;
+
default:
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d16_sSs : sample_move_d16_sS;
- break;
- }
- break;
-
- case 3:
- if (driver->playback_interleaved) {
- driver->channel_copy = memcpy_interleave_d24_s24;
- } else {
- driver->channel_copy = memcpy_fake;
- }
-
- switch (driver->dither) {
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_d16_sSs :
+ sample_move_d16_sS;
+ break;
+ }
+ break;
+
+ case 3:
+ if (driver->playback_interleaved) {
+ driver->channel_copy = memcpy_interleave_d24_s24;
+ } else {
+ driver->channel_copy = memcpy_fake;
+ }
+
+ switch (driver->dither) {
case Rectangular:
- jack_info("Rectangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_rect_d24_sSs:
- sample_move_dither_rect_d24_sS;
- break;
-
+ jack_info("Rectangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_rect_d24_sSs:
+ sample_move_dither_rect_d24_sS;
+ break;
+
case Triangular:
- jack_info("Triangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_tri_d24_sSs:
- sample_move_dither_tri_d24_sS;
- break;
-
+ jack_info("Triangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_tri_d24_sSs:
+ sample_move_dither_tri_d24_sS;
+ break;
+
case Shaped:
- jack_info("Noise-shaped dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_shaped_d24_sSs:
- sample_move_dither_shaped_d24_sS;
- break;
-
+ jack_info("Noise-shaped dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_shaped_d24_sSs:
+ sample_move_dither_shaped_d24_sS;
+ break;
+
default:
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d24_sSs : sample_move_d24_sS;
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_d24_sSs:
+ sample_move_d24_sS;
+ break;
+ }
break;
- }
- break;
-
- case 4:
- if (driver->playback_interleaved) {
- driver->channel_copy = memcpy_interleave_d32_s32;
- } else {
- driver->channel_copy = memcpy_fake;
- }
-
- switch (driver->dither) {
+
+ case 4:
+ if (driver->playback_interleaved) {
+ driver->channel_copy = memcpy_interleave_d32_s32;
+ } else {
+ driver->channel_copy = memcpy_fake;
+ }
+
+ switch (driver->dither) {
case Rectangular:
- jack_info("Rectangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_rect_d32u24_sSs:
- sample_move_dither_rect_d32u24_sS;
- break;
-
+ jack_info("Rectangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_rect_d32u24_sSs:
+ sample_move_dither_rect_d32u24_sS;
+ break;
+
case Triangular:
- jack_info("Triangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_tri_d32u24_sSs:
- sample_move_dither_tri_d32u24_sS;
- break;
-
+ jack_info("Triangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_tri_d32u24_sSs:
+ sample_move_dither_tri_d32u24_sS;
+ break;
+
case Shaped:
- jack_info("Noise-shaped dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_shaped_d32u24_sSs:
- sample_move_dither_shaped_d32u24_sS;
- break;
-
+ jack_info("Noise-shaped dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_dither_shaped_d32u24_sSs:
+ sample_move_dither_shaped_d32u24_sS;
+ break;
+
default:
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d32u24_sSs : sample_move_d32u24_sS;
+ driver->write_via_copy = driver->quirk_bswap?
+ sample_move_d32u24_sSs:
+ sample_move_d32u24_sS;
+ break;
+ }
+ break;
+ }
+
+ switch (driver->capture_sample_bytes) {
+ case 2:
+ driver->read_via_copy = driver->quirk_bswap?
+ sample_move_dS_s16s:
+ sample_move_dS_s16;
break;
- }
- break;
- }
-
- switch (driver->capture_sample_bytes) {
- case 2:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s16s : sample_move_dS_s16;
- break;
- case 3:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s24s : sample_move_dS_s24;
- break;
- case 4:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s32u24s : sample_move_dS_s32u24;
+ case 3:
+ driver->read_via_copy = driver->quirk_bswap?
+ sample_move_dS_s24s:
+ sample_move_dS_s24;
+ break;
+ case 4:
+ driver->read_via_copy = driver->quirk_bswap?
+ sample_move_dS_s32u24s:
+ sample_move_dS_s32u24;
break;
+ }
}
}
@@ -377,15 +393,16 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
snd_pcm_format_t format;
int swapped;
} formats[] = {
- {"32bit little-endian", SND_PCM_FORMAT_S32_LE, IS_LE},
- {"32bit big-endian", SND_PCM_FORMAT_S32_BE, IS_BE},
+ {"32bit float little-endian", SND_PCM_FORMAT_FLOAT_LE},
+ {"32bit integer little-endian", SND_PCM_FORMAT_S32_LE, IS_LE},
+ {"32bit integer big-endian", SND_PCM_FORMAT_S32_BE, IS_BE},
{"24bit little-endian", SND_PCM_FORMAT_S24_3LE, IS_LE},
{"24bit big-endian", SND_PCM_FORMAT_S24_3BE, IS_BE},
{"16bit little-endian", SND_PCM_FORMAT_S16_LE, IS_LE},
{"16bit big-endian", SND_PCM_FORMAT_S16_BE, IS_BE},
};
#define NUMFORMATS (sizeof(formats)/sizeof(formats[0]))
-#define FIRST_16BIT_FORMAT 4
+#define FIRST_16BIT_FORMAT 5
if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0) {
jack_error ("ALSA: no playback configurations available (%s)",
@@ -759,6 +776,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->playback_handle) {
switch (driver->playback_sample_format) {
+ case SND_PCM_FORMAT_FLOAT_LE:
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S24_3LE:
case SND_PCM_FORMAT_S24_3BE:
@@ -776,6 +794,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->capture_handle) {
switch (driver->capture_sample_format) {
+ case SND_PCM_FORMAT_FLOAT_LE:
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S24_3LE:
case SND_PCM_FORMAT_S24_3BE:
diff --git a/drivers/alsa/memops.c b/drivers/alsa/memops.c
index d293f2f..1d1d86f 100644
--- a/drivers/alsa/memops.c
+++ b/drivers/alsa/memops.c
@@ -49,8 +49,28 @@ inline unsigned int fast_rand() {
return seed;
}
-void sample_move_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
+/* functions for native float sample data */
+
+void sample_move_floatLE_sSs (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip) {
+ while (nsamples--) {
+ *dst = *((float *) src);
+ dst++;
+ src += src_skip;
+ }
+}
+
+void sample_move_dS_floatLE (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state) {
+ while (nsamples--) {
+ *((float *) dst) = *src;
+ dst += dst_skip;
+ src++;
+ }
+}
+
+/* functions for native integer sample data */
+
+void sample_move_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
long long y;
int z;
@@ -81,9 +101,8 @@ void sample_move_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsign
}
void sample_move_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
- long long y;
+ long long y;
while (nsamples--) {
y = (long long)(*src * SAMPLE_MAX_24BIT) << 8;
@@ -140,7 +159,6 @@ void sample_move_dS_s32u24 (jack_default_audio_sample_t *dst, char *src, unsigne
}
void sample_move_dither_rect_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
/* ALERT: signed sign-extension portability !!! */
jack_default_audio_sample_t x;
@@ -176,7 +194,6 @@ void sample_move_dither_rect_d32u24_sSs (char *dst, jack_default_audio_sample_t
}
void sample_move_dither_rect_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
/* ALERT: signed sign-extension portability !!! */
jack_default_audio_sample_t x;
@@ -199,8 +216,7 @@ void sample_move_dither_rect_d32u24_sS (char *dst, jack_default_audio_sample_t *
}
}
-void sample_move_dither_tri_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -240,8 +256,7 @@ void sample_move_dither_tri_d32u24_sSs (char *dst, jack_default_audio_sample_t
state->rm1 = rm1;
}
-void sample_move_dither_tri_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -270,8 +285,7 @@ void sample_move_dither_tri_d32u24_sS (char *dst, jack_default_audio_sample_t *
state->rm1 = rm1;
}
-void sample_move_dither_shaped_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -330,8 +344,7 @@ void sample_move_dither_shaped_d32u24_sSs (char *dst, jack_default_audio_sample
state->idx = idx;
}
-void sample_move_dither_shaped_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -379,7 +392,6 @@ void sample_move_dither_shaped_d32u24_sS (char *dst, jack_default_audio_sample_
}
void sample_move_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
long long y;
int z;
@@ -409,7 +421,6 @@ void sample_move_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned
}
void sample_move_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
long long y;
@@ -483,7 +494,6 @@ void sample_move_dS_s24 (jack_default_audio_sample_t *dst, char *src, unsigned l
}
void sample_move_dither_rect_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
/* ALERT: signed sign-extension portability !!! */
jack_default_audio_sample_t x;
@@ -519,7 +529,6 @@ void sample_move_dither_rect_d24_sSs (char *dst, jack_default_audio_sample_t *sr
}
void sample_move_dither_rect_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
/* ALERT: signed sign-extension portability !!! */
jack_default_audio_sample_t x;
@@ -548,8 +557,7 @@ void sample_move_dither_rect_d24_sS (char *dst, jack_default_audio_sample_t *src
}
}
-void sample_move_dither_tri_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -588,8 +596,7 @@ void sample_move_dither_tri_d24_sSs (char *dst, jack_default_audio_sample_t *sr
state->rm1 = rm1;
}
-void sample_move_dither_tri_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -622,8 +629,7 @@ void sample_move_dither_tri_d24_sS (char *dst, jack_default_audio_sample_t *src
state->rm1 = rm1;
}
-void sample_move_dither_shaped_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -680,8 +686,7 @@ void sample_move_dither_shaped_d24_sSs (char *dst, jack_default_audio_sample_t
state->idx = idx;
}
-void sample_move_dither_shaped_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -732,8 +737,7 @@ void sample_move_dither_shaped_d24_sS (char *dst, jack_default_audio_sample_t *
state->idx = idx;
}
-void sample_move_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
int tmp;
@@ -758,8 +762,7 @@ void sample_move_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned
}
}
-void sample_move_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
int tmp;
@@ -779,8 +782,7 @@ void sample_move_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned
}
}
-void sample_move_dither_rect_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_rect_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t val;
int tmp;
@@ -806,8 +808,7 @@ void sample_move_dither_rect_d16_sSs (char *dst, jack_default_audio_sample_t *s
}
}
-void sample_move_dither_rect_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_rect_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t val;
int tmp;
@@ -828,8 +829,7 @@ void sample_move_dither_rect_d16_sS (char *dst, jack_default_audio_sample_t *sr
}
}
-void sample_move_dither_tri_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -861,8 +861,7 @@ void sample_move_dither_tri_d16_sSs (char *dst, jack_default_audio_sample_t *sr
state->rm1 = rm1;
}
-void sample_move_dither_tri_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_tri_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
float r;
@@ -890,8 +889,7 @@ void sample_move_dither_tri_d16_sS (char *dst, jack_default_audio_sample_t *src
state->rm1 = rm1;
}
-void sample_move_dither_shaped_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d16_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -941,8 +939,7 @@ void sample_move_dither_shaped_d16_sSs (char *dst, jack_default_audio_sample_t
state->idx = idx;
}
-void sample_move_dither_shaped_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
+void sample_move_dither_shaped_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
{
jack_default_audio_sample_t x;
jack_default_audio_sample_t xe; /* the innput sample - filtered error */
@@ -987,8 +984,7 @@ void sample_move_dither_shaped_d16_sS (char *dst, jack_default_audio_sample_t *
state->idx = idx;
}
-void sample_move_dS_s16s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip)
-
+void sample_move_dS_s16s (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long src_skip)
{
short z;
@@ -1042,7 +1038,6 @@ void sample_merge_d16_sS (char *dst, jack_default_audio_sample_t *src, unsigned
}
void sample_merge_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state)
-
{
/* ALERT: signed sign-extension portability !!! */
@@ -1129,7 +1124,6 @@ merge_memcpy_d32_s32 (char *dst, char *src, unsigned long src_bytes,
void
merge_memcpy_interleave_d16_s16 (char *dst, char *src, unsigned long src_bytes,
unsigned long dst_skip_bytes, unsigned long src_skip_bytes)
-
{
while (src_bytes) {
*((short *) dst) += *((short *) src);
@@ -1201,3 +1195,4 @@ memcpy_interleave_d32_s32 (char *dst, char *src, unsigned long src_bytes,
src_bytes -= 4;
}
}
+
diff --git a/drivers/alsa/memops.h b/drivers/alsa/memops.h
index 0f4c737..a5582bf 100644
--- a/drivers/alsa/memops.h
+++ b/drivers/alsa/memops.h
@@ -39,7 +39,11 @@ typedef struct {
float e[DITHER_BUF_SIZE];
} dither_state_t;
+/* float functions */
+void sample_move_floatLE_sSs (jack_default_audio_sample_t *dst, char *src, unsigned long nsamples, unsigned long dst_skip);
+void sample_move_dS_floatLE (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state);
+/* integer functions */
void sample_move_d32u24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state);
void sample_move_d32u24_sS (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state);
void sample_move_d24_sSs (char *dst, jack_default_audio_sample_t *src, unsigned long nsamples, unsigned long dst_skip, dither_state_t *state);