|
@@ -36,7 +36,7 @@
|
|
#define snd_pcm_plug_first(plug) ((plug)->runtime->oss.plugin_first)
|
|
#define snd_pcm_plug_first(plug) ((plug)->runtime->oss.plugin_first)
|
|
#define snd_pcm_plug_last(plug) ((plug)->runtime->oss.plugin_last)
|
|
#define snd_pcm_plug_last(plug) ((plug)->runtime->oss.plugin_last)
|
|
|
|
|
|
-static int snd_pcm_plugin_src_channels_mask(snd_pcm_plugin_t *plugin,
|
|
|
|
|
|
+static int snd_pcm_plugin_src_channels_mask(struct snd_pcm_plugin *plugin,
|
|
unsigned long *dst_vmask,
|
|
unsigned long *dst_vmask,
|
|
unsigned long **src_vmask)
|
|
unsigned long **src_vmask)
|
|
{
|
|
{
|
|
@@ -46,7 +46,7 @@ static int snd_pcm_plugin_src_channels_mask(snd_pcm_plugin_t *plugin,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plugin_dst_channels_mask(snd_pcm_plugin_t *plugin,
|
|
|
|
|
|
+static int snd_pcm_plugin_dst_channels_mask(struct snd_pcm_plugin *plugin,
|
|
unsigned long *src_vmask,
|
|
unsigned long *src_vmask,
|
|
unsigned long **dst_vmask)
|
|
unsigned long **dst_vmask)
|
|
{
|
|
{
|
|
@@ -67,13 +67,13 @@ static int rate_match(unsigned int src_rate, unsigned int dst_rate)
|
|
return dst_rate >= low && dst_rate <= high;
|
|
return dst_rate >= low && dst_rate <= high;
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plugin_alloc(snd_pcm_plugin_t *plugin, snd_pcm_uframes_t frames)
|
|
|
|
|
|
+static int snd_pcm_plugin_alloc(struct snd_pcm_plugin *plugin, snd_pcm_uframes_t frames)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_format_t *format;
|
|
|
|
|
|
+ struct snd_pcm_plugin_format *format;
|
|
ssize_t width;
|
|
ssize_t width;
|
|
size_t size;
|
|
size_t size;
|
|
unsigned int channel;
|
|
unsigned int channel;
|
|
- snd_pcm_plugin_channel_t *c;
|
|
|
|
|
|
+ struct snd_pcm_plugin_channel *c;
|
|
|
|
|
|
if (plugin->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
|
if (plugin->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
|
format = &plugin->src_format;
|
|
format = &plugin->src_format;
|
|
@@ -120,12 +120,12 @@ static int snd_pcm_plugin_alloc(snd_pcm_plugin_t *plugin, snd_pcm_uframes_t fram
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_plug_alloc(snd_pcm_plug_t *plug, snd_pcm_uframes_t frames)
|
|
|
|
|
|
+int snd_pcm_plug_alloc(struct snd_pcm_substream *plug, snd_pcm_uframes_t frames)
|
|
{
|
|
{
|
|
int err;
|
|
int err;
|
|
snd_assert(snd_pcm_plug_first(plug) != NULL, return -ENXIO);
|
|
snd_assert(snd_pcm_plug_first(plug) != NULL, return -ENXIO);
|
|
if (snd_pcm_plug_stream(plug) == SNDRV_PCM_STREAM_PLAYBACK) {
|
|
if (snd_pcm_plug_stream(plug) == SNDRV_PCM_STREAM_PLAYBACK) {
|
|
- snd_pcm_plugin_t *plugin = snd_pcm_plug_first(plug);
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = snd_pcm_plug_first(plug);
|
|
while (plugin->next) {
|
|
while (plugin->next) {
|
|
if (plugin->dst_frames)
|
|
if (plugin->dst_frames)
|
|
frames = plugin->dst_frames(plugin, frames);
|
|
frames = plugin->dst_frames(plugin, frames);
|
|
@@ -136,7 +136,7 @@ int snd_pcm_plug_alloc(snd_pcm_plug_t *plug, snd_pcm_uframes_t frames)
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug);
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = snd_pcm_plug_last(plug);
|
|
while (plugin->prev) {
|
|
while (plugin->prev) {
|
|
if (plugin->src_frames)
|
|
if (plugin->src_frames)
|
|
frames = plugin->src_frames(plugin, frames);
|
|
frames = plugin->src_frames(plugin, frames);
|
|
@@ -151,22 +151,22 @@ int snd_pcm_plug_alloc(snd_pcm_plug_t *plug, snd_pcm_uframes_t frames)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plugin_client_channels(snd_pcm_plugin_t *plugin,
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plugin_client_channels(struct snd_pcm_plugin *plugin,
|
|
snd_pcm_uframes_t frames,
|
|
snd_pcm_uframes_t frames,
|
|
- snd_pcm_plugin_channel_t **channels)
|
|
|
|
|
|
+ struct snd_pcm_plugin_channel **channels)
|
|
{
|
|
{
|
|
*channels = plugin->buf_channels;
|
|
*channels = plugin->buf_channels;
|
|
return frames;
|
|
return frames;
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_plugin_build(snd_pcm_plug_t *plug,
|
|
|
|
|
|
+int snd_pcm_plugin_build(struct snd_pcm_substream *plug,
|
|
const char *name,
|
|
const char *name,
|
|
- snd_pcm_plugin_format_t *src_format,
|
|
|
|
- snd_pcm_plugin_format_t *dst_format,
|
|
|
|
|
|
+ struct snd_pcm_plugin_format *src_format,
|
|
|
|
+ struct snd_pcm_plugin_format *dst_format,
|
|
size_t extra,
|
|
size_t extra,
|
|
- snd_pcm_plugin_t **ret)
|
|
|
|
|
|
+ struct snd_pcm_plugin **ret)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin;
|
|
unsigned int channels;
|
|
unsigned int channels;
|
|
|
|
|
|
snd_assert(plug != NULL, return -ENXIO);
|
|
snd_assert(plug != NULL, return -ENXIO);
|
|
@@ -210,7 +210,7 @@ int snd_pcm_plugin_build(snd_pcm_plug_t *plug,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_plugin_free(snd_pcm_plugin_t *plugin)
|
|
|
|
|
|
+int snd_pcm_plugin_free(struct snd_pcm_plugin *plugin)
|
|
{
|
|
{
|
|
if (! plugin)
|
|
if (! plugin)
|
|
return 0;
|
|
return 0;
|
|
@@ -224,9 +224,9 @@ int snd_pcm_plugin_free(snd_pcm_plugin_t *plugin)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plug_client_size(snd_pcm_plug_t *plug, snd_pcm_uframes_t drv_frames)
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plug_client_size(struct snd_pcm_substream *plug, snd_pcm_uframes_t drv_frames)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin, *plugin_prev, *plugin_next;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin, *plugin_prev, *plugin_next;
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
|
|
|
|
snd_assert(plug != NULL, return -ENXIO);
|
|
snd_assert(plug != NULL, return -ENXIO);
|
|
@@ -253,9 +253,9 @@ snd_pcm_sframes_t snd_pcm_plug_client_size(snd_pcm_plug_t *plug, snd_pcm_uframes
|
|
return drv_frames;
|
|
return drv_frames;
|
|
}
|
|
}
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plug_slave_size(snd_pcm_plug_t *plug, snd_pcm_uframes_t clt_frames)
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plug_slave_size(struct snd_pcm_substream *plug, snd_pcm_uframes_t clt_frames)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin, *plugin_prev, *plugin_next;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin, *plugin_prev, *plugin_next;
|
|
snd_pcm_sframes_t frames;
|
|
snd_pcm_sframes_t frames;
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
|
|
|
|
@@ -290,9 +290,9 @@ snd_pcm_sframes_t snd_pcm_plug_slave_size(snd_pcm_plug_t *plug, snd_pcm_uframes_
|
|
return frames;
|
|
return frames;
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plug_formats(snd_mask_t *mask, int format)
|
|
|
|
|
|
+static int snd_pcm_plug_formats(struct snd_mask *mask, int format)
|
|
{
|
|
{
|
|
- snd_mask_t formats = *mask;
|
|
|
|
|
|
+ struct snd_mask formats = *mask;
|
|
u64 linfmts = (SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
|
|
u64 linfmts = (SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
|
|
SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_S16_LE |
|
|
SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_S16_LE |
|
|
SNDRV_PCM_FMTBIT_U16_BE | SNDRV_PCM_FMTBIT_S16_BE |
|
|
SNDRV_PCM_FMTBIT_U16_BE | SNDRV_PCM_FMTBIT_S16_BE |
|
|
@@ -326,7 +326,7 @@ static int preferred_formats[] = {
|
|
SNDRV_PCM_FORMAT_U8
|
|
SNDRV_PCM_FORMAT_U8
|
|
};
|
|
};
|
|
|
|
|
|
-int snd_pcm_plug_slave_format(int format, snd_mask_t *format_mask)
|
|
|
|
|
|
+int snd_pcm_plug_slave_format(int format, struct snd_mask *format_mask)
|
|
{
|
|
{
|
|
if (snd_mask_test(format_mask, format))
|
|
if (snd_mask_test(format_mask, format))
|
|
return format;
|
|
return format;
|
|
@@ -376,15 +376,15 @@ int snd_pcm_plug_slave_format(int format, snd_mask_t *format_mask)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_plug_format_plugins(snd_pcm_plug_t *plug,
|
|
|
|
- snd_pcm_hw_params_t *params,
|
|
|
|
- snd_pcm_hw_params_t *slave_params)
|
|
|
|
|
|
+int snd_pcm_plug_format_plugins(struct snd_pcm_substream *plug,
|
|
|
|
+ struct snd_pcm_hw_params *params,
|
|
|
|
+ struct snd_pcm_hw_params *slave_params)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_format_t tmpformat;
|
|
|
|
- snd_pcm_plugin_format_t dstformat;
|
|
|
|
- snd_pcm_plugin_format_t srcformat;
|
|
|
|
|
|
+ struct snd_pcm_plugin_format tmpformat;
|
|
|
|
+ struct snd_pcm_plugin_format dstformat;
|
|
|
|
+ struct snd_pcm_plugin_format srcformat;
|
|
int src_access, dst_access;
|
|
int src_access, dst_access;
|
|
- snd_pcm_plugin_t *plugin = NULL;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = NULL;
|
|
int err;
|
|
int err;
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
int slave_interleaved = (params_channels(slave_params) == 1 ||
|
|
int slave_interleaved = (params_channels(slave_params) == 1 ||
|
|
@@ -462,7 +462,7 @@ int snd_pcm_plug_format_plugins(snd_pcm_plug_t *plug,
|
|
if (srcformat.channels > dstformat.channels) {
|
|
if (srcformat.channels > dstformat.channels) {
|
|
int sv = srcformat.channels;
|
|
int sv = srcformat.channels;
|
|
int dv = dstformat.channels;
|
|
int dv = dstformat.channels;
|
|
- route_ttable_entry_t *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
|
|
|
|
|
|
+ int *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
|
|
if (ttable == NULL)
|
|
if (ttable == NULL)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
#if 1
|
|
#if 1
|
|
@@ -525,7 +525,7 @@ int snd_pcm_plug_format_plugins(snd_pcm_plug_t *plug,
|
|
if (srcformat.channels < dstformat.channels) {
|
|
if (srcformat.channels < dstformat.channels) {
|
|
int sv = srcformat.channels;
|
|
int sv = srcformat.channels;
|
|
int dv = dstformat.channels;
|
|
int dv = dstformat.channels;
|
|
- route_ttable_entry_t *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
|
|
|
|
|
|
+ int *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
|
|
if (ttable == NULL)
|
|
if (ttable == NULL)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
#if 0
|
|
#if 0
|
|
@@ -614,14 +614,14 @@ int snd_pcm_plug_format_plugins(snd_pcm_plug_t *plug,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plug_client_channels_buf(snd_pcm_plug_t *plug,
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plug_client_channels_buf(struct snd_pcm_substream *plug,
|
|
char *buf,
|
|
char *buf,
|
|
snd_pcm_uframes_t count,
|
|
snd_pcm_uframes_t count,
|
|
- snd_pcm_plugin_channel_t **channels)
|
|
|
|
|
|
+ struct snd_pcm_plugin_channel **channels)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin;
|
|
|
|
- snd_pcm_plugin_channel_t *v;
|
|
|
|
- snd_pcm_plugin_format_t *format;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin;
|
|
|
|
+ struct snd_pcm_plugin_channel *v;
|
|
|
|
+ struct snd_pcm_plugin_format *format;
|
|
int width, nchannels, channel;
|
|
int width, nchannels, channel;
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
int stream = snd_pcm_plug_stream(plug);
|
|
|
|
|
|
@@ -650,10 +650,10 @@ snd_pcm_sframes_t snd_pcm_plug_client_channels_buf(snd_pcm_plug_t *plug,
|
|
return count;
|
|
return count;
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plug_playback_channels_mask(snd_pcm_plug_t *plug,
|
|
|
|
|
|
+static int snd_pcm_plug_playback_channels_mask(struct snd_pcm_substream *plug,
|
|
unsigned long *client_vmask)
|
|
unsigned long *client_vmask)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug);
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = snd_pcm_plug_last(plug);
|
|
if (plugin == NULL) {
|
|
if (plugin == NULL) {
|
|
return 0;
|
|
return 0;
|
|
} else {
|
|
} else {
|
|
@@ -678,10 +678,10 @@ static int snd_pcm_plug_playback_channels_mask(snd_pcm_plug_t *plug,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plug_playback_disable_useless_channels(snd_pcm_plug_t *plug,
|
|
|
|
- snd_pcm_plugin_channel_t *src_channels)
|
|
|
|
|
|
+static int snd_pcm_plug_playback_disable_useless_channels(struct snd_pcm_substream *plug,
|
|
|
|
+ struct snd_pcm_plugin_channel *src_channels)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin = snd_pcm_plug_first(plug);
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = snd_pcm_plug_first(plug);
|
|
unsigned int nchannels = plugin->src_format.channels;
|
|
unsigned int nchannels = plugin->src_format.channels;
|
|
DECLARE_BITMAP(bs, nchannels);
|
|
DECLARE_BITMAP(bs, nchannels);
|
|
unsigned long *srcmask = bs;
|
|
unsigned long *srcmask = bs;
|
|
@@ -703,11 +703,11 @@ static int snd_pcm_plug_playback_disable_useless_channels(snd_pcm_plug_t *plug,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int snd_pcm_plug_capture_disable_useless_channels(snd_pcm_plug_t *plug,
|
|
|
|
- snd_pcm_plugin_channel_t *src_channels,
|
|
|
|
- snd_pcm_plugin_channel_t *client_channels)
|
|
|
|
|
|
+static int snd_pcm_plug_capture_disable_useless_channels(struct snd_pcm_substream *plug,
|
|
|
|
+ struct snd_pcm_plugin_channel *src_channels,
|
|
|
|
+ struct snd_pcm_plugin_channel *client_channels)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug);
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin = snd_pcm_plug_last(plug);
|
|
unsigned int nchannels = plugin->dst_format.channels;
|
|
unsigned int nchannels = plugin->dst_format.channels;
|
|
DECLARE_BITMAP(bs, nchannels);
|
|
DECLARE_BITMAP(bs, nchannels);
|
|
unsigned long *dstmask = bs;
|
|
unsigned long *dstmask = bs;
|
|
@@ -736,10 +736,10 @@ static int snd_pcm_plug_capture_disable_useless_channels(snd_pcm_plug_t *plug,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plug_write_transfer(snd_pcm_plug_t *plug, snd_pcm_plugin_channel_t *src_channels, snd_pcm_uframes_t size)
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plug_write_transfer(struct snd_pcm_substream *plug, struct snd_pcm_plugin_channel *src_channels, snd_pcm_uframes_t size)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin, *next;
|
|
|
|
- snd_pcm_plugin_channel_t *dst_channels;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin, *next;
|
|
|
|
+ struct snd_pcm_plugin_channel *dst_channels;
|
|
int err;
|
|
int err;
|
|
snd_pcm_sframes_t frames = size;
|
|
snd_pcm_sframes_t frames = size;
|
|
|
|
|
|
@@ -771,10 +771,10 @@ snd_pcm_sframes_t snd_pcm_plug_write_transfer(snd_pcm_plug_t *plug, snd_pcm_plug
|
|
return snd_pcm_plug_client_size(plug, frames);
|
|
return snd_pcm_plug_client_size(plug, frames);
|
|
}
|
|
}
|
|
|
|
|
|
-snd_pcm_sframes_t snd_pcm_plug_read_transfer(snd_pcm_plug_t *plug, snd_pcm_plugin_channel_t *dst_channels_final, snd_pcm_uframes_t size)
|
|
|
|
|
|
+snd_pcm_sframes_t snd_pcm_plug_read_transfer(struct snd_pcm_substream *plug, struct snd_pcm_plugin_channel *dst_channels_final, snd_pcm_uframes_t size)
|
|
{
|
|
{
|
|
- snd_pcm_plugin_t *plugin, *next;
|
|
|
|
- snd_pcm_plugin_channel_t *src_channels, *dst_channels;
|
|
|
|
|
|
+ struct snd_pcm_plugin *plugin, *next;
|
|
|
|
+ struct snd_pcm_plugin_channel *src_channels, *dst_channels;
|
|
snd_pcm_sframes_t frames = size;
|
|
snd_pcm_sframes_t frames = size;
|
|
int err;
|
|
int err;
|
|
|
|
|
|
@@ -806,7 +806,7 @@ snd_pcm_sframes_t snd_pcm_plug_read_transfer(snd_pcm_plug_t *plug, snd_pcm_plugi
|
|
return frames;
|
|
return frames;
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, size_t dst_offset,
|
|
|
|
|
|
+int snd_pcm_area_silence(const struct snd_pcm_channel_area *dst_area, size_t dst_offset,
|
|
size_t samples, int format)
|
|
size_t samples, int format)
|
|
{
|
|
{
|
|
/* FIXME: sub byte resolution and odd dst_offset */
|
|
/* FIXME: sub byte resolution and odd dst_offset */
|
|
@@ -852,8 +852,8 @@ int snd_pcm_area_silence(const snd_pcm_channel_area_t *dst_area, size_t dst_offs
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-int snd_pcm_area_copy(const snd_pcm_channel_area_t *src_area, size_t src_offset,
|
|
|
|
- const snd_pcm_channel_area_t *dst_area, size_t dst_offset,
|
|
|
|
|
|
+int snd_pcm_area_copy(const struct snd_pcm_channel_area *src_area, size_t src_offset,
|
|
|
|
+ const struct snd_pcm_channel_area *dst_area, size_t dst_offset,
|
|
size_t samples, int format)
|
|
size_t samples, int format)
|
|
{
|
|
{
|
|
/* FIXME: sub byte resolution and odd dst_offset */
|
|
/* FIXME: sub byte resolution and odd dst_offset */
|