mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Removed snd_ctl_pcm_surround_next_device function.
This commit is contained in:
parent
b8abb93bb7
commit
b72c78f887
10 changed files with 9 additions and 96 deletions
|
|
@ -617,9 +617,6 @@ static int ctl_shm_cmd(client_t *client)
|
||||||
case SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE:
|
case SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE:
|
||||||
ctrl->result = snd_ctl_pcm_next_device(ctl, &ctrl->u.device);
|
ctrl->result = snd_ctl_pcm_next_device(ctl, &ctrl->u.device);
|
||||||
break;
|
break;
|
||||||
case SND_CTL_IOCTL_PCM_SURROUND_NEXT_DEVICE:
|
|
||||||
ctrl->result = snd_ctl_pcm_surround_next_device(ctl, ctrl->u.surround.type, &ctrl->u.surround.device);
|
|
||||||
break;
|
|
||||||
case SNDRV_CTL_IOCTL_PCM_INFO:
|
case SNDRV_CTL_IOCTL_PCM_INFO:
|
||||||
ctrl->result = snd_ctl_pcm_info(ctl, &ctrl->u.pcm_info);
|
ctrl->result = snd_ctl_pcm_info(ctl, &ctrl->u.pcm_info);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,6 @@ typedef struct {
|
||||||
#define SND_CTL_IOCTL_CLOSE _IO ('U', 0xf2)
|
#define SND_CTL_IOCTL_CLOSE _IO ('U', 0xf2)
|
||||||
#define SND_CTL_IOCTL_POLL_DESCRIPTOR _IO ('U', 0xf3)
|
#define SND_CTL_IOCTL_POLL_DESCRIPTOR _IO ('U', 0xf3)
|
||||||
#define SND_CTL_IOCTL_ASYNC _IO ('U', 0xf4)
|
#define SND_CTL_IOCTL_ASYNC _IO ('U', 0xf4)
|
||||||
#define SND_CTL_IOCTL_PCM_SURROUND_NEXT_DEVICE _IO ('U', 0xf5)
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int result;
|
int result;
|
||||||
|
|
@ -101,10 +100,6 @@ typedef struct {
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
} async;
|
} async;
|
||||||
int device;
|
int device;
|
||||||
struct {
|
|
||||||
snd_pcm_surround_type_t type;
|
|
||||||
int device;
|
|
||||||
} surround;
|
|
||||||
int subscribe_events;
|
int subscribe_events;
|
||||||
snd_ctl_card_info_t card_info;
|
snd_ctl_card_info_t card_info;
|
||||||
snd_ctl_elem_list_t element_list;
|
snd_ctl_elem_list_t element_list;
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,6 @@ int snd_ctl_elem_unlock(snd_ctl_t *ctl, snd_ctl_elem_id_t *id);
|
||||||
int snd_ctl_hwdep_next_device(snd_ctl_t *ctl, int * device);
|
int snd_ctl_hwdep_next_device(snd_ctl_t *ctl, int * device);
|
||||||
int snd_ctl_hwdep_info(snd_ctl_t *ctl, snd_hwdep_info_t * info);
|
int snd_ctl_hwdep_info(snd_ctl_t *ctl, snd_hwdep_info_t * info);
|
||||||
int snd_ctl_pcm_next_device(snd_ctl_t *ctl, int *device);
|
int snd_ctl_pcm_next_device(snd_ctl_t *ctl, int *device);
|
||||||
int snd_ctl_pcm_surround_next_device(snd_ctl_t *ctl, snd_pcm_surround_type_t type, int *device);
|
|
||||||
int snd_ctl_pcm_info(snd_ctl_t *ctl, snd_pcm_info_t * info);
|
int snd_ctl_pcm_info(snd_ctl_t *ctl, snd_pcm_info_t * info);
|
||||||
int snd_ctl_pcm_prefer_subdevice(snd_ctl_t *ctl, int subdev);
|
int snd_ctl_pcm_prefer_subdevice(snd_ctl_t *ctl, int subdev);
|
||||||
int snd_ctl_rawmidi_next_device(snd_ctl_t *ctl, int * device);
|
int snd_ctl_rawmidi_next_device(snd_ctl_t *ctl, int * device);
|
||||||
|
|
|
||||||
|
|
@ -202,15 +202,6 @@ typedef enum _snd_pcm_tstamp {
|
||||||
SND_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_LAST,
|
SND_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_LAST,
|
||||||
} snd_pcm_tstamp_t;
|
} snd_pcm_tstamp_t;
|
||||||
|
|
||||||
/** Surround type */
|
|
||||||
typedef enum _snd_pcm_surround_type {
|
|
||||||
/** 4.0 speakers */
|
|
||||||
SND_PCM_SURROUND_40 = 0,
|
|
||||||
/** 5.1 speakers */
|
|
||||||
SND_PCM_SURROUND_51 = 1,
|
|
||||||
SND_PCM_SURROUND_LAST = SND_PCM_SURROUND_51
|
|
||||||
} snd_pcm_surround_type_t;
|
|
||||||
|
|
||||||
/** Unsigned frames quantity */
|
/** Unsigned frames quantity */
|
||||||
typedef sndrv_pcm_uframes_t snd_pcm_uframes_t;
|
typedef sndrv_pcm_uframes_t snd_pcm_uframes_t;
|
||||||
/** Signed frames quantity */
|
/** Signed frames quantity */
|
||||||
|
|
|
||||||
|
|
@ -289,19 +289,6 @@ int snd_ctl_pcm_next_device(snd_ctl_t *ctl, int * device)
|
||||||
return ctl->ops->pcm_next_device(ctl, device);
|
return ctl->ops->pcm_next_device(ctl, device);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Get next PCM surround device number
|
|
||||||
* \param ctl CTL handle
|
|
||||||
* \param type surround type
|
|
||||||
* \param device current device on entry and next device on return
|
|
||||||
* \return 0 on success otherwise a negative error code
|
|
||||||
*/
|
|
||||||
int snd_ctl_pcm_surround_next_device(snd_ctl_t *ctl, snd_pcm_surround_type_t type, int * device)
|
|
||||||
{
|
|
||||||
assert(ctl && device);
|
|
||||||
return ctl->ops->pcm_surround_next_device(ctl, type, device);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get info about a PCM device
|
* \brief Get info about a PCM device
|
||||||
* \param ctl CTL handle
|
* \param ctl CTL handle
|
||||||
|
|
|
||||||
|
|
@ -203,13 +203,6 @@ static int snd_ctl_hw_pcm_next_device(snd_ctl_t *handle, int * device)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int snd_pcm_surround_next_device(snd_ctl_t *ctl, snd_pcm_surround_type_t type, int *device);
|
|
||||||
|
|
||||||
static int snd_ctl_hw_pcm_surround_next_device(snd_ctl_t *handle, snd_pcm_surround_type_t type, int * device)
|
|
||||||
{
|
|
||||||
return snd_pcm_surround_next_device(handle, type, device);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int snd_ctl_hw_pcm_info(snd_ctl_t *handle, snd_pcm_info_t * info)
|
static int snd_ctl_hw_pcm_info(snd_ctl_t *handle, snd_pcm_info_t * info)
|
||||||
{
|
{
|
||||||
snd_ctl_hw_t *hw = handle->private_data;
|
snd_ctl_hw_t *hw = handle->private_data;
|
||||||
|
|
@ -276,7 +269,6 @@ snd_ctl_ops_t snd_ctl_hw_ops = {
|
||||||
hwdep_next_device: snd_ctl_hw_hwdep_next_device,
|
hwdep_next_device: snd_ctl_hw_hwdep_next_device,
|
||||||
hwdep_info: snd_ctl_hw_hwdep_info,
|
hwdep_info: snd_ctl_hw_hwdep_info,
|
||||||
pcm_next_device: snd_ctl_hw_pcm_next_device,
|
pcm_next_device: snd_ctl_hw_pcm_next_device,
|
||||||
pcm_surround_next_device: snd_ctl_hw_pcm_surround_next_device,
|
|
||||||
pcm_info: snd_ctl_hw_pcm_info,
|
pcm_info: snd_ctl_hw_pcm_info,
|
||||||
pcm_prefer_subdevice: snd_ctl_hw_pcm_prefer_subdevice,
|
pcm_prefer_subdevice: snd_ctl_hw_pcm_prefer_subdevice,
|
||||||
rawmidi_next_device: snd_ctl_hw_rawmidi_next_device,
|
rawmidi_next_device: snd_ctl_hw_rawmidi_next_device,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ typedef struct _snd_ctl_ops {
|
||||||
int (*hwdep_next_device)(snd_ctl_t *handle, int *device);
|
int (*hwdep_next_device)(snd_ctl_t *handle, int *device);
|
||||||
int (*hwdep_info)(snd_ctl_t *handle, snd_hwdep_info_t * info);
|
int (*hwdep_info)(snd_ctl_t *handle, snd_hwdep_info_t * info);
|
||||||
int (*pcm_next_device)(snd_ctl_t *handle, int *device);
|
int (*pcm_next_device)(snd_ctl_t *handle, int *device);
|
||||||
int (*pcm_surround_next_device)(snd_ctl_t *handle, snd_pcm_surround_type_t type, int *device);
|
|
||||||
int (*pcm_info)(snd_ctl_t *handle, snd_pcm_info_t * info);
|
int (*pcm_info)(snd_ctl_t *handle, snd_pcm_info_t * info);
|
||||||
int (*pcm_prefer_subdevice)(snd_ctl_t *handle, int subdev);
|
int (*pcm_prefer_subdevice)(snd_ctl_t *handle, int subdev);
|
||||||
int (*rawmidi_next_device)(snd_ctl_t *handle, int *device);
|
int (*rawmidi_next_device)(snd_ctl_t *handle, int *device);
|
||||||
|
|
|
||||||
|
|
@ -277,21 +277,6 @@ static int snd_ctl_shm_pcm_next_device(snd_ctl_t *ctl, int * device)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_ctl_shm_pcm_surround_next_device(snd_ctl_t *ctl, snd_pcm_surround_type_t type, int * device)
|
|
||||||
{
|
|
||||||
snd_ctl_shm_t *shm = ctl->private_data;
|
|
||||||
volatile snd_ctl_shm_ctrl_t *ctrl = shm->ctrl;
|
|
||||||
int err;
|
|
||||||
ctrl->u.surround.type = type;
|
|
||||||
ctrl->u.surround.device = *device;
|
|
||||||
ctrl->cmd = SND_CTL_IOCTL_PCM_SURROUND_NEXT_DEVICE;
|
|
||||||
err = snd_ctl_shm_action(ctl);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
*device = ctrl->u.device;
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int snd_ctl_shm_pcm_info(snd_ctl_t *ctl, snd_pcm_info_t * info)
|
static int snd_ctl_shm_pcm_info(snd_ctl_t *ctl, snd_pcm_info_t * info)
|
||||||
{
|
{
|
||||||
snd_ctl_shm_t *shm = ctl->private_data;
|
snd_ctl_shm_t *shm = ctl->private_data;
|
||||||
|
|
@ -395,7 +380,6 @@ snd_ctl_ops_t snd_ctl_shm_ops = {
|
||||||
hwdep_next_device: snd_ctl_shm_hwdep_next_device,
|
hwdep_next_device: snd_ctl_shm_hwdep_next_device,
|
||||||
hwdep_info: snd_ctl_shm_hwdep_info,
|
hwdep_info: snd_ctl_shm_hwdep_info,
|
||||||
pcm_next_device: snd_ctl_shm_pcm_next_device,
|
pcm_next_device: snd_ctl_shm_pcm_next_device,
|
||||||
pcm_surround_next_device: snd_ctl_shm_pcm_surround_next_device,
|
|
||||||
pcm_info: snd_ctl_shm_pcm_info,
|
pcm_info: snd_ctl_shm_pcm_info,
|
||||||
pcm_prefer_subdevice: snd_ctl_shm_pcm_prefer_subdevice,
|
pcm_prefer_subdevice: snd_ctl_shm_pcm_prefer_subdevice,
|
||||||
rawmidi_next_device: snd_ctl_shm_rawmidi_next_device,
|
rawmidi_next_device: snd_ctl_shm_rawmidi_next_device,
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,15 @@ typedef enum sndrv_pcm_hw_param snd_pcm_hw_param_t;
|
||||||
#define SND_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_LAST_INTERVAL
|
#define SND_PCM_HW_PARAM_LAST_INTERVAL SNDRV_PCM_HW_PARAM_LAST_INTERVAL
|
||||||
#define SND_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_FIRST_INTERVAL
|
#define SND_PCM_HW_PARAM_FIRST_INTERVAL SNDRV_PCM_HW_PARAM_FIRST_INTERVAL
|
||||||
|
|
||||||
|
/** Surround type */
|
||||||
|
typedef enum _snd_pcm_surround_type {
|
||||||
|
/** 4.0 speakers */
|
||||||
|
SND_PCM_SURROUND_40 = 0,
|
||||||
|
/** 5.1 speakers */
|
||||||
|
SND_PCM_SURROUND_51 = 1,
|
||||||
|
SND_PCM_SURROUND_LAST = SND_PCM_SURROUND_51
|
||||||
|
} snd_pcm_surround_type_t;
|
||||||
|
|
||||||
typedef struct _snd_pcm_channel_info {
|
typedef struct _snd_pcm_channel_info {
|
||||||
unsigned int channel;
|
unsigned int channel;
|
||||||
void *addr; /* base address of channel samples */
|
void *addr; /* base address of channel samples */
|
||||||
|
|
@ -563,4 +572,3 @@ int snd_pcm_slave_conf(snd_config_t *conf, const char **namep,
|
||||||
(1U << SND_PCM_FORMAT_U32_LE) | \
|
(1U << SND_PCM_FORMAT_U32_LE) | \
|
||||||
(1U << SND_PCM_FORMAT_U32_BE))
|
(1U << SND_PCM_FORMAT_U32_BE))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -982,42 +982,3 @@ int _snd_pcm_surround_open(snd_pcm_t **pcmp, const char *name, snd_config_t *con
|
||||||
}
|
}
|
||||||
return snd_pcm_surround_open(pcmp, name, card, device, type, stream, mode);
|
return snd_pcm_surround_open(pcmp, name, card, device, type, stream, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
int snd_pcm_surround_next_device(snd_ctl_t *ctl, snd_pcm_surround_type_t type, int *device)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
snd_ctl_card_info_t *info;
|
|
||||||
snd_card_type_t ctype;
|
|
||||||
surround_open_t *po;
|
|
||||||
|
|
||||||
assert(device);
|
|
||||||
snd_ctl_card_info_alloca(&info);
|
|
||||||
if ((err = snd_ctl_card_info(ctl, info)) < 0)
|
|
||||||
return err;
|
|
||||||
ctype = snd_ctl_card_info_get_type(info);
|
|
||||||
for (po = open_table; po->type != SND_CARD_TYPE_NONE; po++) {
|
|
||||||
if (po->type == ctype) {
|
|
||||||
switch (type) {
|
|
||||||
case SND_PCM_SURROUND_40:
|
|
||||||
if (po->flags & SURR_FLG_NO_4CH)
|
|
||||||
return -ENODEV;
|
|
||||||
break;
|
|
||||||
case SND_PCM_SURROUND_51:
|
|
||||||
if (po->flags & SURR_FLG_NO_6CH)
|
|
||||||
return -ENODEV;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if ((err = po->scount(ctl, info, type)) < 0)
|
|
||||||
return err;
|
|
||||||
if (err == 0)
|
|
||||||
return -ENODEV;
|
|
||||||
if (*device == 0)
|
|
||||||
*device = 0;
|
|
||||||
(*device)++;
|
|
||||||
if (*device >= err)
|
|
||||||
*device = -1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue