From: Jaroslav Kysela Date: Mon, 19 Jul 1999 08:26:24 +0000 (+0000) Subject: Mixer enhancements.. X-Git-Tag: v1.0.3~1460 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=0a512c7d25333db2d8800b6ac1d68b435bcf5259;p=alsa-lib.git Mixer enhancements.. --- 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;