diff options
Diffstat (limited to 'alsamixer/mixer_controls.h')
-rw-r--r-- | alsamixer/mixer_controls.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/alsamixer/mixer_controls.h b/alsamixer/mixer_controls.h new file mode 100644 index 0000000..dbb3a9d --- /dev/null +++ b/alsamixer/mixer_controls.h @@ -0,0 +1,37 @@ +#ifndef MIXER_CONTROLS_H_INCLUDED +#define MIXER_CONTROLS_H_INCLUDED + +#include <alsa/asoundlib.h> + +struct control { + snd_mixer_elem_t *elem; + char *name; + unsigned int flags; +#define TYPE_PVOLUME (1u << 4) +#define TYPE_CVOLUME (1u << 5) +#define TYPE_PSWITCH (1u << 6) +#define TYPE_CSWITCH (1u << 7) +#define TYPE_ENUM (1u << 8) +#define HAS_VOLUME_0 (1u << 9) +#define HAS_VOLUME_1 (1u << 10) +#define HAS_PSWITCH_0 (1u << 11) +#define HAS_PSWITCH_1 (1u << 12) +#define HAS_CSWITCH_0 (1u << 13) +#define HAS_CSWITCH_1 (1u << 14) +#define IS_MULTICH (1u << 15) +#define IS_ACTIVE (1u << 16) +#define MULTICH_MASK (0x0000f) + snd_mixer_selem_channel_id_t volume_channels[2]; + snd_mixer_selem_channel_id_t pswitch_channels[2]; + snd_mixer_selem_channel_id_t cswitch_channels[2]; + unsigned int enum_channel_bits; +}; + +extern struct control *controls; +extern unsigned int controls_count; + +bool are_there_any_controls(void); +void create_controls(void); +void free_controls(void); + +#endif |