diff options
Diffstat (limited to 'include/sound/control.h')
| -rw-r--r-- | include/sound/control.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/sound/control.h b/include/sound/control.h index 2489b1eb0110..1de148b0fd94 100644 --- a/include/sound/control.h +++ b/include/sound/control.h | |||
| @@ -30,6 +30,11 @@ struct snd_kcontrol; | |||
| 30 | typedef int (snd_kcontrol_info_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_info * uinfo); | 30 | typedef int (snd_kcontrol_info_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_info * uinfo); |
| 31 | typedef int (snd_kcontrol_get_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol); | 31 | typedef int (snd_kcontrol_get_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol); |
| 32 | typedef int (snd_kcontrol_put_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol); | 32 | typedef int (snd_kcontrol_put_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol); |
| 33 | typedef int (snd_kcontrol_tlv_rw_t)(struct snd_kcontrol *kcontrol, | ||
| 34 | int op_flag, /* 0=read,1=write,-1=command */ | ||
| 35 | unsigned int size, | ||
| 36 | unsigned int __user *tlv); | ||
| 37 | |||
| 33 | 38 | ||
| 34 | struct snd_kcontrol_new { | 39 | struct snd_kcontrol_new { |
| 35 | snd_ctl_elem_iface_t iface; /* interface identifier */ | 40 | snd_ctl_elem_iface_t iface; /* interface identifier */ |
| @@ -42,6 +47,10 @@ struct snd_kcontrol_new { | |||
| 42 | snd_kcontrol_info_t *info; | 47 | snd_kcontrol_info_t *info; |
| 43 | snd_kcontrol_get_t *get; | 48 | snd_kcontrol_get_t *get; |
| 44 | snd_kcontrol_put_t *put; | 49 | snd_kcontrol_put_t *put; |
| 50 | union { | ||
| 51 | snd_kcontrol_tlv_rw_t *c; | ||
| 52 | unsigned int *p; | ||
| 53 | } tlv; | ||
| 45 | unsigned long private_value; | 54 | unsigned long private_value; |
| 46 | }; | 55 | }; |
| 47 | 56 | ||
| @@ -58,6 +67,10 @@ struct snd_kcontrol { | |||
| 58 | snd_kcontrol_info_t *info; | 67 | snd_kcontrol_info_t *info; |
| 59 | snd_kcontrol_get_t *get; | 68 | snd_kcontrol_get_t *get; |
| 60 | snd_kcontrol_put_t *put; | 69 | snd_kcontrol_put_t *put; |
| 70 | union { | ||
| 71 | snd_kcontrol_tlv_rw_t *c; | ||
| 72 | unsigned int *p; | ||
| 73 | } tlv; | ||
| 61 | unsigned long private_value; | 74 | unsigned long private_value; |
| 62 | void *private_data; | 75 | void *private_data; |
| 63 | void (*private_free)(struct snd_kcontrol *kcontrol); | 76 | void (*private_free)(struct snd_kcontrol *kcontrol); |
