]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Mixer enhancements..
authorJaroslav Kysela <perex@perex.cz>
Mon, 19 Jul 1999 08:26:24 +0000 (08:26 +0000)
committerJaroslav Kysela <perex@perex.cz>
Mon, 19 Jul 1999 08:26:24 +0000 (08:26 +0000)
include/mixer.h
src/mixer/mixer.c

index feb54aaec3fbbf554cc51b840998fbba93a0555e..1eadd59729795a89a2bcf70c13d045eaeb777ff6 100644 (file)
@@ -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);
index 104df6471c886b5a65c9caf154cbc48f07866a27..897dfc3b86fb0b38de6bca04d101a2caaa517d84 100644 (file)
@@ -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;