From 0a512c7d25333db2d8800b6ac1d68b435bcf5259 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 19 Jul 1999 08:26:24 +0000 Subject: [PATCH] Mixer enhancements.. --- include/mixer.h | 2 ++ src/mixer/mixer.c | 27 +++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/include/mixer.h b/include/mixer.h index feb54aae..1eadd597 100644 --- a/include/mixer.h +++ b/include/mixer.h @@ -30,6 +30,8 @@ int snd_mixer_group(snd_mixer_t *handle, snd_mixer_group_t * group); int snd_mixer_element_info(snd_mixer_t *handle, snd_mixer_element_info_t * info); int snd_mixer_element_read(snd_mixer_t *handle, snd_mixer_element_t * element); int snd_mixer_element_write(snd_mixer_t *handle, snd_mixer_element_t * element); +int snd_mixer_channel_read(snd_mixer_t *handle, snd_mixer_channels_t * channels); +int snd_mixer_channel_write(snd_mixer_t *handle, snd_mixer_channels_t * channels); int snd_mixer_read(snd_mixer_t *handle, snd_mixer_callbacks_t * callbacks); void snd_mixer_set_bit(unsigned int *bitmap, int bit, int val); diff --git a/src/mixer/mixer.c b/src/mixer/mixer.c index 104df647..897dfc3b 100644 --- a/src/mixer/mixer.c +++ b/src/mixer/mixer.c @@ -29,7 +29,7 @@ #include "asoundlib.h" #define SND_FILE_MIXER "/dev/snd/mixerC%iD%i" -#define SND_MIXER_VERSION_MAX SND_PROTOCOL_VERSION(2, 0, 0) +#define SND_MIXER_VERSION_MAX SND_PROTOCOL_VERSION(2, 1, 0) struct snd_mixer { int card; @@ -168,7 +168,6 @@ int snd_mixer_element_info(snd_mixer_t *handle, snd_mixer_element_info_t * info) return 0; } - int snd_mixer_element_read(snd_mixer_t *handle, snd_mixer_element_t * element) { snd_mixer_t *mixer; @@ -193,6 +192,30 @@ int snd_mixer_element_write(snd_mixer_t *handle, snd_mixer_element_t * element) return 0; } +int snd_mixer_channel_read(snd_mixer_t *handle, snd_mixer_channels_t * channels) +{ + snd_mixer_t *mixer; + + mixer = handle; + if (!mixer) + return -EINVAL; + if (ioctl(mixer->fd, SND_MIXER_IOCTL_CHANNEL_READ, channels) < 0) + return -errno; + return 0; +} + +int snd_mixer_channel_write(snd_mixer_t *handle, snd_mixer_channels_t * channels) +{ + snd_mixer_t *mixer; + + mixer = handle; + if (!mixer) + return -EINVAL; + if (ioctl(mixer->fd, SND_MIXER_IOCTL_CHANNEL_WRITE, channels) < 0) + return -errno; + return 0; +} + int snd_mixer_read(snd_mixer_t *handle, snd_mixer_callbacks_t * callbacks) { snd_mixer_t *mixer; -- 2.47.1