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);
#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;
return 0;
}
-
int snd_mixer_element_read(snd_mixer_t *handle, snd_mixer_element_t * element)
{
snd_mixer_t *mixer;
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;