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 */ /* on_value_changed */
void on_value_changed(GtkWidget * widget, gdouble value, gpointer data) void on_value_changed(GtkWidget * widget, gdouble value, gpointer data)
{ {
#ifdef DEBUG Mixer * mixer = data;
fprintf(stderr, "DEBUG: %s(%lf)\n", __func__, value);
#endif mixer_set_value(mixer, widget, value);
} }

View File

@ -20,6 +20,7 @@
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <errno.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h> #include <gdk/gdkkeysyms.h>
#include <Desktop.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 */ /* useful */
/* mixer_properties */ /* mixer_properties */
void mixer_properties(Mixer * mixer) void mixer_properties(Mixer * mixer)

View File

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