Blame rmedigicontrol/loopback.c

Packit 427e91
/*****************************************************************************
Packit 427e91
   loopback.c
Packit 427e91
   Copyright (C) 2003 by Robert Vetter <postmaster@robertvetter.com>
Packit 427e91
   
Packit 427e91
   This program is free software; you can redistribute it and/or
Packit 427e91
   modify it under the terms of the GNU General Public License
Packit 427e91
   as published by the Free Software Foundation; either version 2
Packit 427e91
   of the License, or (at your option) any later version.
Packit 427e91
   
Packit 427e91
   This program is distributed in the hope that it will be useful,
Packit 427e91
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 427e91
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 427e91
   GNU General Public License for more details.
Packit 427e91
******************************************************************************/
Packit 427e91
Packit 427e91
#include "rmedigicontrol.h" 
Packit 427e91
Packit 427e91
static snd_ctl_elem_value_t *val;
Packit 427e91
Packit 427e91
static void loopback_toggled(GtkToggleButton *c,gpointer p)
Packit 427e91
{
Packit 427e91
	snd_ctl_elem_value_set_integer(val,0,gtk_toggle_button_get_active(c)?1:0);
Packit 427e91
	snd_ctl_elem_write(ctl, val);
Packit 427e91
}
Packit 427e91
Packit 427e91
GtkWidget *create_loopback_toggle()
Packit 427e91
{
Packit 427e91
	GtkWidget *t;
Packit 427e91
	GtkWidget *box;
Packit 427e91
	char *elem_name="Loopback Input";
Packit 427e91
	
Packit 427e91
	box=gtk_hbox_new(FALSE,0);
Packit 427e91
	
Packit 427e91
	snd_ctl_elem_value_malloc(&val;;
Packit 427e91
	
Packit 427e91
	snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
Packit 427e91
	snd_ctl_elem_value_set_name(val,elem_name);
Packit 427e91
	snd_ctl_elem_read(ctl, val);
Packit 427e91
	
Packit 427e91
	t=gtk_check_button_new_with_label(elem_name);
Packit 427e91
Packit 427e91
	gtk_signal_connect(GTK_OBJECT(t),"toggled",GTK_SIGNAL_FUNC(loopback_toggled),NULL);
Packit 427e91
	if(snd_ctl_elem_value_get_integer(val,0))
Packit 427e91
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(t),TRUE);
Packit 427e91
Packit 427e91
	gtk_box_pack_start(GTK_BOX(box),t,TRUE,TRUE,0);
Packit 427e91
Packit 427e91
	return box;
Packit 427e91
}