Now setting values

This commit is contained in:
Pierre Pronchery 2009-12-13 15:41:15 +00:00
parent 7ed544e7a8
commit e18917078d
3 changed files with 30 additions and 3 deletions

View File

@ -177,7 +177,7 @@ void on_set_toggled(GtkWidget * widget, gpointer data)
/* on_value_changed */
void on_value_changed(GtkWidget * widget, gdouble value, gpointer data)
{
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s(%lf)\n", __func__, value);
#endif
Mixer * mixer = data;
mixer_set_value(mixer, widget, value);
}

View File

@ -20,6 +20,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <Desktop.h>
@ -332,6 +333,27 @@ void mixer_delete(Mixer * mixer)
}
/* accessors */
/* mixer_set_value */
void mixer_set_value(Mixer * mixer, GtkWidget * widget, gdouble value)
{
mixer_ctrl_t * p;
u_char * level;
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s(%lf)\n", __func__, value);
#endif
p = g_object_get_data(G_OBJECT(widget), "ctrl");
level = g_object_get_data(G_OBJECT(widget), "channel");
if(p == NULL || level == NULL)
return;
*level = value * 255;
if(ioctl(mixer->fd, AUDIO_MIXER_WRITE, p) != 0)
fprintf(stderr, "%s: %s: %s\n", PACKAGE, "AUDIO_MIXER_WRITE",
strerror(errno));
}
/* useful */
/* mixer_properties */
void mixer_properties(Mixer * mixer)

View File

@ -18,6 +18,8 @@
#ifndef MIXER_MIXER_H
# define MIXER_MIXER_H
# include <gtk/gtk.h> /* XXX should not be necessary */
/* Mixer */
/* types */
@ -28,6 +30,9 @@ typedef struct _Mixer Mixer;
Mixer * mixer_new(void);
void mixer_delete(Mixer * mixer);
/* accessors */
void mixer_set_value(Mixer * mixer, GtkWidget * widget, gdouble value);
/* useful */
void mixer_properties(Mixer * mixer);