case SND_PCM_IOCTL_SW_PARAMS:
ctrl->result = snd_pcm_sw_params(pcm, (snd_pcm_sw_params_t *) &ctrl->u.sw_params);
break;
- case SND_PCM_IOCTL_DIG_PARAMS:
- ctrl->result = snd_pcm_dig_params(pcm, (snd_pcm_dig_params_t *) &ctrl->u.dig_params);
- break;
- case SND_PCM_IOCTL_DIG_INFO:
- ctrl->result = snd_pcm_dig_info(pcm, (snd_pcm_dig_info_t *) &ctrl->u.dig_info);
- break;
case SND_PCM_IOCTL_STATUS:
ctrl->result = snd_pcm_status(pcm, (snd_pcm_status_t *) &ctrl->u.status);
break;
snd_pcm_hw_params_t hw_refine;
snd_pcm_hw_params_t hw_params;
snd_pcm_sw_params_t sw_params;
- snd_pcm_dig_params_t dig_params;
- snd_pcm_dig_info_t dig_info;
snd_pcm_status_t status;
struct {
ssize_t frames;
int snd_pcm_info(snd_pcm_t *pcm, snd_pcm_info_t *info);
int snd_pcm_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
int snd_pcm_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params);
-int snd_pcm_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t *info);
-int snd_pcm_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t *params);
int snd_pcm_status(snd_pcm_t *pcm, snd_pcm_status_t *status);
int snd_pcm_prepare(snd_pcm_t *pcm);
int snd_pcm_reset(snd_pcm_t *pcm);
return 0;
}
-int snd_pcm_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t *params)
-{
- assert(pcm && params);
- return pcm->ops->dig_params(pcm->op_arg, params);
-}
-
-int snd_pcm_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t *info)
-{
- assert(pcm && info);
- return pcm->ops->dig_info(pcm->op_arg, info);
-}
-
int snd_pcm_status(snd_pcm_t *pcm, snd_pcm_status_t *status)
{
assert(pcm && status);
hw_refine: snd_pcm_adpcm_hw_refine,
hw_params: snd_pcm_adpcm_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_adpcm_dump,
nonblock: snd_pcm_plugin_nonblock,
hw_refine: snd_pcm_alaw_hw_refine,
hw_params: snd_pcm_alaw_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_alaw_dump,
nonblock: snd_pcm_plugin_nonblock,
hw_refine: snd_pcm_copy_hw_refine,
hw_params: snd_pcm_copy_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_copy_dump,
nonblock: snd_pcm_plugin_nonblock,
return snd_pcm_sw_params(file->slave, params);
}
-static int snd_pcm_file_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t * info)
-{
- snd_pcm_file_t *file = pcm->private;
- return snd_pcm_dig_info(file->slave, info);
-}
-
-static int snd_pcm_file_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t * params)
-{
- snd_pcm_file_t *file = pcm->private;
- return snd_pcm_dig_params(file->slave, params);
-}
-
static int snd_pcm_file_mmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED)
{
snd_pcm_file_t *file = pcm->private;
hw_refine: snd_pcm_file_hw_refine,
hw_params: snd_pcm_file_hw_params,
sw_params: snd_pcm_file_sw_params,
- dig_info: snd_pcm_file_dig_info,
- dig_params: snd_pcm_file_dig_params,
channel_info: snd_pcm_file_channel_info,
dump: snd_pcm_file_dump,
nonblock: snd_pcm_file_nonblock,
return 0;
}
-static int snd_pcm_hw_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t * info)
-{
- snd_pcm_hw_t *hw = pcm->private;
- int fd = hw->fd;
- if (ioctl(fd, SND_PCM_IOCTL_DIG_INFO, info) < 0) {
- SYSERR("SND_PCM_IOCTL_DIG_INFO failed");
- return -errno;
- }
- return 0;
-}
-
-static int snd_pcm_hw_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t * params)
-{
- snd_pcm_hw_t *hw = pcm->private;
- int fd = hw->fd;
- if (ioctl(fd, SND_PCM_IOCTL_DIG_PARAMS, params) < 0) {
- SYSERR("SND_PCM_IOCTL_DIG_PARAMS failed");
- return -errno;
- }
- return 0;
-}
-
static int snd_pcm_hw_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t * info)
{
snd_pcm_hw_t *hw = pcm->private;
hw_refine: snd_pcm_hw_hw_refine,
hw_params: snd_pcm_hw_hw_params,
sw_params: snd_pcm_hw_sw_params,
- dig_info: snd_pcm_hw_dig_info,
- dig_params: snd_pcm_hw_dig_params,
channel_info: snd_pcm_hw_channel_info,
dump: snd_pcm_hw_dump,
nonblock: snd_pcm_hw_nonblock,
hw_refine: snd_pcm_linear_hw_refine,
hw_params: snd_pcm_linear_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_linear_dump,
nonblock: snd_pcm_plugin_nonblock,
int (*hw_refine)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
int (*hw_params)(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
int (*sw_params)(snd_pcm_t *pcm, snd_pcm_sw_params_t *params);
- int (*dig_info)(snd_pcm_t *pcm, snd_pcm_dig_info_t *info);
- int (*dig_params)(snd_pcm_t *pcm, snd_pcm_dig_params_t *params);
int (*channel_info)(snd_pcm_t *pcm, snd_pcm_channel_info_t *info);
void (*dump)(snd_pcm_t *pcm, FILE *fp);
int (*mmap)(snd_pcm_t *pcm);
hw_refine: snd_pcm_mulaw_hw_refine,
hw_params: snd_pcm_mulaw_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_mulaw_dump,
nonblock: snd_pcm_plugin_nonblock,
return 0;
}
-static int snd_pcm_multi_dig_info(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_dig_info_t *info ATTRIBUTE_UNUSED)
-{
- /* FIXME */
- return -ENOSYS;
-}
-
-static int snd_pcm_multi_dig_params(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_dig_params_t *params ATTRIBUTE_UNUSED)
-{
- /* FIXME */
- return -ENOSYS;
-}
-
static int snd_pcm_multi_status(snd_pcm_t *pcm, snd_pcm_status_t *status)
{
snd_pcm_multi_t *multi = pcm->private;
hw_refine: snd_pcm_multi_hw_refine,
hw_params: snd_pcm_multi_hw_params,
sw_params: snd_pcm_multi_sw_params,
- dig_info: snd_pcm_multi_dig_info,
- dig_params: snd_pcm_multi_dig_params,
channel_info: snd_pcm_multi_channel_info,
dump: snd_pcm_multi_dump,
nonblock: snd_pcm_multi_nonblock,
{
_snd_pcm_hw_refine(params);
params->fifo_size = 0;
- params->dig_groups = 0;
return 0;
}
return 0;
}
-static int snd_pcm_null_dig_params(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_dig_params_t *params ATTRIBUTE_UNUSED)
-{
- return 0;
-}
-
-static int snd_pcm_null_dig_info(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_dig_info_t *info ATTRIBUTE_UNUSED)
-{
- return 0;
-}
-
static int snd_pcm_null_mmap(snd_pcm_t *pcm)
{
snd_pcm_null_t *null = pcm->private;
hw_refine: snd_pcm_null_hw_refine,
hw_params: snd_pcm_null_hw_params,
sw_params: snd_pcm_null_sw_params,
- dig_params: snd_pcm_null_dig_params,
- dig_info: snd_pcm_null_dig_info,
channel_info: snd_pcm_null_channel_info,
dump: snd_pcm_null_dump,
nonblock: snd_pcm_null_nonblock,
interval_setreal(params_interval(params, SND_PCM_HW_PARAM_FRAGMENT_LENGTH));
interval_setreal(params_interval(params, SND_PCM_HW_PARAM_BUFFER_LENGTH));
params->info = ~0U;
- params->dig_groups = UINT_MAX;
}
/* Fill PARAMS with full configuration space boundaries */
return params->fifo_size;
}
-/* Return count of digital groups for configuration space defined by PARAMS */
-int snd_pcm_hw_params_info_dig_groups(const snd_pcm_hw_params_t *params)
-{
- if (params->dig_groups == UINT_MAX)
- return -EINVAL;
- return params->dig_groups;
-}
-
/* Choose one configuration from configuration space defined by PARAMS
The configuration choosen is that obtained fixing in this order:
first access
return err;
}
-static int snd_pcm_plug_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t * info)
-{
- snd_pcm_plug_t *plug = pcm->private;
- return snd_pcm_dig_info(plug->slave, info);
-}
-
-static int snd_pcm_plug_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t * params)
-{
- snd_pcm_plug_t *plug = pcm->private;
- return snd_pcm_dig_params(plug->slave, params);
-}
-
-
static int snd_pcm_plug_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t *info)
{
snd_pcm_plug_t *plug = pcm->private;
hw_refine: snd_pcm_plug_hw_refine,
hw_params: snd_pcm_plug_hw_params,
sw_params: snd_pcm_plug_sw_params,
- dig_info: snd_pcm_plug_dig_info,
- dig_params: snd_pcm_plug_dig_params,
channel_info: snd_pcm_plug_channel_info,
dump: snd_pcm_plug_dump,
nonblock: snd_pcm_plug_nonblock,
return snd_pcm_sw_params(plugin->slave, params);
}
-int snd_pcm_plugin_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t *info)
-{
- snd_pcm_plugin_t *plugin = pcm->private;
- return snd_pcm_dig_info(plugin->slave, info);
-}
-
-int snd_pcm_plugin_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t *params)
-{
- snd_pcm_plugin_t *plugin = pcm->private;
- return snd_pcm_dig_params(plugin->slave, params);
-}
-
int snd_pcm_plugin_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t *info)
{
snd_pcm_plugin_t *plugin = pcm->private;
int snd_pcm_plugin_async(snd_pcm_t *pcm, int sig, pid_t pid);
int snd_pcm_plugin_info(snd_pcm_t *pcm, snd_pcm_info_t * info);
int snd_pcm_plugin_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params);
-int snd_pcm_plugin_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t *info);
-int snd_pcm_plugin_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t *params);
int snd_pcm_plugin_channel_info(snd_pcm_t *pcm, snd_pcm_channel_info_t * info);
int snd_pcm_plugin_status(snd_pcm_t *pcm, snd_pcm_status_t * status);
int snd_pcm_plugin_state(snd_pcm_t *pcm);
hw_refine: snd_pcm_rate_hw_refine,
hw_params: snd_pcm_rate_hw_params,
sw_params: snd_pcm_rate_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_rate_dump,
nonblock: snd_pcm_plugin_nonblock,
hw_refine: snd_pcm_route_hw_refine,
hw_params: snd_pcm_route_hw_params,
sw_params: snd_pcm_plugin_sw_params,
- dig_info: snd_pcm_plugin_dig_info,
- dig_params: snd_pcm_plugin_dig_params,
channel_info: snd_pcm_plugin_channel_info,
dump: snd_pcm_route_dump,
nonblock: snd_pcm_plugin_nonblock,
return 0;
}
-static int snd_pcm_share_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t *info)
-{
- snd_pcm_share_t *share = pcm->private;
- snd_pcm_share_slave_t *slave = share->slave;
- int err;
- /* FIXME */
- Pthread_mutex_lock(&slave->mutex);
- err = snd_pcm_dig_info(slave->pcm, info);
- Pthread_mutex_unlock(&slave->mutex);
- return err;
-}
-
-static int snd_pcm_share_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t *params)
-{
- snd_pcm_share_t *share = pcm->private;
- snd_pcm_share_slave_t *slave = share->slave;
- int err;
- /* FIXME */
- Pthread_mutex_lock(&slave->mutex);
- err = snd_pcm_dig_params(slave->pcm, params);
- Pthread_mutex_unlock(&slave->mutex);
- return err;
-}
-
static int snd_pcm_share_status(snd_pcm_t *pcm, snd_pcm_status_t *status)
{
snd_pcm_share_t *share = pcm->private;
hw_refine: snd_pcm_share_hw_refine,
hw_params: snd_pcm_share_hw_params,
sw_params: snd_pcm_share_sw_params,
- dig_info: snd_pcm_share_dig_info,
- dig_params: snd_pcm_share_dig_params,
channel_info: snd_pcm_share_channel_info,
dump: snd_pcm_share_dump,
nonblock: snd_pcm_share_nonblock,
return err;
}
-static int snd_pcm_shm_dig_info(snd_pcm_t *pcm, snd_pcm_dig_info_t * info)
-{
- snd_pcm_shm_t *shm = pcm->private;
- volatile snd_pcm_shm_ctrl_t *ctrl = shm->ctrl;
- int err;
- ctrl->cmd = SND_PCM_IOCTL_DIG_INFO;
- ctrl->u.dig_info = *info;
- err = snd_pcm_shm_action(pcm);
- if (err < 0)
- return err;
- *info = ctrl->u.dig_info;
- return err;
-}
-
-static int snd_pcm_shm_dig_params(snd_pcm_t *pcm, snd_pcm_dig_params_t * params)
-{
- snd_pcm_shm_t *shm = pcm->private;
- volatile snd_pcm_shm_ctrl_t *ctrl = shm->ctrl;
- int err;
- ctrl->cmd = SND_PCM_IOCTL_DIG_PARAMS;
- ctrl->u.dig_params = *params;
- err = snd_pcm_shm_action(pcm);
- *params = ctrl->u.dig_params;
- if (err < 0)
- return err;
- return err;
-}
-
static int snd_pcm_shm_mmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED)
{
return 0;
hw_refine: snd_pcm_shm_hw_refine,
hw_params: snd_pcm_shm_hw_params,
sw_params: snd_pcm_shm_sw_params,
- dig_info: snd_pcm_shm_dig_info,
- dig_params: snd_pcm_shm_dig_params,
channel_info: snd_pcm_shm_channel_info,
dump: snd_pcm_shm_dump,
nonblock: snd_pcm_shm_nonblock,