OSDN Git Service

GTK mixer programs xamixer2 & gamix were removed.
authorJaroslav Kysela <perex@perex.cz>
Wed, 5 Jan 2000 13:46:58 +0000 (13:46 +0000)
committerJaroslav Kysela <perex@perex.cz>
Wed, 5 Jan 2000 13:46:58 +0000 (13:46 +0000)
The reason is the difficult maintaince.

43 files changed:
Makefile.am
configure.in
gamix/ChangeLog [deleted file]
gamix/Makefile.am [deleted file]
gamix/README [deleted file]
gamix/catch.c [deleted file]
gamix/conf_w.c [deleted file]
gamix/gamix.h [deleted file]
gamix/main.c [deleted file]
gamix/mkmixer.c [deleted file]
gamix/probe.c [deleted file]
xamixer2/AUTHORS [deleted file]
xamixer2/COPYING [deleted file]
xamixer2/ChangeLog [deleted file]
xamixer2/INSTALL [deleted file]
xamixer2/Makefile.am [deleted file]
xamixer2/NEWS [deleted file]
xamixer2/README [deleted file]
xamixer2/TODO [deleted file]
xamixer2/callbacks.c [deleted file]
xamixer2/callbacks.h [deleted file]
xamixer2/cinit.c [deleted file]
xamixer2/cinit.h [deleted file]
xamixer2/config.c [deleted file]
xamixer2/config.h [deleted file]
xamixer2/configure.in [deleted file]
xamixer2/display.c [deleted file]
xamixer2/display.h [deleted file]
xamixer2/main.c [deleted file]
xamixer2/main.h [deleted file]
xamixer2/options.c [deleted file]
xamixer2/options.h [deleted file]
xamixer2/structs.h [deleted file]
xamixer2/switches.c [deleted file]
xamixer2/switches.h [deleted file]
xamixer2/test.c [deleted file]
xamixer2/test1.c [deleted file]
xamixer2/util.c [deleted file]
xamixer2/util.h [deleted file]
xamixer2/xamixer.conf [deleted file]
xamixer2/xamixer.home [deleted file]
xamixer2/xamixer2.c [deleted file]
xamixer2/xamixer2.h [deleted file]

index 59e2f0a..32cfa81 100644 (file)
@@ -1,15 +1,5 @@
 INCLUDES=-I$(top_srcdir)/include
-SUBDIRS1=include alsactl alsamixer amixer aplay seq utils
-if COND_XAMIXER2
-SUBDIRS2=$(SUBDIRS1) xamixer2
-else
-SUBDIRS2=$(SUBDIRS1)
-endif
-if COND_GAMIX
-SUBDIRS=$(SUBDIRS2) gamix
-else
-SUBDIRS=$(SUBDIRS2)
-endif
+SUBDIRS=include alsactl alsamixer amixer aplay seq utils
 EXTRA_DIST=ChangeLog INSTALL README configure cvscompile
 
 rpm: dist
index e503880..41a6688 100644 (file)
@@ -5,7 +5,7 @@ AM_INIT_AUTOMAKE(alsa-utils, 0.5.0)
 
 dnl Checks for programs.
 AC_PROG_CC
-AC_PROG_CXX
+dnl AC_PROG_CXX
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_YACC
@@ -24,10 +24,8 @@ AC_SUBST(CURSESINC)
 AC_SUBST(CURSESLIB)
 
 dnl Check for Gtk+
-AM_PATH_GTK(1.0.1)
-CFLAGS="$CFLAGS $GTK_CFLAGS"
-# LDFLAGS="$LDFLAGS $GTK_LIBS"
-
+dnl AM_PATH_GTK(1.0.1)
+dnl CFLAGS="$CFLAGS $GTK_CFLAGS"
 
 AM_CONFIG_HEADER(include/aconfig.h)
 
@@ -41,14 +39,6 @@ AC_PROG_GCC_TRADITIONAL
 
 SAVE_UTIL_VERSION
 
-AM_CONDITIONAL(COND_XAMIXER2, test "x$GTK_LIBS" != "x")
-if test "x$GTK_LIBS" = "x"; then
-  AC_MSG_RESULT(Not building XAmixer2 as Gtk+ was not found.)
-fi
-AM_CONDITIONAL(COND_GAMIX, test "x$GTK_LIBS" != "x")
-if test "x$GTK_LIBS" = "x"; then
-  AC_MSG_RESULT(Not building gamix as Gtk+ was not found.)
-fi
 AC_OUTPUT(Makefile alsactl/Makefile alsamixer/Makefile amixer/Makefile aplay/Makefile \
-          include/Makefile utils/Makefile utils/alsa-utils.spec xamixer2/Makefile
-         gamix/Makefile seq/Makefile seq/aconnect/Makefile seq/aseqnet/Makefile)
+          include/Makefile utils/Makefile utils/alsa-utils.spec \
+         seq/Makefile seq/aconnect/Makefile seq/aseqnet/Makefile)
diff --git a/gamix/ChangeLog b/gamix/ChangeLog
deleted file mode 100644 (file)
index eeb48b0..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-1999-11-03  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * main.c: add some messages.
-
-1999-10-19  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * conf_w.c: imprement mixer reorder.
-
-1999-10-16  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * main.c: add "-h" option.
-
-1999-10-11  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * main.c: imprement config select "-c" option.
-
-1999-10-08  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * supported dynamic element.
-
-1999-10-01  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * conf_w.c: fix spacing mode.
-
-1999-09-26  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * change array to chain.
-
-1999-09-25  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * conf_w.c: fix read config file.
-
-1999-09-14  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * start support element type pc1.
-
-1999-09-06  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * probe.c : free none used mux memory.
-
-1999-08-16  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * catch.c : add element tone control.
-       * mkmixer.c :  add element tone control.
-
-1999-08-11  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * catch.c : add 3d effect 7th param.
-       * mkmixer.c : add 3d effect 7th param.
-
-1999-08-04  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * probe.c: fixed multi haven element problem.
-
-1999-08-03  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * catch.c: fixed mux lock.
-
-1999-07-30  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * conf_w.c: fixed case of cards[i].mixer[j].ee_n = 0.
-
-1999-07-19  Fumihiko Murata  <fmurata@p1.tcnet.ne.jp>
-
-       * probe.c: fixed multi mixerdevices.
-
diff --git a/gamix/Makefile.am b/gamix/Makefile.am
deleted file mode 100644 (file)
index 5686135..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-bin_PROGRAMS = gamix
-
-INCLUDES = -DLOCALEDIR=\""$(datadir)/locale"\"
-
-DEFS := $(DEFS) -DPACKAGE=\""alsa-utils\"" -DVERSION=\""$(VERSION)\""
-gamix_SOURCES = gamix.h main.c mkmixer.c probe.c catch.c conf_w.c
-gamix_LDFLAGS = $(GTK_LIBS)
-
-EXTRA_DIST = ChangeLog
diff --git a/gamix/README b/gamix/README
deleted file mode 100644 (file)
index 189a418..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-GTK ALSA audio mixer gamix ver. 1.09p4
- by Fumihiko Murata <fmurata@p1.tcnet.ne.jp>
-    DaiCom Software
-
-This is a mixer application for ALSA using GTK.
-
-If you want to use international version (supported Japanese only),
-check original source
- http://www1.tcnet.ne.jp/fmurata/linux/down/
-and download last gamix-*.tar.gz.  * is version number.
diff --git a/gamix/catch.c b/gamix/catch.c
deleted file mode 100644 (file)
index 1fa847d..0000000
+++ /dev/null
@@ -1,651 +0,0 @@
-
-#include "gamix.h"
-
-typedef struct e_q_cell e_q_cell_t;
-struct e_q_cell {
-       snd_mixer_eid_t eid;
-       e_q_cell_t *next;
-};
-typedef struct g_q_cell g_q_cell_t;
-struct g_q_cell {
-       snd_mixer_gid_t gid;
-       g_q_cell_t *next;
-};
-
-static snd_mixer_callbacks_t cb_mix;
-static char *cmd_name[]={"rebuild","element value","element change",
-                                                "element route","element add","element remove",
-                                                "group value","group change","group add",
-                                                "group remove"
-};
-static struct {
-       e_q_cell_t *q;
-       int q_n;
-} e_q;
-static struct {
-       g_q_cell_t *q;
-       int q_n;
-} g_q;
-
-static void cb_rb(void *);
-static void element_callback(void *,int,snd_mixer_eid_t *);
-static void cb_gp(void *,int,snd_mixer_gid_t *);
-static void search_obj_elem(s_obj_t **,s_element_t **,snd_mixer_eid_t *);
-static void s_e_chk(s_element_t *);
-static void rmw_elem(s_element_t *);
-static int que_e( snd_mixer_eid_t * );
-static int que_g( snd_mixer_gid_t * );
-static int chk_group( s_mixer_t * );
-static void element_free(s_element_t *);
-static gboolean chk_eid(s_obj_t *,snd_mixer_eid_t * );
-
-extern GtkWidget *main_vbox;
-extern GtkWidget *mixer_container;
-
-static void cb_rb(void *pd ) {
-       printf("cb rb hoe\n");
-}
-
-static void element_callback(void *pd,int cmd,snd_mixer_eid_t *eid) {
-       int i,j;
-       gint ccc;
-       s_group_t *group;
-       s_element_t *e;
-       s_eelements_t *ee;
-       s_mixer_t *mixer=(s_mixer_t *)pd;
-       s_obj_t *obj=mixer->obj;
-
-       if( !is_etype(eid->type) ) return;
-
-       search_obj_elem(&obj,&e,eid);
-       switch( cmd ) {
-       case SND_MIXER_READ_ELEMENT_VALUE:
-               if( obj == NULL || e == NULL ) break;
-               snd_mixer_element_read(mixer->handle,&e->e);
-               if( obj->enabled ) {
-                       ccc=obj->chain;
-                       obj->chain=FALSE;
-                       s_e_chk(e);
-                       obj->chain=ccc;
-               }
-               return;
-               break;
-       case SND_MIXER_READ_ELEMENT_REMOVE:
-               if( obj == NULL || e == NULL ) break;
-               if( obj->enabled ) rmw_elem(e);
-               return;
-               break;
-       case SND_MIXER_READ_ELEMENT_ADD:
-               if( obj && e ) {
-                       return;
-               } else {
-                       if( que_e(eid) == 0 ) return;
-               }
-               break;
-       case SND_MIXER_READ_ELEMENT_CHANGE:
-       case SND_MIXER_READ_ELEMENT_ROUTE:
-       default:
-               printf("eb el cmd %s eid '%s',%d,%d\n",cmd_name[cmd],eid->name,eid->index,eid->type);
-               return;
-       }
-
-       printf("cb_el cmd %s %s %d %d\n",cmd_name[cmd],eid->name,eid->index,
-                  eid->type);
-}
-
-static void search_obj_elem( s_obj_t **objs,s_element_t **e_r,
-                                                        snd_mixer_eid_t *eid) {
-       s_element_t *e;
-       s_eelements_t *ee;
-       s_group_t *group;
-       s_obj_t *obj;
-       int j;
-
-       for( obj=*objs ; obj != NULL ; obj=obj->next ) {
-               if( obj->e ) {
-                       ee=obj->e;
-                       if( strcmp(ee->e.e.eid.name,eid->name)==0 &&
-                               ee->e.e.eid.index==eid->index ) {
-                               *objs=obj;
-                               *e_r=&ee->e;
-                               return;
-                       }
-               }
-               if( obj->g ) {
-                       group=obj->g;
-                       for( j=0 ; j<group->g.elements ; j++ ) {
-                               e=&group->e[j];
-                               if( strcmp(e->e.eid.name,eid->name) == 0 &&
-                                       e->e.eid.index == eid->index && e->e.eid.type != 0 ) {
-                                       *objs=obj;
-                                       *e_r=e;
-                                       return;
-                               }
-                       }
-               }
-       }
-       *objs=NULL;
-       *e_r=NULL;
-}
-
-static int que_e(snd_mixer_eid_t *eid ) {
-       e_q_cell_t *p;
-
-       if( e_q.q == NULL ) {
-               e_q.q=(e_q_cell_t *)malloc(sizeof(e_q_cell_t));
-               if( e_q.q == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               p=e_q.q;
-               p->eid=*eid;
-               p->next=NULL;
-               e_q.q_n=1;
-               return 0;
-       }
-       p=e_q.q;
-       while( p->next != NULL ) {
-               if( strcmp(p->eid.name,eid->name) == 0 && p->eid.index == eid->index )
-                       return 0;
-               p=p->next;
-       }
-       if( strcmp(p->eid.name,eid->name) == 0 && p->eid.index == eid->index )
-               return 0;
-       p->next=(e_q_cell_t *)malloc(sizeof(e_q_cell_t));
-       if( p->next==NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       p=p->next;
-       p->eid=*eid;
-       p->next=NULL;
-       e_q.q_n++;
-       return 0;
-}
-
-static void cb_gp(void *pd,int cmd,snd_mixer_gid_t *gid) {
-       s_mixer_t *mixer=(s_mixer_t *)pd;
-       s_obj_t *obj=mixer->obj,*o1;
-       s_group_t *g;
-       int i;
-
-       for( ; obj != NULL ; obj=obj->next ) {
-               if( obj->g ) {
-                       g=obj->g;
-                       if( strcmp(g->g.gid.name,gid->name) == 0 &&
-                               g->g.gid.index == gid->index ) {
-                               break;
-                       }
-               }
-       }
-
-       switch(cmd) {
-       case SND_MIXER_READ_GROUP_REMOVE:
-               if( obj ) {
-                       if( obj->enabled ) {
-                               gtk_widget_destroy(obj->v_frame);
-                       }
-                       obj->dyn_e=2;
-                       obj->enabled=FALSE;
-                       return;
-               }
-               break;
-       case SND_MIXER_READ_GROUP_CHANGE:
-               if( que_g(gid)== 0 ) return;
-               break;
-       case SND_MIXER_READ_GROUP_ADD:
-               if( obj ) {
-                       obj->dyn_e=3;
-                       return;
-               }
-               o1=NULL;
-               obj_ins_new_g(&mixer->obj,&o1,gid);
-               mixer->o_nums++;
-               o1->dyn_e=3;
-               break;
-       default:
-       }
-       printf("cb_gp cmd %s gid '%s',%d\n",cmd_name[cmd],gid->name,gid->index);
-}
-
-static int que_g(snd_mixer_gid_t *gid ) {
-       g_q_cell_t *p;
-
-       if( g_q.q == NULL ) {
-               g_q.q=(g_q_cell_t *)malloc(sizeof(g_q_cell_t));
-               if( g_q.q == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               p=g_q.q;
-               p->gid=*gid;
-               p->next=NULL;
-               g_q.q_n=1;
-               return 0;
-       }
-       p=g_q.q;
-       while( p->next != NULL ) {
-               if( strcmp(p->gid.name,gid->name) == 0 && p->gid.index == gid->index )
-                       return 0;
-               p=p->next;
-       }
-       
-       if( strcmp(p->gid.name,gid->name) == 0 && p->gid.index == gid->index )
-               return 0;
-       p->next=(g_q_cell_t *)malloc(sizeof(g_q_cell_t));
-       if( p->next==NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       p=p->next;
-       p->gid=*gid;
-       p->next=NULL;
-       g_q.q_n++;
-       return 0;
-}
-
-void tc_init( void ) {
-       cb_mix.rebuild=*cb_rb;
-       cb_mix.element=*element_callback;
-       cb_mix.group=*cb_gp;
-}
-gint time_callback(gpointer data) {
-       GtkRequisition rq;
-       int i,j,k,err;
-       e_q_cell_t *eq;
-       g_q_cell_t *gq;
-
-       k=0;
-       for( i=0 ; i<card_num ; i++ ) {
-               for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                       cb_mix.private_data=(void *)&cards[i].mixer[j];
-                       e_q.q=NULL;
-                       e_q.q_n=0;
-                       g_q.q=NULL;
-                       g_q.q_n=0;
-                       err=snd_mixer_read(cards[i].mixer[j].handle,&cb_mix);
-                       //if( err ) printf("count %d\n",err);
-                       if( g_q.q_n ) k+=chk_group( &cards[i].mixer[j] );
-                       for( eq=e_q.q ; eq != NULL ; eq=eq->next )
-                               printf("que eid '%s',%d,%d\n",eq->eid.name,eq->eid.index,eq->eid.type);
-                       /*
-                       for( gq=g_q.q ; gq != NULL ; gq=gq->next )
-                               printf("que gid '%s',%d\n",gq->gid.name,gq->gid.index);
-                       */
-               }
-       }
-       if( k ) {
-               gtk_container_remove(GTK_CONTAINER(main_vbox),mixer_container);
-               disp_mixer();
-       }
-
-       return 1;
-}
-
-static int chk_group( s_mixer_t *mixer ) {
-       s_obj_t *obj;
-       s_group_t *group;
-       s_element_t *e;
-       g_q_cell_t *gq,*gq2;
-       snd_mixer_group_t m_g;
-       int i,j,k,l,err,rt=0;
-
-       gq=g_q.q;
-       while( gq ) {
-               for( obj=mixer->obj ; obj != NULL ; obj=obj->next ) {
-                       if( obj->g ) {
-                               if( strcmp( obj->g->g.gid.name , gq->gid.name ) == 0 &&
-                                       obj->g->g.gid.index == gq->gid.index ) break;
-                       }
-               }
-               if( obj ) {
-                       group=obj->g;
-                       bzero(&m_g,sizeof(snd_mixer_group_t));
-                       m_g.gid=gq->gid;
-                       if( (err=snd_mixer_group_read(mixer->handle,&m_g))<0 ) {
-                               fprintf(stderr,_("Mixer group '%s',%d err 1: %s\n"),
-                                               m_g.gid.name,m_g.gid.index,snd_strerror(err));
-                               goto __next;
-                       }
-                       m_g.pelements = (snd_mixer_eid_t *)malloc(m_g.elements_over*
-                                                                                                       sizeof(snd_mixer_eid_t));
-                       if( m_g.pelements == NULL ) {
-                               fprintf(stderr,nomem_msg);
-                               goto __next;
-                       }
-                       m_g.elements_size=m_g.elements_over;
-                       m_g.elements=m_g.elements_over=0;
-                       if( (err=snd_mixer_group_read(mixer->handle,&m_g))<0 ) {
-                               fprintf(stderr,_("Mixer group '%s',%d err 2: %s\n"),
-                                               m_g.gid.name,m_g.gid.index,snd_strerror(err));
-                               free(m_g.pelements);
-                               goto __next;
-                       }
-                       j=0;
-                       if( group->g.elements == 0 ) {
-                               j=1;
-                       } else if( group->g.elements != m_g.elements ) {
-                               j=1;
-                       } else {
-                               k=0;
-                               for( i=0 ; i<m_g.elements ; i++ ) {
-                                       for( l=k ; l<m_g.elements ; l++ ) {
-                                               if( strcmp(m_g.pelements[i].name,
-                                                                  group->g.pelements[l].name)==0 &&
-                                                       m_g.pelements[i].index ==
-                                                       group->g.pelements[l].index ) {
-                                                       if( l=k ) k++;
-                                                       break;
-                                               }
-                                       }
-                                       if( l==m_g.elements ) {
-                                               j=1;
-                                               break;
-                                       }
-                               }
-                       }
-                       if( j ) {
-                               for( i=0 ; i<group->g.elements ; i++ ) {
-                                       element_free(&group->e[i]);
-                               }
-                               if( group->g.pelements ) free(group->g.pelements);
-                               if( group->e ) free(group->e);
-                               group->g=m_g;
-                               group->e=(s_element_t *)g_malloc0(group->g.elements*
-                                                                                                 sizeof(s_element_t));
-                               if( group->e == NULL ) {
-                                       fprintf(stderr,nomem_msg);
-                                       goto __next;
-                               }
-                               for( i=0 ; i<group->g.elements ; i++ ) {
-                                       if( chk_eid(mixer->obj,&m_g.pelements[i]) ) {
-                                               /*
-                                               printf("%d: build '%s',%d,%d\n",i,
-                                                          m_g.pelements[i].name,m_g.pelements[i].index,
-                                                          m_g.pelements[i].type);
-                                               */
-                                               s_element_build(mixer->handle,&group->e[i],NULL,
-                                                                               group->g.pelements[i],mixer->c_dev,
-                                                                               mixer->m_dev);
-                                       } else {
-                                               group->g.pelements[i].type=0;
-                                               group->e[i].e.eid=group->g.pelements[i];
-                                               group->e[i].info.eid=group->g.pelements[i];
-                                       }
-                               }
-                       } else {
-                               free(m_g.pelements);
-                       }
-                       if( obj->enable ) rt=1;
-               } else {
-                       fprintf(stderr,_("not added gid before change.\n"));
-               }
-       __next:
-               gq2 = gq->next;
-               free(gq);
-               gq=gq2;
-       }
-       return rt;
-}
-
-static void element_free(s_element_t *e) {
-       if( e->w ) g_free(e->w);
-       if( e->adj ) g_free(e->adj);
-       if( e->mux ) free(e->mux);
-       snd_mixer_element_free(&e->e);
-       snd_mixer_element_info_free(&e->info);
-}
-
-static gboolean chk_eid(s_obj_t *obj,snd_mixer_eid_t *eid ) {
-       e_q_cell_t *eq,*ep;
-       s_element_t *e;
-       int i;
-
-       if( !is_etype(eid->type) ) return FALSE;
-       for( eq=e_q.q; eq != NULL ; eq=eq->next ) {
-               if( strcmp(eq->eid.name,eid->name) == 0 &&
-                       eq->eid.index == eid->index && eq->eid.type == eq->eid.type ) {
-                       if( eq == e_q.q ) {
-                               e_q.q=e_q.q->next;
-                       } else {
-                               for(ep=e_q.q;ep->next !=eq ; ep=ep->next );
-                               ep->next=eq->next;
-                       }
-                       free(eq);
-                       return TRUE;
-               }
-       }
-       for( ; obj != NULL ; obj=obj->next ) {
-               if(obj->g) {
-                       for( i=0 ; obj->g->g.elements ; i++ ) {
-                               e=&obj->g->e[i];
-                               if( strcmp( e->e.eid.name,eid->name ) == 0 &&
-                                       e->e.eid.index == eid->index &&
-                                       e->e.eid.type == eid->type ) return FALSE;
-                       }
-               }
-               if(obj->e) {
-                       e=&obj->e->e;
-                       if( strcmp( e->e.eid.name,eid->name ) == 0 &&
-                               e->e.eid.index == eid->index &&
-                               e->e.eid.type == eid->type ) return FALSE;
-                       
-               }
-       }
-       return TRUE;
-}
-
-void s_e_chk( s_element_t *e ) {
-       int i,j;
-       switch( e->e.eid.type ) {
-       case SND_MIXER_ETYPE_VOLUME1:
-               for( i=0 ; i<e->e.data.volume1.voices; i++ ) {
-                       if( (e->info.data.volume1.prange[i].max-
-                                e->info.data.volume1.prange[i].min) == 1 ) {
-                               gtk_toggle_button_set_active(
-                                                                                        GTK_TOGGLE_BUTTON(e->w[i]),
-                                                                                        e->e.data.volume1.pvoices[i]);
-                       } else {
-                               e->adj[i]->value=(gfloat)
-                                       -e->e.data.volume1.pvoices[i];
-                               gtk_signal_emit_by_name(GTK_OBJECT(e->adj[i]),"value_changed");
-                       }
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH1:
-               for( i=0 ; i<e->e.data.switch1.sw; i++) {
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[i]),
-                                                                        snd_mixer_get_bit(e->e.data.switch1.psw,i)
-                                                                                );
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH2:
-               gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[0]),
-                                                                        e->e.data.switch2.sw);
-               break;
-       case SND_MIXER_ETYPE_ACCU3:
-               for( i=0 ; i<e->e.data.accu3.voices ; i++ ) {
-                       e->adj[i]->value=(gfloat)
-                               -e->e.data.volume1.pvoices[i];
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[i]),"value_changed");
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX1:
-               for( i=0 ; i<e->e.data.mux1.output ; i++ ) {
-                       for( j=0; j<e->mux_n ; j++ ) {
-                               if( strcmp(e->mux[j].name,e->e.data.mux1.poutput[i].name)==0 &&
-                                       e->mux[j].index == e->e.data.mux1.poutput[i].index &&
-                                       e->mux[j].type == e->e.data.mux1.poutput[i].type ) break;
-                       }
-                       if( j < e->mux_n )
-                               gtk_option_menu_set_history(GTK_OPTION_MENU(e->w[i]),j);
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX2:
-               for( i=0; i<e->mux_n ; i++ ) {
-                       if( strcmp(e->mux[i].name,e->e.data.mux2.output.name)==0 &&
-                               e->mux[i].index == e->e.data.mux2.output.index &&
-                               e->mux[i].type == e->e.data.mux2.output.type )
-                               break;
-               }
-               if( i < e->mux_n )
-                       gtk_option_menu_set_history(GTK_OPTION_MENU(e->w[0]),i);
-               break;
-       case SND_MIXER_ETYPE_3D_EFFECT1:
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_SW ) {
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[0]),
-                                                                                e->e.data.teffect1.sw);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_MONO_SW ) {
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[1]),
-                                                                                e->e.data.teffect1.sw);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_WIDE ) {
-                       e->adj[0]->value=(gfloat)e->e.data.teffect1.wide;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[0]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_VOLUME ) {
-                       e->adj[1]->value=(gfloat)e->e.data.teffect1.volume;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[1]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_CENTER ) {
-                       e->adj[2]->value=(gfloat)e->e.data.teffect1.center;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[2]),
-                                                                       "value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_SPACE ) {
-                       e->adj[3]->value=(gfloat)e->e.data.teffect1.space;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[3]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DEPTH ) {
-                       e->adj[4]->value=(gfloat)e->e.data.teffect1.depth;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[4]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DELAY ) {
-                       e->adj[5]->value=(gfloat)e->e.data.teffect1.delay;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[5]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_FEEDBACK ) {
-                       e->adj[6]->value=(gfloat)e->e.data.teffect1.feedback;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[6]),"value_changed");
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DEPTH_REAR ) {
-                       e->adj[7]->value=(gfloat)e->e.data.teffect1.depth_rear;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[7]),"value_changed");
-               }
-               break;
-       case SND_MIXER_ETYPE_TONE_CONTROL1:
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_SW ) {
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[0]),
-                                                                                e->e.data.tc1.sw);
-               }
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_BASS ) {
-                       e->adj[0]->value=-(gfloat)e->e.data.tc1.bass;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[0]),"value_changed");
-               }
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_TREBLE ) {
-                       e->adj[1]->value=-(gfloat)e->e.data.tc1.treble;
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[1]),"value_changed");
-               }
-               break;
-       case SND_MIXER_ETYPE_PAN_CONTROL1:
-               printf("catch pan ");
-               for( i=0 ; i<e->e.data.pc1.pan ; i++ ) {
-                       printf(" %d",e->e.data.pc1.ppan[i]);
-                       e->adj[i]->value=(gfloat)e->e.data.pc1.ppan[i];
-                       gtk_signal_emit_by_name(GTK_OBJECT(e->adj[i]),"value_changed");
-               }
-               printf("\n");
-               break;
-       }
-}
-
-static void rmw_elem(s_element_t *e) {
-       int i,j;
-       switch( e->e.eid.type ) {
-       case SND_MIXER_ETYPE_VOLUME1:
-               for( i=0 ; i<e->e.data.volume1.voices; i++ ) {
-                       if( (e->info.data.volume1.prange[i].max-
-                                e->info.data.volume1.prange[i].min) == 1 ) {
-                               gtk_widget_destroy( e->w[i] );
-                       } else {
-                               //gtk_widget_destroy(e->adj[i]);
-                               gtk_widget_destroy(e->w[i]);
-                       }
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH1:
-               for( i=0 ; i<e->e.data.switch1.sw; i++) {
-                       gtk_widget_destroy(e->w[i]);
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH2:
-               gtk_widget_destroy(e->w[0]);
-               break;
-       case SND_MIXER_ETYPE_ACCU3:
-               for( i=0 ; i<e->e.data.accu3.voices ; i++ ) {
-                       gtk_widget_destroy(e->w[i]);
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX1:
-               for( i=0 ; i<e->e.data.mux1.output ; i++ ) {
-                       gtk_widget_destroy(e->w[i]);
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX2:
-               gtk_widget_destroy(e->w[0]);
-               break;
-       case SND_MIXER_ETYPE_3D_EFFECT1:
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_SW ) {
-                       gtk_widget_destroy(e->w[0]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_MONO_SW ) {
-                       gtk_widget_destroy(e->w[1]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_WIDE ) {
-                       gtk_widget_destroy(e->w[2]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_VOLUME ) {
-                       gtk_widget_destroy(e->w[3]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_CENTER ) {
-                       gtk_widget_destroy(e->w[4]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_SPACE ) {
-                       gtk_widget_destroy(e->w[5]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DEPTH ) {
-                       gtk_widget_destroy(e->w[6]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DELAY ) {
-                       gtk_widget_destroy(e->w[7]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_FEEDBACK ) {
-                       gtk_widget_destroy(e->w[8]);
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_DEPTH_REAR ) {
-                       gtk_widget_destroy(e->w[9]);
-               }
-               break;
-       case SND_MIXER_ETYPE_TONE_CONTROL1:
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_SW ) {
-                       gtk_widget_destroy(e->w[0]);
-               }
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_BASS ) {
-                       gtk_widget_destroy(e->w[1]);
-               }
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_TREBLE ) {
-                       gtk_widget_destroy(e->w[2]);
-               }
-               break;
-       case SND_MIXER_ETYPE_PAN_CONTROL1:
-               j=0;
-               for( i=0 ; i<e->e.data.pc1.pan ; i++ ) {
-                       gtk_widget_destroy(e->w[j++]);
-                       gtk_widget_destroy(e->w[j++]);
-                       gtk_widget_destroy(e->w[j++]);
-                       gtk_widget_destroy(e->w[j++]);
-               }
-               break;
-       }
-}
diff --git a/gamix/conf_w.c b/gamix/conf_w.c
deleted file mode 100644 (file)
index d11430a..0000000
+++ /dev/null
@@ -1,850 +0,0 @@
-
-#include "gamix.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <errno.h>
-
-s_conf conf;
-
-static GtkWidget *c_win;
-
-typedef struct {
-       gboolean m_en;
-       gboolean *obj_en;
-       GSList *gp;
-       gboolean p_e;
-       gboolean p_f;
-       GtkCList *cl;
-       int *ord_l;
-       int o_nums;
-} c_mixer;
-
-typedef struct {
-       c_mixer *m;
-} c_card;
-
-static c_card *ccard;
-static gboolean scrolled;
-static gboolean ok_pushed;
-static gboolean Esaved;
-static gboolean Tosave;
-static gboolean sv_wsized;
-
-static void close_win(GtkWidget *,gpointer);
-static void cancel_b(GtkWidget *,gpointer);
-static void ok_b(GtkWidget *,gpointer);
-static void tb_callback(GtkToggleButton *,gint *);
-static void sl1_callback(GtkWidget *,gint,gint,GdkEventButton *,gpointer);
-static void sl2_callback(GtkWidget *,gint,gint,GdkEventButton *,gpointer);
-static int sel_num(GtkCList *,gint);
-static void cread_err(gchar *,int );
-static void chk_cfile(void);
-static void swap_obj(s_obj_t **,s_obj_t *,s_obj_t *);
-static s_obj_t *obj_new( s_obj_t **,s_obj_t *);
-
-static void close_win(GtkWidget *w,gpointer data) {
-       gtk_grab_remove(c_win);
-       gtk_main_quit();
-}
-
-static void cancel_b(GtkWidget *w,gpointer data) {
-       gtk_widget_destroy(c_win);
-}
-static void ok_b(GtkWidget *w,gpointer data) {
-       int i,j,k;
-       GSList *n;
-       GtkWidget *b;
-       gchar *s;
-
-       Tosave=(gboolean)data;
-
-       ok_pushed=TRUE;
-
-       for( i=0 ; i<card_num ; i++ ) {
-               for( j=0 ; j<cards[i].info.mixerdevs; j++ ) {
-                       for( k=0 ; (n = g_slist_nth(ccard[i].m[j].gp,k)) != NULL ; k++ ) {
-                               b=(GtkWidget *)n->data;
-                               if( GTK_TOGGLE_BUTTON(b)->active ) break;
-                       }
-                       switch(k) {
-                       case 2:
-                               ccard[i].m[j].p_e=FALSE;
-                               ccard[i].m[j].p_f=FALSE;
-                               break;
-                       case 1:
-                               ccard[i].m[j].p_e=TRUE;
-                               ccard[i].m[j].p_f=FALSE;
-                               break;
-                       case 0:
-                               ccard[i].m[j].p_e=TRUE;
-                               ccard[i].m[j].p_f=TRUE;
-                               break;
-                       }
-                       for( k=0 ; k<ccard[i].m[j].o_nums ; k++ ) {
-                               gtk_clist_get_text(ccard[i].m[j].cl,k,0,&s);
-                               ccard[i].m[j].ord_l[k]=atoi(s)-1;
-                       }
-               }
-       }
-       gtk_widget_destroy(c_win);
-}
-
-gint conf_win( void ) {
-       int i,j,k,l,m,sf;
-       gint changed,*o_l;
-       GtkWidget *b;
-       GtkWidget *vbox,*box,*frame,*hbox,*hhbox;
-       GtkWidget *clist;
-       GtkWidget *nb,*n_label;
-       GtkStyle *style;
-       unsigned char gname[40];
-       GSList *gp;
-       //s_group_t *group;
-       //s_eelements_t *ee;
-       s_obj_t *obj,*obj_b,*obj2,*obj2_b;
-       gchar *cl_data[3],cl_num[6];
-       GtkRequisition rq;
-
-       ok_pushed=FALSE;
-
-
-       c_win=gtk_window_new(GTK_WINDOW_DIALOG);
-       gtk_signal_connect(GTK_OBJECT(c_win),"destroy",GTK_SIGNAL_FUNC(close_win),
-                                          NULL);
-       //gtk_widget_show(c_win);
-       style=gtk_widget_get_style(c_win);
-
-       vbox=gtk_vbox_new(FALSE,10);
-       gtk_container_add(GTK_CONTAINER(c_win),vbox);
-       
-       /* options */
-       nb=gtk_notebook_new();
-       gtk_notebook_set_tab_pos(GTK_NOTEBOOK(nb),GTK_POS_TOP);
-       gtk_box_pack_start(GTK_BOX(vbox),nb,FALSE,FALSE,0);
-       
-       /*  OPT */
-       frame=gtk_frame_new(NULL);
-       gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_IN);
-       gtk_container_set_border_width(GTK_CONTAINER(frame),20);
-       box=gtk_vbox_new(FALSE,10);
-       gtk_container_set_border_width(GTK_CONTAINER(box),10);
-       gtk_container_add(GTK_CONTAINER(frame),box);
-
-       hbox=gtk_hbox_new(FALSE,4);
-       gtk_box_pack_start(GTK_BOX(box),hbox,FALSE,FALSE,0);
-       scrolled=conf.scroll;
-       b=gtk_toggle_button_new();
-       gtk_widget_set_usize(b,10,10);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),conf.scroll);
-       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"toggled",GTK_SIGNAL_FUNC(tb_callback),
-                                          (gpointer)&scrolled);
-       gtk_widget_show(b);
-       n_label=gtk_label_new(_("Scroll window enable"));
-       gtk_box_pack_start(GTK_BOX(hbox),n_label,FALSE,FALSE,0);
-       gtk_widget_show(n_label);
-       gtk_widget_show(hbox);
-
-       hbox=gtk_hbox_new(FALSE,4);
-       gtk_box_pack_start(GTK_BOX(box),hbox,FALSE,FALSE,0);
-       Esaved=conf.Esave;
-       b=gtk_toggle_button_new();
-       gtk_widget_set_usize(b,10,10);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),conf.Esave);
-       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"toggled",GTK_SIGNAL_FUNC(tb_callback),
-                                          (gpointer)&Esaved);
-       gtk_widget_show(b);
-       n_label=gtk_label_new(_("Config save when exit"));
-       gtk_box_pack_start(GTK_BOX(hbox),n_label,FALSE,FALSE,0);
-       gtk_widget_show(n_label);
-       gtk_widget_show(hbox);
-
-       hbox=gtk_hbox_new(FALSE,4);
-       gtk_box_pack_start(GTK_BOX(box),hbox,FALSE,FALSE,0);
-       sv_wsized=conf.sv_wsize;
-       b=gtk_toggle_button_new();
-       gtk_widget_set_usize(b,10,10);
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),conf.sv_wsize);
-       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"toggled",GTK_SIGNAL_FUNC(tb_callback),
-                                          (gpointer)&sv_wsized);
-       gtk_widget_show(b);
-       n_label=gtk_label_new(_("Save window size"));
-       gtk_box_pack_start(GTK_BOX(hbox),n_label,FALSE,FALSE,0);
-       gtk_widget_show(n_label);
-       gtk_widget_show(hbox);
-
-       n_label=gtk_label_new("OPT");
-       gtk_widget_show(box);
-       gtk_widget_show(frame);
-       gtk_notebook_append_page(GTK_NOTEBOOK(nb),frame,n_label);
-       
-       /* Mixer */
-       ccard=(c_card *)g_malloc(card_num*sizeof(c_card));
-       if( ccard == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-       }
-       for( i=0 ; i<card_num ; i++ ) {
-               ccard[i].m=(c_mixer *)g_malloc(cards[i].info.mixerdevs*sizeof(c_mixer));
-               if( ccard[i].m == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               for( j=0 ; j<cards[i].info.mixerdevs; j++ ) {
-                       n_label=gtk_label_new(cards[i].mixer[j].info.name);
-                       frame=gtk_frame_new(NULL);
-                       gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_IN);
-                       gtk_container_set_border_width(GTK_CONTAINER(frame),20);
-                       gtk_notebook_append_page(GTK_NOTEBOOK(nb),frame,n_label);
-
-                       box=gtk_vbox_new(FALSE,2);
-                       gtk_container_set_border_width(GTK_CONTAINER(box),10);
-                       gtk_container_add(GTK_CONTAINER(frame),box);
-
-                       hbox=gtk_hbox_new(FALSE,4);
-                       gtk_box_pack_start(GTK_BOX(box),hbox,FALSE,FALSE,0);
-                       
-                       ccard[i].m[j].m_en=cards[i].mixer[j].enable;
-                       b=gtk_toggle_button_new();
-                       gtk_widget_set_usize(b,10,10);
-                       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-                       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),
-                                                                                ccard[i].m[j].m_en);
-                       gtk_signal_connect(GTK_OBJECT(b),"toggled",
-                                                          GTK_SIGNAL_FUNC(tb_callback),
-                                                          (gpointer)&ccard[i].m[j].m_en);
-                       gtk_widget_show(b);
-                       n_label=gtk_label_new(cards[i].mixer[j].info.name);
-                       gtk_box_pack_start(GTK_BOX(hbox),n_label,FALSE,FALSE,0);
-                       gtk_widget_show(n_label);
-                       gtk_widget_show(hbox);
-                       
-                       if( cards[i].mixer[j].p_e ) {
-                               if( cards[i].mixer[j].p_f ) k=2; else k=1;
-                       } else k=0;
-                       hbox=gtk_hbox_new(FALSE,4);
-                       gtk_box_pack_start(GTK_BOX(box),hbox,FALSE,FALSE,0);
-                       n_label=gtk_label_new(_("Spacing: "));
-                       gtk_box_pack_start(GTK_BOX(hbox),n_label,FALSE,FALSE,0);
-                       gtk_widget_show(n_label);
-
-                       b=gtk_radio_button_new_with_label(NULL,_("NONE"));
-                       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-                       gtk_widget_show(b);
-                       if( k==0 ) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),
-                                                                                                       TRUE);
-
-                       gp=gtk_radio_button_group(GTK_RADIO_BUTTON(b));
-
-                       b=gtk_radio_button_new_with_label(gp,_("space"));
-                       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-                       gtk_widget_show(b);
-                       if( k==1 ) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),
-                                                                                                       TRUE);
-                       gp=gtk_radio_button_group(GTK_RADIO_BUTTON(b));
-
-                       b=gtk_radio_button_new_with_label(gp,_("expand"));
-                       gtk_box_pack_start(GTK_BOX(hbox),b,FALSE,FALSE,0);
-                       gtk_widget_show(b);
-                       if( k==2 ) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b),
-                                                                                                       TRUE);
-                       ccard[i].m[j].gp=gtk_radio_button_group(GTK_RADIO_BUTTON(b));
-                       gtk_widget_show(hbox);
-
-                       clist=gtk_clist_new(3);
-                       gtk_clist_freeze(GTK_CLIST(clist));
-                       gtk_clist_set_selection_mode(GTK_CLIST(clist),
-                                                                                GTK_SELECTION_MULTIPLE);
-                       gtk_clist_set_column_width(GTK_CLIST(clist),0,20);
-                       gtk_clist_set_column_width(GTK_CLIST(clist),1,6);
-                       gtk_clist_set_column_width(GTK_CLIST(clist),2,18);
-                       gtk_clist_set_column_justification(GTK_CLIST(clist),
-                                                                                          0,GTK_JUSTIFY_RIGHT);
-                       gtk_clist_set_column_justification(GTK_CLIST(clist),
-                                                                                          3,GTK_JUSTIFY_LEFT);
-
-                       hhbox=gtk_scrolled_window_new(NULL,NULL);
-                       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hhbox),
-                                                                                  GTK_POLICY_NEVER,
-                                                                                  GTK_POLICY_AUTOMATIC);
-                       gtk_widget_show(hhbox);
-
-                       ccard[i].m[j].o_nums=cards[i].mixer[j].o_nums;
-                       ccard[i].m[j].obj_en=(gboolean *)g_malloc(ccard[i].m[j].o_nums
-                                                                                                 * sizeof(gboolean));
-                       ccard[i].m[j].ord_l=(gint *)g_malloc(ccard[i].m[j].o_nums
-                                                                                                 * sizeof(gint));
-                       if( ccard[i].m[j].obj_en == NULL || ccard[i].m[j].ord_l == NULL ) {
-                               fprintf(stderr,nomem_msg);
-                               g_free(ccard);
-                               return -1;
-                       }
-                       cl_data[0]=" ";
-                       cl_data[1]=" ";
-                       cl_data[2]=" ";
-                       obj=cards[i].mixer[j].obj;
-                       for( k=0 ; k<ccard[i].m[j].o_nums ; k++ ) {
-
-                               sprintf(cl_num,"%d",k+1);
-                               if( obj->g ) {
-                                       if( obj->g->g.gid.index > 0 ) {
-                                       sprintf(gname,"%s %d",
-                                                       obj->g->g.gid.name,
-                                                       obj->g->g.gid.index);
-                                       } else {
-                                               strcpy(gname,obj->g->g.gid.name);
-                                       }
-                               }
-                               if( obj->e ) {
-                                       if( obj->e->e.e.eid.index > 0 ) {
-                                               sprintf(gname,"%s %d",
-                                                               obj->e->e.e.eid.name,
-                                                               obj->e->e.e.eid.index);
-                                       } else {
-                                               strcpy(gname,obj->e->e.e.eid.name);
-                                       }
-                               }
-                               cl_data[0]=cl_num;
-                               if( obj->dyn_e ) {
-                                       cl_data[1]="D";
-                               } else {
-                                       cl_data[1]=" ";
-                               }
-                               cl_data[2]=gname;
-                               gtk_clist_append(GTK_CLIST(clist),cl_data);
-
-                               ccard[i].m[j].obj_en[k]=obj->enable;
-                               if( obj->enable ) {
-                                       gtk_clist_select_row(GTK_CLIST(clist),k,0);
-                               } else {
-                                       gtk_clist_unselect_row(GTK_CLIST(clist),k,0);
-                               }
-
-                               obj=obj->next;
-                       }
-                       ccard[i].m[j].cl=GTK_CLIST(clist);
-                       gtk_clist_set_reorderable(GTK_CLIST(clist),TRUE);
-                       gtk_signal_connect(GTK_OBJECT(clist),"select_row",
-                                                          GTK_SIGNAL_FUNC(sl1_callback),
-                                                          (gpointer)&ccard[i].m[j]);
-                       gtk_signal_connect(GTK_OBJECT(clist),"unselect_row",
-                                                          GTK_SIGNAL_FUNC(sl2_callback),
-                                                          (gpointer)&ccard[i].m[j]);
-                       gtk_widget_show(clist);
-                       gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(hhbox),
-                                                                                                 clist);
-                       gtk_container_set_border_width(GTK_CONTAINER(hhbox),8);
-                       gtk_widget_size_request(hhbox,&rq);
-                       gtk_widget_set_usize(hhbox,rq.width,rq.height*2);
-                       gtk_box_pack_start(GTK_BOX(box),hhbox,FALSE,FALSE,0);
-
-                       gtk_widget_show(hhbox);
-                       gtk_widget_show(box);
-                       gtk_widget_show(frame);
-                       gtk_clist_thaw(GTK_CLIST(clist));
-               }
-       }
-       
-       gtk_widget_show(nb);
-       /* buttons */
-       box=gtk_hbutton_box_new();
-       gtk_button_box_set_layout(GTK_BUTTON_BOX(box),GTK_BUTTONBOX_END);
-       gtk_button_box_set_spacing(GTK_BUTTON_BOX(box),5);
-       gtk_box_pack_end(GTK_BOX(vbox),box,FALSE,FALSE,0);
-
-       b=gtk_button_new_with_label(_("OK"));
-       gtk_box_pack_start(GTK_BOX(box),b,TRUE,TRUE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"clicked",GTK_SIGNAL_FUNC(ok_b),
-                                          (gpointer)FALSE);
-       GTK_WIDGET_SET_FLAGS(b,GTK_CAN_DEFAULT);
-       gtk_widget_show(b);
-       gtk_widget_grab_default(b);
-
-       Tosave=FALSE;
-       b=gtk_button_new_with_label(_("SAVE"));
-       gtk_box_pack_start(GTK_BOX(box),b,TRUE,TRUE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"clicked",GTK_SIGNAL_FUNC(ok_b),
-                                          (gpointer)TRUE);
-       GTK_WIDGET_SET_FLAGS(b,GTK_CAN_DEFAULT);
-       gtk_widget_show(b);
-
-       b=gtk_button_new_with_label(_("CANCEL"));
-       gtk_box_pack_start(GTK_BOX(box),b,TRUE,TRUE,0);
-       gtk_signal_connect(GTK_OBJECT(b),"clicked",GTK_SIGNAL_FUNC(cancel_b),NULL);
-       GTK_WIDGET_SET_FLAGS(b,GTK_CAN_DEFAULT);
-       gtk_widget_show(b);
-
-       gtk_widget_show(box);
-
-       gtk_widget_show(vbox);
-       gtk_widget_show(c_win);
-       
-       gtk_grab_add(c_win);
-       gtk_main();
-
-       changed=FALSE;
-
-       if( ok_pushed ) {
-               if ( conf.scroll != scrolled ) changed=TRUE;
-               conf.scroll=scrolled;
-               conf.Esave = Esaved;
-               conf.sv_wsize=sv_wsized;
-       }
-       
-       for( i=0 ; i<card_num ; i++ ) {
-               for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                       if( ok_pushed ) {
-                               if( !changed ) {
-                                       if( cards[i].mixer[j].enable != ccard[i].m[j].m_en )
-                                               changed = TRUE;
-                               }
-                               cards[i].mixer[j].enable=ccard[i].m[j].m_en;
-                               cards[i].mixer[j].enabled=FALSE;
-                               if( !changed ) {
-                                       if( cards[i].mixer[j].p_e != ccard[i].m[j].p_e ||
-                                               cards[i].mixer[j].p_f != ccard[i].m[j].p_f )
-                                               changed=TRUE;
-                               }
-                               cards[i].mixer[j].p_e=ccard[i].m[j].p_e;
-                               cards[i].mixer[j].p_f=ccard[i].m[j].p_f;
-                               k=0;
-                               sf=0;
-                               for( obj=cards[i].mixer[j].obj ; obj != NULL ;
-                                        obj=obj->next ) {
-                                       if( !changed ) {
-                                               if( ccard[i].m[j].ord_l[k] != k ) changed=TRUE;
-                                               if( obj->enable != ccard[i].m[j].obj_en[ccard[i].m[j].ord_l[k]] ) {
-                                                       changed = TRUE;
-                                               }
-                                       }
-                                       if( ccard[i].m[j].ord_l[k] != k ) sf=1;
-                                       obj->enable=ccard[i].m[j].obj_en[k];
-                                       obj->enabled=FALSE;
-                                       k++;
-                               }
-                               if( sf ) {
-                                       o_l=(gint *)g_malloc(sizeof(gint)*ccard[i].m[j].o_nums);
-                                       if( o_l != NULL ) {
-                                               for( k=0 ; k<ccard[i].m[j].o_nums ; k++ ) o_l[k]=k;
-                                               obj_b=NULL;
-                                               obj=cards[i].mixer[j].obj;
-                                               for( k=0 ; k<ccard[i].m[j].o_nums ; k++ ) {
-                                                       if( ccard[i].m[j].ord_l[k] != o_l[k] ) {
-                                                               obj2=obj;
-                                                               for( l=k ; ccard[i].m[j].ord_l[k]!=o_l[l] ; l++ ) {
-                                                                       obj2_b=obj2;
-                                                                       obj2=obj2->next;
-                                                               }
-                                                               for( m=l ; m>k ; m-- ) o_l[m]=o_l[m-1];
-                                                               o_l[m]=k;
-                                                               if( obj_b == NULL ) {
-                                                                       cards[i].mixer[j].obj=obj2;
-                                                               } else {
-                                                                       obj_b->next=obj2;
-                                                               }
-                                                               obj2_b->next=obj2->next;
-                                                               obj2->next=obj;
-                                                               obj=obj2;
-                                                       }
-                                                       obj_b=obj;
-                                                       obj=obj->next;
-                                               }
-                                               g_free(o_l);
-                                       }
-                               }
-                               /*
-                               for( obj=cards[i].mixer[j].obj ; obj != NULL ; obj=obj->next) {
-                                       if( obj->g ) {
-                                               printf("G %s %d\n",obj->g->g.gid.name,obj->g->g.gid.index);
-                                       }
-                                       if( obj->e ) {
-                                               printf("E '$s',%d,%d\n",obj->e->e.e.eid.name,
-                                                          obj->e->e.e.eid.index,obj->e->e.e.eid.type);
-                                       }
-                               }
-                               */
-                       }
-                       g_free(ccard[i].m[j].obj_en);
-                       g_free(ccard[i].m[j].ord_l);
-               }
-               g_free(ccard[i].m);
-       }
-       g_free(ccard);
-       if( Tosave ) {
-               conf_write();
-               conf.F_save=FALSE;
-       }
-
-       return changed;
-}
-
-static void tb_callback(GtkToggleButton *b,gint *c) {
-       *c=b->active;
-}
-static void sl1_callback(GtkWidget *w,gint row,gint col,
-                                                GdkEventButton *ev,gpointer data) {
-       int i;
-
-       c_mixer *m=(c_mixer *)data;
-       i=sel_num(GTK_CLIST(w),row);
-       m->obj_en[i]=TRUE;
-}
-static void sl2_callback(GtkWidget *w,gint row,gint col,
-                                                GdkEventButton *ev,gpointer data) {
-       int i;
-
-       c_mixer *m=(c_mixer *)data;
-       i=sel_num(GTK_CLIST(w),row);
-       m->obj_en[i]=FALSE;
-}
-
-static int sel_num(GtkCList *cl,gint row) {
-       int rt;
-       gchar *s;
-
-       gtk_clist_get_text(cl,row,0,&s);
-       rt=atoi(s)-1;
-       return rt;
-}
-
-void conf_read( void ) {
-       int i,j,k,err,ln;
-       FILE *fp;
-       gchar rbuf[256],*s;
-       s_mixer_t *m=NULL;
-       snd_mixer_gid_t gid;
-       snd_mixer_eid_t eid;
-       s_group_t *group;
-       s_eelements_t *ee;
-       s_obj_t *obj,*obj_n;
-
-       fp=fopen(conf.fna,"rt");
-       if( fp == NULL ) {
-               conf.F_save=TRUE;
-               return;
-       }
-       ln=1;
-       err=0;
-       while( !feof(fp) && err>-5 ) {
-               fgets(rbuf,255,fp);
-               rbuf[255]=0;
-               s=rbuf+2;
-               err=0;
-               switch( rbuf[0] ) {
-               case 'S':
-                       conf.scroll=atoi(s)?TRUE:FALSE;
-                       break;
-               case 'C':
-                       i=atoi(s);
-                       if( i<0 || i>2 ) {
-                               err=-1;
-                       } else conf.wmode=i;
-                       break;
-               case 'Y':
-                       conf.sv_wsize=atoi(s)?TRUE:FALSE;
-                       break;
-               case 'W':
-                       sscanf(s,"%d,%d\n",&conf.width,&conf.height);
-                       break;
-               case 'A':
-                       conf.Esave=atoi(s)?TRUE:FALSE;
-                       break;
-               case 'M':
-                       sscanf(s,"%d,%d=%d\n",&i,&j,&k);
-                       if( i<0 || i>=card_num ) {
-                               cread_err(_("Invalied card No."),ln);
-                               err=-10;
-                               break;
-                       }
-                       if( j<0 || j>=cards[i].info.mixerdevs ) {
-                               cread_err(_("Invalied mixer device No."),ln);
-                               err=-10;
-                       }
-                       m=&cards[i].mixer[j];
-                       m->enable=k?TRUE:FALSE;
-                       obj_n=m->obj;
-                       break;
-               case 'X':
-                       if( m == NULL ) {
-                               cread_err(_("No mixer selected"),ln);
-                               err=-1;
-                       }
-                       switch(atoi(s)) {
-                       case 0:
-                               m->p_e=FALSE;
-                               m->p_f=FALSE;
-                               break;
-                       case 1:
-                               m->p_e=TRUE;
-                               m->p_f=FALSE;
-                               break;
-                       case 2:
-                               m->p_e=TRUE;
-                               m->p_f=TRUE;
-                               break;
-                       default:
-                               cread_err(_("Invalied value for X"),ln);
-                               err=-1;
-                               break;
-                       }
-                       break;
-               case 'G':
-                       if( m == NULL ) {
-                               cread_err(_("No mixer selected"),ln);
-                               err=-1;
-                       }
-                       s++;
-                       for( i=0 ; *s!='\'' && *s>0 ; i++ ) gid.name[i]=*(s++);
-                       gid.name[i]=0;
-                       if( *s == 0 ) {
-                               cread_err(_("Invalied argument"),ln);
-                               err=-1;
-                               break;
-                       }
-                       s+=2;
-                       sscanf(s,"%d=%d\n",&gid.index,&i);
-                       for( obj=m->obj ; obj != NULL ; obj=obj->next ) {
-                               if( obj->g ) {
-                                       group=obj->g;
-                                       if( strcmp(gid.name,group->g.gid.name) == 0 &&
-                                               gid.index == group->g.gid.index ) {
-                                               obj->enable=i&1?TRUE:FALSE;
-                                               obj->dyn_e=i&2?3:0;
-                                               break;
-                                       }
-                               }
-                       }
-                       if( obj ) {
-                               if( obj != obj_n ) swap_obj(&m->obj,obj_n,obj);
-                               obj_n=obj->next;
-                       } else {
-                               if( i&2 ) {
-                                       if( obj_ins_new_g(&m->obj,&obj_n,&gid) == 0 ) {
-                                               obj_n->enable=i&1?TRUE:FALSE;
-                                               obj_n->dyn_e=i&2?2:0;
-                                               obj_n=obj_n->next;
-                                               m->o_nums++;
-                                       } else {
-                                               err=-1;
-                                       }
-                               } else {
-                                       cread_err(_("There is no such mixer group"),ln);
-                                       err=-1;
-                               }
-                       }
-                       break;
-               case 'E':
-                       if( m == NULL ) {
-                               cread_err(_("No mixer selected"),ln);
-                               err=-1;
-                       }
-                       s++;
-                       for( i=0 ; *s!='\'' && *s>0 ; i++ ) eid.name[i]=*(s++);
-                       eid.name[i]=0;
-                       if( *s == 0 ) {
-                               cread_err(_("Invalied argument"),ln);
-                               err=-1;
-                               break;
-                       }
-                       s+=2;
-                       sscanf(s,"%d,%d=%d\n",&eid.index,&eid.type,&i);
-                       for( obj=m->obj ; obj != NULL ; obj=obj->next ) {
-                               if( obj->e ) {
-                                       ee=obj->e;
-                                       if( strcmp(eid.name,ee->e.e.eid.name) == 0 &&
-                                               eid.index == ee->e.e.eid.index &&
-                                               eid.type == ee->e.e.eid.type ) {
-                                               obj->enable=i&1?TRUE:FALSE;
-                                               obj->dyn_e=i&2?TRUE:FALSE;
-                                               break;
-                                       }
-                               }
-                       }
-                       if( obj ) {
-                               if( obj != obj_n ) swap_obj(&m->obj,obj_n,obj);
-                               obj_n=obj->next;
-                       } else {
-                               if( i&2 ) {
-                               } else {
-                                       cread_err(_("There is no such mixer element"),ln);
-                                       err=-1;
-                               }
-                       }
-                       break;
-               }
-               if( err<0 ) conf.F_save=TRUE;
-               ln++;
-       }
-       fclose(fp);
-}
-
-static void cread_err(gchar *s,int n ) {
-       fprintf(stderr,_("config %d:%s\n"),n,s);
-}
-
-static void swap_obj( s_obj_t **obj,s_obj_t *o1,s_obj_t *o2 ) {
-       s_obj_t *p,*q;
-
-       if( o1 == NULL ) return;
-
-       q=o1;
-       while( q->next != o2 ) q=q->next;
-       q->next=o2->next;
-       if( *obj == o1 ) {
-               *obj=o2;
-               o2->next=o1;
-       } else {
-               p=*obj;
-               while( p->next != o1 ) p=p->next;
-               p->next=o2;
-               o2->next=o1;
-       }
-}
-
-void conf_write(void) {
-       int i,j,k;
-       FILE *fp;
-       s_mixer_t *m;
-       s_group_t *g;
-       s_eelements_t *ee;
-       s_obj_t *obj;
-
-       fp=fopen(conf.fna,"wt");
-       if( fp == NULL ) {
-               chk_cfile();
-               fp=fopen(conf.fna,"wt");
-       }
-       if( fp == NULL ) {
-               fprintf(stderr,_("gamix: config file not saved.\n"));
-               return;
-       }
-       fprintf(fp,"# OPT\n");
-       fprintf(fp,"S %d\n",conf.scroll);
-       fprintf(fp,"C %d\n",conf.wmode);
-       fprintf(fp,"A %d\n",conf.Esave);
-       gdk_window_get_size(window->window,&i,&j);
-       fprintf(fp,"Y %d\n",conf.sv_wsize);
-       if( conf.sv_wsize ) fprintf(fp,"W %d,%d\n",i,j);
-       for( i=0 ; i<card_num ; i++ ) {
-               for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                       m=&cards[i].mixer[j];
-                       fprintf(fp,"# Card: %s\n#   Mixer: %s\n",cards[i].info.name,
-                                       m->info.name);
-                       fprintf(fp,"M %d,%d=%d\n",i,j,m->enable);
-                       if( m->p_e ) {
-                               if( m->p_f ) k=2; else k=1;
-                       } else k=0;
-                       fprintf(fp,"X %d\n",k);
-                       for( obj=m->obj ; obj != NULL ; obj=obj->next ) {
-                               if( obj->g ) {
-                                       g=obj->g;
-                                       fprintf(fp,"G '%s',%d=%d\n",g->g.gid.name,g->g.gid.index,
-                                                       (obj->enable?1:0)|(obj->dyn_e?2:0));
-                               }
-                               if( obj->e ) {
-                                       ee=obj->e;
-                                       fprintf(fp,"E '%s',%d,%d=%d\n",
-                                               ee->e.e.eid.name,ee->e.e.eid.index,ee->e.e.eid.type,
-                                               obj->enable);
-                               }
-                       }
-               }
-       }
-       fclose(fp);
-}
-
-static void chk_cfile( void ) {
-       int i,j,k,err;
-       gchar *name;
-
-       k=strlen(g_get_home_dir());
-       name=g_strdup(conf.fna);
-       i=1;
-       j=strlen(name)-1;
-       err=-1;
-       while( i>0 ) {
-               if( err<0 ) {
-                       while( name[j] != '/' ) j--;
-                       name[j]=0;
-                       if( j <= k ) {
-                               fprintf(stderr,"Can not make dir ~/.gamix\n");
-                               g_free(name);
-                               return;
-                       }
-               } else {
-                       while( name[j] != 0 ) j++;
-                       name[j]='/';
-               }
-               err=mkdir(name,S_IRUSR|S_IWUSR|S_IXUSR|
-                                      S_IRGRP|S_IXGRP| S_IROTH|S_IXOTH);
-               if( err<0 ) {
-                       if( errno == ENOENT ) {
-                               i++;
-                       } else {
-                               fprintf(stderr,"Can not make dir %s\n",name);
-                               g_free(name);
-                               return;
-                       }
-               } else {
-                       i--;
-               }
-       }
-}
-
-static s_obj_t *obj_new( s_obj_t **objs,s_obj_t *o ) {
-       s_obj_t *p,*q;
-
-       q=(s_obj_t *)g_malloc0(sizeof(s_obj_t));
-       if( q == NULL ) {
-               fprintf(stderr,nomem_msg);
-               return NULL;
-       }
-       if( *objs == o ) {
-               q->next=*objs;
-               *objs=q;
-       } else {
-               p=*objs;
-               while( p->next != o ) p=p->next;
-               q->next=p->next;
-               p->next=q;
-       }
-       return q;
-}
-
-gint obj_ins_new_g( s_obj_t **objs,s_obj_t **o1,snd_mixer_gid_t *gid ) {
-       s_obj_t *p;
-       s_group_t *g;
-
-       p=obj_new(objs,*o1);
-       if( p == NULL ) return -1;
-       g=(s_group_t *)g_malloc0(sizeof(s_group_t));
-       if( g == NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       g->g.gid=*gid;
-       p->g=g;
-       *o1=p;
-       return 0;
-}
-          
-gint obj_ins_new_e( s_obj_t **objs,s_obj_t **o1,snd_mixer_eid_t *eid ) {
-       s_obj_t *p;
-       s_eelements_t *e;
-
-       p=obj_new(objs,*o1);
-       if( p == NULL ) return -1;
-       e=(s_eelements_t *)g_malloc0(sizeof(s_eelements_t));
-       if( e == NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       e->e.e.eid=*eid;
-       p->e=e;
-       *o1=p;
-       return 0;
-}
-          
diff --git a/gamix/gamix.h b/gamix/gamix.h
deleted file mode 100644 (file)
index ade18ce..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <gtk/gtk.h>
-#include <gdk/gdk.h>
-#include <glib.h>
-
-#include <sys/asoundlib.h>
-
-#ifdef ENABLE_NLS
-# include <libintl.h>
-# undef _
-# undef N_
-# define _(String) dgettext(PACKAGE,String)
-# ifdef gettext_noop
-#  define N_(String) gettext_noop(String)
-# else
-#  define N_(String) (String)
-# endif
-#else
-# define textdomain(String) (String)
-# define gettext(String) (String)
-# define dgettext(Domain,Message) (Message)
-# define dcgettext(Domain,Message,Type) (Message)
-# define bindtextdomain(Domain,Directory) (Domain)
-# define _(String) (String)
-# define N_(String) (String)
-#endif
-
-#define preid(eid) printf("'%s',%d,%d\n",(eid).name,(eid).index,(eid).type)
-
-typedef struct {
-       snd_mixer_element_t e;
-       snd_mixer_element_info_t info;
-       GtkWidget **w;
-       GtkAdjustment **adj;
-       gint card,mdev;
-       gint *chain_en;
-       gint *chain;
-       gint mux_n;
-       snd_mixer_eid_t *mux;
-} s_element_t;
-
-typedef struct s_eelements {
-       s_element_t e;
-} s_eelements_t;
-
-typedef struct s_group {
-       snd_mixer_group_t g;
-       s_element_t *e;
-} s_group_t;
-
-typedef struct s_obj s_obj_t;
-struct s_obj {
-       s_group_t *g;
-       s_eelements_t *e;
-       GtkWidget *v_frame;
-       gint enable;
-       gint enabled;
-       gint chain;
-       gint chain_en;
-       gint dyn_e;
-       GtkWidget *cwb;
-       s_obj_t *next;
-};
-
-typedef struct {
-       snd_mixer_t *handle;
-       snd_mixer_info_t info;
-       int c_dev,m_dev;
-       gint o_nums;
-       s_obj_t *obj;
-       GtkWidget *w;
-       gboolean enable;
-       gboolean enabled;
-       gboolean p_e;
-       gboolean p_f;
-} s_mixer_t;
-
-typedef struct {
-       snd_ctl_hw_info_t info;
-       s_mixer_t *mixer;
-} s_card_t;
-
-typedef struct {
-       gint wmode;
-       gboolean scroll;
-       gchar *fna;
-       gboolean F_save;
-       gboolean Esave;
-       gboolean sv_wsize;
-       gint width;
-       gint height;
-} s_conf;
-
-extern GtkWidget *window;
-extern int card_num,mdev_num;
-extern gint card,mdev;
-extern s_card_t *cards;
-extern s_conf conf;
-extern unsigned char *nomem_msg;
-
-/* probe.c */
-gint probe_mixer( void );
-gboolean is_etype( int );
-int s_element_build(snd_mixer_t *,s_element_t *,snd_mixer_elements_t *,
-                                       snd_mixer_eid_t ,int , int);
-
-/* mkmixer.c */
-GtkWidget *make_mixer( gint , gint );
-
-/* catch.c */
-void tc_init(void);
-gint time_callback(gpointer);
-
-/* conf_w.c */
-gint conf_win( void );
-void conf_read( void );
-void conf_write( void );
-gint obj_ins_new_g( s_obj_t **,s_obj_t **,snd_mixer_gid_t *);
-gint obj_ins_new_e( s_obj_t **,s_obj_t **,snd_mixer_eid_t *);
diff --git a/gamix/main.c b/gamix/main.c
deleted file mode 100644 (file)
index d13a605..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-
-#include "gamix.h"
-
-GtkWidget *window;
-GtkWidget *main_vbox;
-GtkWidget *mixer_container;
-GtkWidget *exit_item;
-unsigned char *nomem_msg = N_("No enough memory.\n");
-
-int main(int , char **);
-int disp_mixer( void );
-void disp_toolbar(void);
-static void exit_gtk(GtkWidget *,gpointer);
-static void sel_mctype(GtkWidget *,gpointer);
-static void conf_callback(GtkWidget *,gpointer);
-
-static void exit_gtk(GtkWidget *w,gpointer data) {
-       gtk_main_quit();
-}
-
-int main( int argc , char **argv ) {
-       int h,i;
-       gchar *dirname,*filename,*cname=NULL;
-
-       i=probe_mixer();
-       if( i < 0 ) {
-               fprintf(stderr,_("Can not make mixer.\n"));
-               return -1;
-       }
-
-#ifdef ENABLE_NLS
-       bindtextdomain (PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-#endif
-       gtk_set_locale();
-       gtk_init( &argc,&argv);
-
-       h=0;
-       while( (i=getopt(argc,argv,"c:h")) != -1 ) {
-               switch(i) {
-               case 'c':
-                       cname = g_strdup(optarg);
-                       break;
-               case 'h':
-                       h=1;
-                       break;
-               case ':':
-                       fprintf(stderr,"hoe?\n");
-                       break;
-               case '?':
-                       //fprintf(stderr,_("unknown option: %c\n"),optopt);
-                       h=1;
-                       break;
-               }
-       }
-
-       if( h ) {
-               printf("gamix ");
-               if( strcmp(PACKAGE,"alsa-utils") == 0 ) {
-                       printf(" alsa utils version.");
-               } else if( strcmp(PACKAGE,"gamix") == 0 ) {
-                       printf("%s original version.",VERSION);
-               }
-               putchar('\n');
-               printf(_("Usage: gamix [OPTION]\n"));
-               printf(_("  -h        print this help.\n"));
-               printf(_("  -c [file] change config file.\n"));
-               exit(0);
-       }
-
-       dirname = g_strconcat(g_get_home_dir(),"/.gamix",NULL);
-       filename = g_strconcat(dirname, "/gtkrc", NULL);
-       gtk_rc_init();
-       gtk_rc_parse(filename);
-       g_free(filename);
-
-       conf.scroll=TRUE;
-       conf.wmode=1;
-       conf.F_save=FALSE;
-       conf.Esave=FALSE;
-       if( cname ) {
-               if( cname[0] == '/' ) {
-                       conf.fna = g_strdup(cname);
-               } else {
-                       conf.fna = g_strconcat(dirname,"/",cname,NULL);
-               }
-       } else {
-               conf.fna = g_strconcat(dirname,"/Config",NULL);
-       }
-       conf.sv_wsize=TRUE;
-       conf.width=0;
-       conf.height=0;
-
-       g_free(dirname);
-
-       conf_read();
-
-       window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       gtk_signal_connect(GTK_OBJECT(window),"destroy",
-                                          GTK_SIGNAL_FUNC(gtk_main_quit),NULL);
-       main_vbox=gtk_vbox_new(FALSE,0);
-       gtk_container_add(GTK_CONTAINER(window),main_vbox);
-
-       disp_toolbar();
-
-       tc_init();
-       gtk_timeout_add(100,(GtkFunction)time_callback,NULL);
-
-       gtk_widget_show(main_vbox);
-       gtk_widget_show(window);
-       if( disp_mixer()<0 ) return 0;
-
-       gtk_main();
-       if( conf.F_save || conf.Esave ) {
-               conf_write();
-       }
-       g_free(conf.fna);
-       return 0;
-}
-
-void disp_toolbar(void) {
-       GtkWidget *menu,*sub_menu,*sub_item;
-       GtkWidget *frame;
-
-       frame=gtk_frame_new(NULL);
-       gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_OUT);
-       gtk_box_pack_start(GTK_BOX(main_vbox),frame,FALSE,FALSE,0);
-       gtk_widget_show(frame);
-
-       menu=gtk_menu_bar_new();
-       gtk_container_add(GTK_CONTAINER(frame),menu);
-       gtk_widget_show(menu);
-
-       /* Prg menu */
-       sub_menu=gtk_menu_new();
-
-       sub_item=gtk_menu_item_new_with_label(_("config"));
-       exit_item=sub_item;
-       gtk_menu_append(GTK_MENU(sub_menu),sub_item);
-       gtk_signal_connect(GTK_OBJECT(sub_item),"activate",
-                                          GTK_SIGNAL_FUNC(conf_callback),NULL);
-       gtk_widget_show(sub_item);
-
-       sub_item=gtk_menu_item_new_with_label(_("exit"));
-       exit_item=sub_item;
-       gtk_menu_append(GTK_MENU(sub_menu),sub_item);
-       gtk_signal_connect(GTK_OBJECT(sub_item),"activate",
-                                          GTK_SIGNAL_FUNC(exit_gtk),NULL);
-       gtk_widget_show(sub_item);
-
-       sub_item=gtk_menu_item_new_with_label(_("Prog"));
-       gtk_widget_show(sub_item);
-       gtk_menu_item_set_submenu(GTK_MENU_ITEM(sub_item),sub_menu);
-       gtk_menu_bar_append(GTK_MENU_BAR(menu),sub_item);
-
-       /* mixer container type menu*/
-       if( mdev_num > 1 ) {
-               sub_menu=gtk_menu_new();
-
-               sub_item=gtk_menu_item_new_with_label(_("Horizontal"));
-               gtk_menu_append(GTK_MENU(sub_menu),sub_item);
-               gtk_signal_connect(GTK_OBJECT(sub_item),"activate",
-                                                  GTK_SIGNAL_FUNC(sel_mctype),0);
-               gtk_widget_show(sub_item);
-
-               sub_item=gtk_menu_item_new_with_label(_("Vertical"));
-               gtk_menu_append(GTK_MENU(sub_menu),sub_item);
-               gtk_signal_connect(GTK_OBJECT(sub_item),"activate",
-                                                  GTK_SIGNAL_FUNC(sel_mctype),(gpointer)1);
-               gtk_widget_show(sub_item);
-
-               sub_item=gtk_menu_item_new_with_label(_("note book"));
-               gtk_menu_append(GTK_MENU(sub_menu),sub_item);
-               gtk_signal_connect(GTK_OBJECT(sub_item),"activate",
-                                                  GTK_SIGNAL_FUNC(sel_mctype),(gpointer)2);
-               gtk_widget_show(sub_item);
-
-               sub_item=gtk_menu_item_new_with_label(_("C-type"));
-               gtk_widget_show(sub_item);
-               gtk_menu_item_set_submenu(GTK_MENU_ITEM(sub_item),sub_menu);
-               gtk_menu_bar_append(GTK_MENU_BAR(menu),sub_item);
-       }
-}
-
-static void sel_mctype(GtkWidget *w,gpointer n) {
-       int i;
-
-       i=(int)n;
-       if( i == conf.wmode ) return;
-       conf.wmode=i;
-       conf.width=0;
-       conf.height=0;
-       gtk_container_remove(GTK_CONTAINER(main_vbox),mixer_container);
-       if( (i=disp_mixer()) < 0 ) gtk_signal_emit_by_name(GTK_OBJECT(exit_item),
-                                                                                                          "activate");
-}
-
-int disp_mixer( void ) {
-       int i,j;
-       GtkWidget *n_label;
-       GtkWidget *frame;
-       GtkRequisition rq;
-
-       switch( conf.wmode ) {
-       case 0: /* H */
-               if( conf.scroll ) {
-                       mixer_container=gtk_hbox_new(TRUE,0);
-               } else {
-                       mixer_container=gtk_hbox_new(FALSE,0);
-               }
-               for( i=0 ; i<card_num ; i++ ) {
-                       for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                               if( cards[i].mixer[j].enable ) {
-                                       cards[i].mixer[j].w=gtk_frame_new(NULL);
-                                       gtk_frame_set_shadow_type(GTK_FRAME(cards[i].mixer[j].w),
-                                                                                         GTK_SHADOW_ETCHED_IN);
-                                       gtk_widget_show(cards[i].mixer[j].w);
-                                       frame=make_mixer(i,j);
-                                       if( !frame ) return -1;
-                                       gtk_container_add(GTK_CONTAINER(cards[i].mixer[j].w),
-                                                                         frame);
-                                       gtk_box_pack_start(GTK_BOX(mixer_container),
-                                                                          cards[i].mixer[j].w,TRUE,TRUE,2);
-                               }
-                       }
-               }
-               break;
-       case 1: /* V */
-               mixer_container=gtk_vbox_new(FALSE,0);
-               for( i=0 ; i<card_num ; i++ ) {
-                       for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                               if( cards[i].mixer[j].enable ) {
-                                       cards[i].mixer[j].w=make_mixer(i,j);
-                                       if( !cards[i].mixer[j].w ) return -1;
-                                       gtk_box_pack_start(GTK_BOX(mixer_container),
-                                                                          cards[i].mixer[j].w,TRUE,TRUE,0);
-                               }
-                       }
-               }
-               break;
-       case 2: /* NoteBook */
-               mixer_container=gtk_notebook_new();
-               gtk_notebook_set_tab_pos(GTK_NOTEBOOK(mixer_container),GTK_POS_TOP);
-               for( i=0 ; i<card_num ; i++ )
-                       for( j=0 ; j<cards[i].info.mixerdevs ; j++ ) {
-                               if( cards[i].mixer[j].enable ) {
-                                       cards[i].mixer[j].w=make_mixer(i,j);
-                                       if( !cards[i].mixer[j].w ) return -1;
-                                       n_label=gtk_label_new(cards[i].mixer[j].info.name);
-                                       gtk_notebook_append_page(GTK_NOTEBOOK(mixer_container),
-                                                                                        cards[i].mixer[j].w,n_label);
-                               }
-                       }
-               break;
-       }
-
-       gtk_widget_show(mixer_container);
-       gtk_widget_size_request(mixer_container,&rq);
-       //printf("MIXER X %3d Y %3d\n",rq.width,rq.height);
-       gtk_widget_size_request(window,&rq);
-       //printf("WINDOW X %3d Y %3d\n",rq.width,rq.height);
-       if( rq.width > 0 && rq.height > 0 )
-               gdk_window_resize(window->window,rq.width,rq.height);
-       gtk_box_pack_start(GTK_BOX(main_vbox),mixer_container,TRUE,TRUE,0);
-       /*
-         gtk_widget_size_request(window,&rq);
-         printf("WINDOW X %3d Y %3d\n",rq.width,rq.height);
-       */
-
-       if( conf.width>0 && conf.height >0 && !conf.F_save ) {
-               gtk_widget_size_request(window,&rq);
-               gdk_window_resize(window->window,conf.width,conf.height);
-               //conf.width=0;
-               //conf.height=0;
-       }
-
-       return 0;
-}
-
-static void conf_callback(GtkWidget *w ,gpointer data) {
-       gint err;
-       GtkRequisition rq;
-
-       err=conf_win();
-       if( err < 0 )  gtk_signal_emit_by_name(GTK_OBJECT(exit_item),"activate");
-       if( err ) {
-               gtk_container_remove(GTK_CONTAINER(main_vbox),mixer_container);
-               if( disp_mixer() < 0 ) gtk_signal_emit_by_name(
-                                                                               GTK_OBJECT(exit_item),"activate");
-               gtk_widget_size_request(window,&rq);
-               gdk_window_resize(window->window,rq.width,rq.height);
-       }
-}
diff --git a/gamix/mkmixer.c b/gamix/mkmixer.c
deleted file mode 100644 (file)
index 8b0b2cd..0000000
+++ /dev/null
@@ -1,942 +0,0 @@
-
-#include "gamix.h"
-
-static gchar *label_3d[]={
-       "wide","volume","center","space","depth","delay","feedback","depth rear"};
-static gchar *label_tone[]={"B","T"};
-static gchar *pc1_ptc1[]={"L","F","B"};
-static gchar *pc1_ptc2[]={"R","R","U"};
-
-static void close_callback(GtkWidget *,s_mixer_t *);
-static void volume1_callback(GtkAdjustment *,s_element_t *);
-static void volume1_sw_callback(GtkToggleButton *,s_element_t *);
-static void switch1_callback(GtkToggleButton *,s_element_t *);
-static void switch2_callback(GtkToggleButton *,s_element_t *);
-static void chain_callback(GtkToggleButton *,s_obj_t *);
-static void accu3_callback(GtkAdjustment *,s_element_t *);
-static void mux1_callback(GtkItem *,s_element_t *);
-static void mux2_callback(GtkItem *,s_element_t *);
-static void sw_3d_callback(GtkToggleButton *,s_element_t *);
-static void vol_3d_callback(GtkAdjustment *,s_element_t *);
-static void sw_tone_callback(GtkToggleButton *,s_element_t *);
-static void vol_tone_callback(GtkAdjustment *,s_element_t *);
-static void pc1_callback(GtkAdjustment *,s_element_t *);
-static void pc1_ss_callback(GtkWidget *,s_element_t *);
-static gint mk_element(s_element_t *,GtkBox *);
-
-static void close_callback(GtkWidget *w,s_mixer_t *mixer) {
-       int i;
-       s_obj_t *obj;
-
-       /*
-       for( i=0 ; i<mixer->groups.groups ; i++ ) {
-               g=&mixer->group[i];
-               g->enabled=FALSE;
-       }
-       for( i=0 ; i<mixer->ee_n ; i++ ) {
-               ee=&mixer->ee[i];
-               ee->enabled=FALSE;
-       }
-       for( g=mixer->group; g != NULL ; g=g->next ) g->enabled=FALSE;
-       for( ee=mixer->ee; ee != NULL ; ee=ee->next ) ee->enabled=FALSE;
-       */
-       for( obj=mixer->obj ; obj != NULL ; obj=obj->next ) obj->enabled=FALSE;
-               
-       snd_mixer_close(mixer->handle);
-       mixer->handle=NULL;
-}
-
-static void volume1_sw_callback(GtkToggleButton *b,s_element_t *e) {
-       int i,j,value,err;
-
-       for( i=0 ; i<e->e.data.volume1.voices; i++ ) {
-               if( b == GTK_TOGGLE_BUTTON(e->w[i]) ) break;
-       }
-       value=b->active?1:0;
-       if( e->e.data.volume1.pvoices[i] == value ) return;
-       if( e->e.data.volume1.voices > 1 && *e->chain ) {
-               for( j=0 ; j<e->e.data.volume1.voices; j++ ) {
-                       e->e.data.volume1.pvoices[j]=value;
-                       if( j!= i ) {
-                               gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[j]),b->active);
-                       }
-               }
-       } else {
-               e->e.data.volume1.pvoices[i]=value;
-       }
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err < 0 ) {
-               fprintf(stderr,_("mixer element write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void volume1_callback(GtkAdjustment *adj,s_element_t *e) {
-       int i,j,value,err;
-
-       for( i=0 ; i<e->e.data.volume1.voices; i++ ) {
-               if( adj == e->adj[i] ) break;
-       }
-       value=-(int)adj->value;
-       if( e->e.data.volume1.pvoices[i] == value ) return;
-       if( e->e.data.volume1.voices > 1 && *e->chain ) {
-               for( j=0 ; j<e->e.data.volume1.voices; j++ ) {
-                       e->e.data.volume1.pvoices[j]=value;
-                       if( j!= i ) {
-                               e->adj[j]->value=adj->value;
-                               gtk_signal_emit_by_name(GTK_OBJECT(e->adj[j]),"value_changed");
-                       }
-               }
-       } else {
-               e->e.data.volume1.pvoices[i]=value;
-       }
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err < 0 ) {
-               fprintf(stderr,_("mixer element write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void switch1_callback(GtkToggleButton *b,s_element_t *e ) {
-       int i,j;
-
-       for( i=0 ; i<e->e.data.switch1.sw; i++ ) {
-               if( b == (GtkToggleButton *)e->w[i] ) break;
-       }
-       if(     (snd_mixer_get_bit(e->e.data.switch1.psw,i)?TRUE:FALSE) == b->active )
-               return;
-       if( e->e.data.switch1.sw > 1 && *e->chain ) {
-               for( j=0 ; j<e->e.data.switch1.sw; j++ ) {
-                       snd_mixer_set_bit(e->e.data.switch1.psw,j,b->active);
-                       if( j != i )
-                               gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->w[j]),b->active);
-               }
-       } else {
-               snd_mixer_set_bit(e->e.data.switch1.psw,i,b->active);
-       }
-       snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-}
-
-static void switch2_callback(GtkToggleButton *b,s_element_t *e ) {
-       int err;
-
-       e->e.data.switch2.sw=b->active;
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-}
-
-static void chain_callback(GtkToggleButton *b,s_obj_t *obj ) {
-       obj->chain = b->active;
-       /*
-       printf("obj ");
-       if( obj->g ) printf("gid '%s',%d ",obj->g->g.gid.name,obj->g->g.gid.index);
-       if( obj->e ) printf("eid '%s',%d,%d ",obj->e->e.e.eid.name,
-                                               obj->e->e.e.eid.index,obj->e->e.e.eid.type);
-       printf(" %s\n",obj->chain?"TRUE":"FALSE");
-       */
-}
-
-static void accu3_callback(GtkAdjustment *adj,s_element_t *e) {
-       int i,j,value,err;
-
-       for( i=0 ; i<e->e.data.accu3.voices; i++ ) {
-               if( adj == e->adj[i] ) break;
-       }
-       value=-(int)adj->value;
-       if( e->e.data.accu3.pvoices[i] == value ) return;
-       if( e->e.data.accu3.voices > 1 && *e->chain ) {
-               for( j=0 ; j<e->e.data.accu3.voices; j++ ) {
-                       e->e.data.accu3.pvoices[j]=value;
-                       if( j!= i ) {
-                               e->adj[j]->value=adj->value;
-                               gtk_signal_emit_by_name(GTK_OBJECT(e->adj[j]),"value_changed");
-                       }
-               }
-       } else {
-               e->e.data.accu3.pvoices[i]=value;
-       }
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err < 0 ) {
-               fprintf(stderr,_("mixer element write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void mux1_callback(GtkItem *item,s_element_t *e ) {
-       int i,ch,no,err;
-
-       ch=(int)gtk_object_get_data(GTK_OBJECT(item),"ch");
-       no=(int)gtk_object_get_data(GTK_OBJECT(item),"no");
-
-       if( strcmp(e->mux[no].name,e->e.data.mux1.poutput[ch].name) == 0 &&
-               e->mux[no].index == e->e.data.mux1.poutput[ch].index &&
-               e->mux[no].type == e->e.data.mux1.poutput[ch].type ) return;
-
-       if( *e->chain ) {
-               for( i=0 ; i<e->e.data.mux1.output ; i++ ) {
-                       e->e.data.mux1.poutput[i]=e->mux[no];
-                       if( ch != i ) gtk_option_menu_set_history(
-                                                                                         GTK_OPTION_MENU(e->w[i]),no);
-               }
-       } else {
-               e->e.data.mux1.poutput[ch]=e->mux[no];
-       }
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err< 0 ) {
-               fprintf(stderr,_("mixer mux1 element write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void mux2_callback(GtkItem *item,s_element_t *e ) {
-       int no,err;
-
-       no=(int)gtk_object_get_data(GTK_OBJECT(item),"no");
-
-       if( strcmp(e->mux[no].name,e->e.data.mux2.output.name) == 0 &&
-               e->mux[no].index == e->e.data.mux2.output.index &&
-               e->mux[no].type == e->e.data.mux2.output.type ) return;
-
-       e->e.data.mux2.output=e->mux[no];
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err< 0 ) {
-               fprintf(stderr,_("mixer mux1 element write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void sw_3d_callback(GtkToggleButton *b,s_element_t *e ) {
-       int err;
-
-       if( b == (GtkToggleButton *)e->w[0] ) {
-               e->e.data.teffect1.sw = b->active;
-       } else {
-               e->e.data.teffect1.mono_sw = b->active;
-       }
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-}
-
-static void vol_3d_callback(GtkAdjustment *adj,s_element_t *e) {
-       int i,err,*v,value;
-
-       for( i=0 ; i<7 ; i++ ) {
-               if( adj == e->adj[i] ) break;
-       }
-       v=NULL;
-       switch( i ) {
-       case 0:
-               v=&e->e.data.teffect1.wide;
-               break;
-       case 1:
-               v=&e->e.data.teffect1.volume;
-               break;
-       case 2:
-               v=&e->e.data.teffect1.center;
-               break;
-       case 3:
-               v=&e->e.data.teffect1.space;
-               break;
-       case 4:
-               v=&e->e.data.teffect1.depth;
-               break;
-       case 5:
-               v=&e->e.data.teffect1.delay;
-               break;
-       case 6:
-               v=&e->e.data.teffect1.feedback;
-               break;
-       case 7:
-               v=&e->e.data.teffect1.depth_rear;
-               break;
-       }
-       value=(int)adj->value;
-       if( v ) {
-               if( value == *v ) return;
-               *v=value;
-       } else return;
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err<0 ) {
-               fprintf(stderr,_("3D effect write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void sw_tone_callback(GtkToggleButton *b,s_element_t *e ) {
-       int err;
-
-       e->e.data.tc1.sw = b->active;
-       e->e.data.tc1.tc=SND_MIXER_TC1_SW;
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-}
-
-static void vol_tone_callback(GtkAdjustment *adj,s_element_t *e) {
-       int i,err,*v,value;
-
-       for( i=0 ; i<2 ; i++ ) {
-               if( adj == e->adj[i] ) break;
-       }
-       v=NULL;
-       switch( i ) {
-       case 0:
-               v=&e->e.data.tc1.bass;
-               e->e.data.tc1.tc=SND_MIXER_TC1_BASS;
-               break;
-       case 1:
-               v=&e->e.data.tc1.treble;
-               e->e.data.tc1.tc=SND_MIXER_TC1_TREBLE;
-               break;
-       }
-       value=-(int)adj->value;
-       if( v ) {
-               if( value == *v ) return;
-               *v=value;
-       } else return;
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err<0 ) {
-               fprintf(stderr,_("Tone controll write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void pc1_callback(GtkAdjustment *adj,s_element_t *e) {
-       int i,err,value;
-
-       value=(int)adj->value;
-       for( i=0 ; i<e->e.data.pc1.pan; i++ ) {
-               if( adj == e->adj[i] ) break;
-       }
-       if( i==e->e.data.pc1.pan ) {
-               fprintf(stderr,"Pan err.\n");
-               return;
-       }
-       if( e->e.data.pc1.ppan[i]==value ) return;
-
-       e->e.data.pc1.ppan[i]=value;
-       err=snd_mixer_element_write(cards[e->card].mixer[e->mdev].handle,&e->e);
-       if( err<0 ) {
-               fprintf(stderr,_("PAN controll write error: %s\n"),snd_strerror(err));
-       }
-}
-
-static void pc1_ss_callback(GtkWidget *w,s_element_t *e) {
-       int i,j,k,err;
-       gfloat v=0;
-
-       j=1;
-       for( i=0 ; i<e->e.data.pc1.pan; i++ ) {
-               if( w == e->w[j] ) {
-                       k=e->info.data.pc1.prange[i].min;
-                       break;
-               }
-               j++;
-               if( w == e->w[j] ) {
-                       k=(e->info.data.pc1.prange[i].min+e->info.data.pc1.prange[i].max)/2;
-                       break;
-               }
-               j++;
-               if( w == e->w[j] ) {
-                       k=e->info.data.pc1.prange[i].max;
-                       break;
-               }
-               j+=2;
-       }
-       if( i<e->e.data.pc1.pan ) {
-               if( e->e.data.pc1.ppan[i] == k ) return;
-               e->adj[i]->value=(gfloat)k;
-               gtk_signal_emit_by_name(GTK_OBJECT(e->adj[i]),"value_changed");
-       }
-}
-
-GtkWidget *make_mixer( gint c_n , gint m_n ) {
-       int i,j,k,err;
-       GtkWidget *mv_box,*m_name;
-       GtkWidget *s_win;
-       GtkWidget *mh_box;
-       GtkWidget *frame;
-       GtkWidget *iv_box;
-       GtkWidget *ih_box;
-       GtkWidget *c_l;
-       char gname[128];
-       s_mixer_t *mixer;
-       s_group_t *group=NULL;
-       s_element_t *e;
-       s_eelements_t *ee;
-       s_obj_t *obj;
-
-       if( cards[c_n].mixer[m_n].handle ) {
-               snd_mixer_close(cards[c_n].mixer[m_n].handle);
-       }
-       if( (err=snd_mixer_open(&cards[c_n].mixer[m_n].handle,c_n,m_n)) < 0 ) {
-               return NULL;
-       }
-
-       mixer = &cards[c_n].mixer[m_n];
-
-       mv_box=gtk_vbox_new(FALSE,0);
-       gtk_widget_show(mv_box);
-
-       sprintf(gname,"%s:%s",cards[c_n].info.name,
-                       cards[c_n].mixer[m_n].info.name);
-       m_name=gtk_label_new(gname);
-       gtk_box_pack_start(GTK_BOX(mv_box),m_name,FALSE,FALSE,0);
-       gtk_widget_show(m_name);
-
-       mh_box=gtk_hbox_new(FALSE,2);
-       if( conf.scroll ) {
-               s_win=gtk_scrolled_window_new(NULL,NULL);
-               gtk_box_pack_start(GTK_BOX(mv_box),s_win,TRUE,TRUE,0);
-               gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_win),
-                                                                          GTK_POLICY_AUTOMATIC,
-                                                                          GTK_POLICY_NEVER);
-               gtk_widget_show(s_win);
-               gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(s_win),
-                                                                                         mh_box);
-               //gtk_container_add(GTK_CONTAINER(s_win),mh_box);
-       } else {
-               gtk_box_pack_start(GTK_BOX(mv_box),mh_box,TRUE,TRUE,4);
-       }
-       gtk_widget_show(mh_box);
-
-       for( obj=mixer->obj ; obj != NULL ; obj=obj->next ) {
-               if( obj->g ) {
-                       group=obj->g;
-                       k=0;
-                       for( j=0 ; j<group->g.elements ; j++ ) {
-                               if( group->e[j].e.eid.type ) k++;
-                       }
-                       if( k==0 && obj->dyn_e == 0) obj->enable=FALSE;
-                       if( obj->enable && (obj->dyn_e == 0 || obj->dyn_e == 3) ) {
-                               obj->v_frame=frame=gtk_frame_new(NULL);
-                               gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_OUT);
-                               gtk_box_pack_start(GTK_BOX(mh_box),frame,
-                                                                  mixer->p_e,mixer->p_f,0);
-                               iv_box=gtk_vbox_new(FALSE,0);
-                               gtk_container_add(GTK_CONTAINER(frame),iv_box);
-                               obj->chain_en=FALSE;
-                               for( j=0 ; j<group->g.elements ; j++ ) {
-                                       e=&group->e[j];
-                                       e->chain = &obj->chain;
-                                       e->chain_en = &obj->chain_en;
-                                       if( mk_element(e,GTK_BOX(iv_box))<0 ) return NULL;
-                               }
-                               if( group->g.gid.index > 0 ) {
-                                       sprintf(gname,"%s %d",group->g.gid.name,
-                                                       group->g.gid.index);
-                               } else {
-                                       sprintf(gname,"%s",group->g.gid.name);
-                               }
-                               ih_box=gtk_hbox_new(FALSE,2);
-                               gtk_box_pack_start(GTK_BOX(iv_box),ih_box,FALSE,FALSE,0);
-                               if( obj->chain_en ) {
-                                       obj->cwb=gtk_toggle_button_new();
-                                       gtk_box_pack_start(GTK_BOX(ih_box),obj->cwb,
-                                                                          FALSE,FALSE,4);
-                                       gtk_widget_set_usize(obj->cwb,10,10);
-                                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(obj->cwb)
-                                                                                               ,obj->chain);
-                                       gtk_widget_show(obj->cwb);
-                                       gtk_signal_connect(GTK_OBJECT(obj->cwb),"toggled",
-                                                                          GTK_SIGNAL_FUNC(chain_callback),
-                                                                          (gpointer)obj);
-                                       c_l=gtk_label_new(_("Lock"));
-                                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                                       gtk_widget_show(c_l);
-                                       gtk_widget_show(ih_box);
-                                       if( strlen(gname) > 10 ) {
-                                               j=0;
-                                               while( gname[j]!=' ' && gname[j]!=0 ) j++;
-                                               if( gname[j]!=0 ) {
-                                                       gname[j+3]=0;
-                                               }
-                                               if( group->g.gid.index > 0 )
-                                                       sprintf(gname,"%s %d",gname,group->g.gid.index);
-                                       }
-                               } else {
-                                       c_l=gtk_label_new(" ");
-                                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                                       gtk_widget_show(c_l);
-                                       if( strlen(gname) > 5 ) {
-                                               j=0;
-                                               while( gname[j]!=' ' && gname[j]!=0 ) j++;
-                                               if( gname[j]!=0 ) {
-                                                       gname[j+3]=0;
-                                               }
-                                               if( group->g.gid.index > 0 )
-                                                       sprintf(gname,"%s %d",gname,group->g.gid.index);
-                                       }
-                               }
-                               gtk_frame_set_label(GTK_FRAME(frame),gname);
-                               gtk_widget_show(ih_box);
-                               gtk_widget_show(iv_box);
-                               gtk_widget_show(frame);
-                               obj->enabled=TRUE;
-                       } else {
-                               obj->enabled=FALSE;
-                       }
-               }
-               if( obj->e ) {
-                       if( obj->enable && (obj->dyn_e == 0 || obj->dyn_e == 3)) {
-                               ee=obj->e;
-                               e=&ee->e;
-                               obj->v_frame=frame=gtk_frame_new(NULL);
-                               gtk_frame_set_shadow_type(GTK_FRAME(frame),GTK_SHADOW_OUT);
-                               gtk_box_pack_start(GTK_BOX(mh_box),frame,
-                                                                  mixer->p_e,mixer->p_f,0);
-                               iv_box=gtk_vbox_new(FALSE,0);
-                               gtk_container_add(GTK_CONTAINER(frame),iv_box);
-                               obj->chain_en=FALSE;
-                               e->chain=&obj->chain;
-                               e->chain_en=&obj->chain_en;
-                               if( mk_element(e,GTK_BOX(iv_box))<0 ) return NULL;
-                               ih_box=gtk_hbox_new(FALSE,2);
-                               gtk_box_pack_start(GTK_BOX(iv_box),ih_box,FALSE,FALSE,0);
-                               if( e->e.eid.index > 0 ) {
-                                       sprintf(gname,"%s%d",e->e.eid.name,e->e.eid.index);
-                               } else {
-                                       sprintf(gname,"%s",e->e.eid.name);
-                               }
-                               if( obj->chain_en ) {
-                                       obj->cwb=gtk_toggle_button_new();
-                                       gtk_box_pack_start(GTK_BOX(ih_box),obj->cwb,FALSE,FALSE,4);
-                                       gtk_widget_set_usize(obj->cwb,10,10);
-                                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(obj->cwb)
-                                                                                               ,obj->chain);
-                                       gtk_widget_show(obj->cwb);
-                                       gtk_signal_connect(GTK_OBJECT(obj->cwb),"toggled",
-                                                                          GTK_SIGNAL_FUNC(chain_callback),
-                                                                          (gpointer)obj);
-                                       c_l=gtk_label_new(_("Lock"));
-                                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                                       gtk_widget_show(c_l);
-                                       gtk_widget_show(ih_box);
-                                       if( strlen(gname) > 10 ) {
-                                               j=0;
-                                               while( gname[j]!=' ' && gname[j]!=0 ) j++;
-                                               if( gname[j]!=0 ) {
-                                                       gname[j+3]=0;
-                                               }
-                                       }
-                               } else {
-                                       c_l=gtk_label_new(" ");
-                                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                                       gtk_widget_show(c_l);
-                               }
-                               gtk_frame_set_label(GTK_FRAME(frame),gname);
-                               gtk_widget_show(ih_box);
-                               gtk_widget_show(iv_box);
-                               gtk_widget_show(frame);
-                               obj->enabled=TRUE;
-                       } else {
-                               obj->enabled=FALSE;
-                       }
-               }
-       }
-       gtk_signal_connect(GTK_OBJECT(mv_box),"destroy",
-                                          GTK_SIGNAL_FUNC(close_callback),(gpointer)mixer);
-       mixer->enabled=TRUE;
-       return mv_box;
-}
-
-#define MIX_3D_VOL(NO,name,min_name,max_name,sname) \
-  if( e->info.data.teffect1.effect & sname ) { \
-    ih_box=gtk_hbox_new(FALSE,2); \
-    gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0); \
-    c_l=gtk_label_new(label_3d[NO]); \
-       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0); \
-       gtk_widget_show(c_l); \
-       gtk_widget_show(ih_box); \
-       e->adj[NO]=(GtkAdjustment *)gtk_adjustment_new( \
-         (gfloat)e->e.data.teffect1.name, \
-         (gfloat)e->info.data.teffect1.min_name-0.5, \
-         (gfloat)e->info.data.teffect1.max_name+1.0, \
-         1.0,1.0,1.0); \
-       gtk_signal_connect(GTK_OBJECT(e->adj[NO]), \
-         "value_changed",GTK_SIGNAL_FUNC(vol_3d_callback),(gpointer)e);\
-       e->w[NO+2]=gtk_hscale_new(GTK_ADJUSTMENT(e->adj[NO])); \
-       gtk_scale_set_draw_value(GTK_SCALE(e->w[NO+2]),FALSE); \
-       gtk_box_pack_start(GTK_BOX(iv_box), e->w[NO+2],FALSE,FALSE,4); \
-       gtk_widget_show(e->w[NO+2]); \
-  } else { ;\
-       e->w[NO+2]=NULL; \
-       e->adj[NO]=NULL; \
-  }
-#define MIX_TONE_VOL(NO,name,min_name,max_name,sname) \
-  if( e->info.data.tc1.tc & sname ) { \
-    tv_box = gtk_vbox_new(FALSE,2); \
-    gtk_box_pack_start(GTK_BOX(ih_box),tv_box,TRUE,TRUE,0); \
-    c_l=gtk_label_new(label_tone[NO]); \
-    gtk_box_pack_start(GTK_BOX(tv_box),c_l,FALSE,FALSE,0); \
-       gtk_widget_show(c_l); \
-       e->adj[NO]=(GtkAdjustment *)gtk_adjustment_new( \
-         -(gfloat)e->e.data.tc1.name, \
-         -(gfloat)e->info.data.tc1.max_name-0.5, \
-         -(gfloat)e->info.data.tc1.min_name+0.5, \
-         1.0,4.0,1.0); \
-       gtk_signal_connect(GTK_OBJECT(e->adj[NO]), \
-         "value_changed",GTK_SIGNAL_FUNC(vol_tone_callback),(gpointer)e);\
-       e->w[NO+1]=gtk_vscale_new(GTK_ADJUSTMENT(e->adj[NO])); \
-       gtk_scale_set_draw_value(GTK_SCALE(e->w[NO+1]),FALSE); \
-       gtk_box_pack_start(GTK_BOX(tv_box), e->w[NO+1],FALSE,FALSE,4); \
-       gtk_widget_show(e->w[NO+1]); \
-       gtk_widget_show(tv_box); \
-  } else { ;\
-       e->w[NO+1]=NULL; \
-       e->adj[NO]=NULL; \
-  }
-
-gint mk_element(s_element_t *e,GtkBox *iv_box) {
-       int i,j,k;
-       GtkWidget *ih_box,*tv_box;
-       GtkWidget *menu,*c_l,*item;
-
-       ih_box=gtk_hbox_new(TRUE,0);
-       switch( e->e.eid.type) {
-       case SND_MIXER_ETYPE_VOLUME1:
-               if( (e->info.data.volume1.prange[0].max-
-                        e->info.data.volume1.prange[0].min) == 1 ) {
-                       gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0);
-               } else
-                       gtk_box_pack_start(iv_box,ih_box,TRUE,TRUE,0);
-               if( e->e.data.volume1.voices > 1 ) {
-                       *e->chain_en=TRUE;
-                       *e->chain=TRUE;
-               }
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc( e->e.data.volume1.voices *
-                                                                                  sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               if( e->adj == NULL ) {
-                       e->adj=(GtkAdjustment **)g_malloc(e->e.data.volume1.voices*
-                                                                                         sizeof(GtkAdjustment *));
-               }
-               if( e->adj==NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               for( i=0 ; i<e->e.data.volume1.voices ; i++ ) {
-                       if( (e->info.data.volume1.prange[i].max-
-                                e->info.data.volume1.prange[i].min) == 1 ) {
-                               e->adj[i]=NULL;
-                               e->w[i]=gtk_toggle_button_new_with_label("V");
-                               gtk_box_pack_start(GTK_BOX(ih_box),e->w[i],
-                                                                  FALSE,FALSE,0);
-                               gtk_toggle_button_set_state(
-                                                                       GTK_TOGGLE_BUTTON(e->w[i]),
-                                                                       e->e.data.volume1.pvoices[i]);
-                               gtk_signal_connect(GTK_OBJECT(e->w[i]),"toggled",
-                                                                  GTK_SIGNAL_FUNC(volume1_sw_callback),
-                                                                  (gpointer)e);
-                               gtk_widget_show(e->w[i]);
-                       } else {
-                               e->adj[i]=(GtkAdjustment *)gtk_adjustment_new(
-                                               -(gfloat)e->e.data.volume1.pvoices[i],
-                                               -(gfloat)e->info.data.volume1.prange[i].max-0.5,
-                                               -(gfloat)e->info.data.volume1.prange[i].min+0.5,
-                                               1.0,4.0,1.0);
-                               gtk_signal_connect(GTK_OBJECT(e->adj[i]),"value_changed",
-                                                                  GTK_SIGNAL_FUNC(volume1_callback),
-                                                                  (gpointer)e);
-                               e->w[i]=gtk_vscale_new(GTK_ADJUSTMENT(e->adj[i]));
-                               gtk_scale_set_draw_value(GTK_SCALE(e->w[i]),FALSE);
-                               gtk_box_pack_start(GTK_BOX(ih_box),e->w[i],FALSE,FALSE,4);
-                               gtk_widget_show(e->w[i]);
-                       }
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH1:
-               gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,4);
-               if( e->e.data.switch1.sw > 1 ) {
-                       *e->chain_en=TRUE;
-                       *e->chain=TRUE;
-               }
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc( e->e.data.switch1.sw *
-                                                                                  sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               for( i=0 ; i<e->e.data.switch1.sw ; i++ ) {
-                       e->w[i]=gtk_toggle_button_new();
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[i],FALSE,FALSE,0);
-                       gtk_widget_set_usize(e->w[i],10,10);
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(e->w[i]),
-                                                                       snd_mixer_get_bit(e->e.data.switch1.psw,i)
-                                                                               );
-                       gtk_signal_connect(GTK_OBJECT(e->w[i]),"toggled",
-                                                          GTK_SIGNAL_FUNC(switch1_callback),(gpointer)e);
-                       gtk_widget_show(e->w[i]);
-               }
-               break;
-       case SND_MIXER_ETYPE_SWITCH2:
-               gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,4);
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               e->w[0]=gtk_toggle_button_new();
-               gtk_box_pack_start(GTK_BOX(ih_box),e->w[0],FALSE,FALSE,0);
-               gtk_widget_set_usize(e->w[0],10,10);
-               gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(e->w[0]),
-                                                                       e->e.data.switch2.sw);
-               gtk_signal_connect(GTK_OBJECT(e->w[0]),"toggled",
-                                                  GTK_SIGNAL_FUNC(switch2_callback),
-                                                  (gpointer)e);
-               gtk_widget_show(e->w[0]);
-               break;
-       case SND_MIXER_ETYPE_ACCU3:
-               gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0);
-               if( e->e.data.accu3.voices > 1 ) {
-                       *e->chain_en=TRUE;
-                       *e->chain=TRUE;
-               }
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(e->e.data.accu3.voices *
-                                                                                 sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               if( e->adj == NULL ) {
-                       e->adj=(GtkAdjustment **)g_malloc(e->e.data.accu3.voices*
-                                                                                         sizeof(GtkAdjustment *));
-               }
-               if( e->adj==NULL ) {
-                       printf(nomem_msg);
-                       return -1;
-               }
-               for( i=0 ; i<e->e.data.accu3.voices ; i++ ) {
-                       e->adj[i]=(GtkAdjustment *)gtk_adjustment_new(
-                                                               -(gfloat)e->e.data.accu3.pvoices[i],
-                                                               -(gfloat)e->info.data.accu3.prange[i].max-0.5,
-                                                               -(gfloat)e->info.data.accu3.prange[i].min+0.5,
-                                                               1.0,1.0,1.0);
-                       gtk_signal_connect(GTK_OBJECT(e->adj[i]),"value_changed",
-                                                          GTK_SIGNAL_FUNC(accu3_callback),(gpointer)e);
-                       e->w[i]=gtk_vscale_new(GTK_ADJUSTMENT(e->adj[i]));
-                       gtk_scale_set_draw_value(GTK_SCALE(e->w[i]),FALSE);
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[i],FALSE,FALSE,4);
-                       gtk_widget_show(e->w[i]);
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX1:
-               if( e->e.data.mux1.output > 1 ) {
-                       *e->chain_en=TRUE;
-                       *e->chain=TRUE;
-               }
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(e->e.data.mux1.output *
-                                                                                 sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               for( i=0 ; i<e->e.data.mux1.output ; i++ ) {
-                       e->w[i]=gtk_option_menu_new();
-                       menu=gtk_menu_new();
-                       k=0;
-                       for( j=0 ; j<e->mux_n; j++ ) {
-                               if( strcmp(e->mux[j].name,e->e.data.mux1.poutput[i].name)==0 &&
-                                       e->mux[j].index == e->e.data.mux1.poutput[i].index &&
-                                       e->mux[j].type == e->e.data.mux1.poutput[i].type ) k=j;
-                               item=gtk_menu_item_new_with_label(e->mux[j].name);
-                               gtk_object_set_data(GTK_OBJECT(item),"ch",(gpointer)i);
-                               gtk_object_set_data(GTK_OBJECT(item),"no",(gpointer)j);
-                               gtk_signal_connect(GTK_OBJECT(item),"activate",
-                                                                  GTK_SIGNAL_FUNC(mux1_callback),(gpointer)e);
-                               gtk_menu_append(GTK_MENU(menu),item);
-                               gtk_widget_show(item);
-                       }
-                       gtk_option_menu_set_menu(GTK_OPTION_MENU(e->w[i]),menu);
-                       gtk_box_pack_start(iv_box,e->w[i],FALSE,FALSE,4);
-                       gtk_widget_show(e->w[i]);
-                       gtk_option_menu_set_history(GTK_OPTION_MENU(e->w[i]),k);
-               }
-               break;
-       case SND_MIXER_ETYPE_MUX2:
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               e->w[0]=gtk_option_menu_new();
-               menu=gtk_menu_new();
-               k=0;
-               for( j=0 ; j<e->mux_n; j++ ) {
-                       if( strcmp(e->mux[j].name,e->e.data.mux2.output.name)==0 &&
-                               e->mux[j].index == e->e.data.mux2.output.index &&
-                               e->mux[j].type == e->e.data.mux2.output.type ) k=j;
-                       item=gtk_menu_item_new_with_label(e->mux[j].name);
-                       gtk_object_set_data(GTK_OBJECT(item),"no",(gpointer)j);
-                       gtk_signal_connect(GTK_OBJECT(item),"activate",
-                                                          GTK_SIGNAL_FUNC(mux2_callback),(gpointer)e);
-                       gtk_menu_append(GTK_MENU(menu),item);
-                       gtk_widget_show(item);
-               }
-               gtk_option_menu_set_menu(GTK_OPTION_MENU(e->w[0]),menu);
-               gtk_box_pack_start(iv_box,e->w[0],FALSE,FALSE,4);
-               gtk_widget_show(e->w[0]);
-               gtk_option_menu_set_history(GTK_OPTION_MENU(e->w[0]),k);
-               break;
-       case SND_MIXER_ETYPE_3D_EFFECT1:
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(10*sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               if( e->adj == NULL ) {
-                       e->adj=(GtkAdjustment **)g_malloc(8*sizeof(GtkAdjustment *));
-               }
-               if( e->adj==NULL ) {
-                       printf(nomem_msg);
-                       return -1;
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_SW ) {
-                       ih_box=gtk_hbox_new(FALSE,2);
-                       gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0);
-                       e->w[0]=gtk_toggle_button_new();
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[0],FALSE,FALSE,4);
-                       gtk_widget_set_usize(e->w[0],10,10);
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(e->w[0])
-                                                                               ,e->e.data.teffect1.sw);
-                       gtk_widget_show(e->w[0]);
-                       gtk_signal_connect(GTK_OBJECT(e->w[0]),"toggled",
-                                                          GTK_SIGNAL_FUNC(sw_3d_callback),(gpointer)e);
-                       c_l=gtk_label_new(_("Enable"));
-                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                       gtk_widget_show(c_l);
-                       gtk_widget_show(ih_box);
-               } else {
-                       e->w[0]=NULL;
-               }
-               if( e->info.data.teffect1.effect & SND_MIXER_EFF1_MONO_SW ) {
-                       ih_box=gtk_hbox_new(FALSE,2);
-                       gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0);
-                       e->w[1]=gtk_toggle_button_new();
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[1],FALSE,FALSE,4);
-                       gtk_widget_set_usize(e->w[1],10,10);
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(e->w[1])
-                                                                               ,e->e.data.teffect1.mono_sw);
-                       gtk_widget_show(e->w[1]);
-                       gtk_signal_connect(GTK_OBJECT(e->w[1]),"toggled",
-                                                          GTK_SIGNAL_FUNC(sw_3d_callback),(gpointer)e);
-                       c_l=gtk_label_new(_("MONO"));
-                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                       gtk_widget_show(c_l);
-                       gtk_widget_show(ih_box);
-               } else {
-                       e->w[1]=NULL;
-               }
-               MIX_3D_VOL(0,wide,min_wide,max_wide,SND_MIXER_EFF1_WIDE);
-               MIX_3D_VOL(1,volume,min_volume,max_volume,SND_MIXER_EFF1_VOLUME);
-               MIX_3D_VOL(2,center,min_center,max_center,SND_MIXER_EFF1_CENTER);
-               MIX_3D_VOL(3,space,min_space,max_space,SND_MIXER_EFF1_SPACE);
-               MIX_3D_VOL(4,depth,min_depth,max_depth,SND_MIXER_EFF1_DEPTH);
-               MIX_3D_VOL(5,delay,min_delay,max_delay,SND_MIXER_EFF1_DELAY);
-               MIX_3D_VOL(6,feedback,min_feedback,max_feedback,SND_MIXER_EFF1_FEEDBACK);
-               MIX_3D_VOL(7,depth_rear,min_depth_rear,max_depth_rear,SND_MIXER_EFF1_DEPTH_REAR);
-               break;
-       case SND_MIXER_ETYPE_TONE_CONTROL1:
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(3*sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               if( e->adj == NULL ) {
-                       e->adj=(GtkAdjustment **)g_malloc(2*sizeof(GtkAdjustment *));
-               }
-               if( e->adj==NULL ) {
-                       printf(nomem_msg);
-                       return -1;
-               }
-               e->e.data.tc1.tc=e->info.data.tc1.tc;
-               snd_mixer_element_read(cards[e->card].mixer[e->mdev].handle,&e->e);
-               if( e->info.data.tc1.tc &
-                       (SND_MIXER_TC1_BASS | SND_MIXER_TC1_TREBLE ) ) {
-                       gtk_box_pack_start(iv_box,ih_box,TRUE,TRUE,0);
-                       MIX_TONE_VOL(0,bass,min_bass,max_bass,SND_MIXER_TC1_BASS);
-                       MIX_TONE_VOL(1,treble,min_treble,max_treble,SND_MIXER_TC1_TREBLE);
-               }
-               if( e->info.data.tc1.tc & SND_MIXER_TC1_SW ) {
-                       if( e->info.data.tc1.tc &
-                               (SND_MIXER_TC1_BASS | SND_MIXER_TC1_TREBLE ) )
-                               ih_box=gtk_hbox_new(FALSE,2);
-                       gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,0);
-                       e->w[0]=gtk_toggle_button_new();
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[0],FALSE,FALSE,4);
-                       gtk_widget_set_usize(e->w[0],10,10);
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(e->w[0])
-                                                                               ,e->e.data.tc1.sw);
-                       gtk_widget_show(e->w[0]);
-                       gtk_signal_connect(GTK_OBJECT(e->w[0]),"toggled",
-                                                          GTK_SIGNAL_FUNC(sw_tone_callback),(gpointer)e);
-                       c_l=gtk_label_new(_("Enable"));
-                       gtk_box_pack_start(GTK_BOX(ih_box),c_l,FALSE,FALSE,0);
-                       gtk_widget_show(c_l);
-                       gtk_widget_show(ih_box);
-               } else {
-                       e->w[0]=NULL;
-               }
-               break;
-       case SND_MIXER_ETYPE_PAN_CONTROL1:
-               if( e->w == NULL ) {
-                       e->w = (GtkWidget **)g_malloc(e->e.data.pc1.pan*4*
-                                                                                 sizeof(GtkWidget *));
-               }
-               if( e->w == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               if( e->adj == NULL ) {
-                       e->adj=(GtkAdjustment **)g_malloc(e->e.data.pc1.pan*
-                                                                                         sizeof(GtkAdjustment *));
-               }
-               if( e->adj==NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       return -1;
-               }
-               for( i=0 ; i<e->e.data.pc1.pan ; i++ ) {
-                       j=i*4;
-                       e->adj[i]=(GtkAdjustment *)gtk_adjustment_new(
-                                                               (gfloat)e->e.data.pc1.ppan[i],
-                                                               (gfloat)e->info.data.pc1.prange[i].min-0.5,
-                                                               (gfloat)e->info.data.pc1.prange[i].max+1.5,
-                                                               1.0,4.0,1.0);
-                       gtk_signal_connect(GTK_OBJECT(e->adj[i]),"value_changed",
-                                                  GTK_SIGNAL_FUNC(pc1_callback),(gpointer)e);
-                       e->w[j]=gtk_hscale_new(GTK_ADJUSTMENT(e->adj[i]));
-                       gtk_scale_set_draw_value(GTK_SCALE(e->w[j]),FALSE);
-                       gtk_box_pack_start(iv_box,e->w[j],FALSE,FALSE,4);
-                       gtk_widget_show(e->w[j]);
-
-                       gtk_box_pack_start(iv_box,ih_box,FALSE,FALSE,4);
-                       j++;
-                       e->w[j]=gtk_button_new_with_label(pc1_ptc1[e->info.data.pc1.prange[i].pan_type]);
-                       gtk_signal_connect(GTK_OBJECT(e->w[j]),"clicked",
-                                                  GTK_SIGNAL_FUNC(pc1_ss_callback),(gpointer)e);
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[j],FALSE,FALSE,2);
-                       gtk_widget_show(e->w[j++]);
-                       e->w[j]=gtk_button_new_with_label("C");
-                       gtk_signal_connect(GTK_OBJECT(e->w[j]),"clicked",
-                                                          GTK_SIGNAL_FUNC(pc1_ss_callback),(gpointer)e);
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[j],FALSE,FALSE,2);
-                       gtk_widget_show(e->w[j++]);
-                       e->w[j]=gtk_button_new_with_label(pc1_ptc2[e->info.data.pc1.prange[i].pan_type]);
-                       gtk_signal_connect(GTK_OBJECT(e->w[j]),"clicked",
-                                                          GTK_SIGNAL_FUNC(pc1_ss_callback),(gpointer)e);
-                       gtk_box_pack_start(GTK_BOX(ih_box),e->w[j],FALSE,FALSE,2);
-                       gtk_widget_show(e->w[j]);
-               }
-               break;
-       }
-       gtk_widget_show(ih_box);
-       return 0;
-}
diff --git a/gamix/probe.c b/gamix/probe.c
deleted file mode 100644 (file)
index 86c72a9..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-
-#include "gamix.h"
-
-int card_num,mdev_num;
-s_card_t *cards;
-
-static int search_es(snd_mixer_eid_t *,snd_mixer_elements_t *);
-static gint ab_chk( s_mixer_t *,snd_mixer_eid_t * );
-/*
-static int s_element_build(snd_mixer_t *,s_element_t *,snd_mixer_elements_t *,
-                                                  snd_mixer_eid_t ,int , int);
-*/
-static gint mk_mux_lst(snd_mixer_t *,snd_mixer_elements_t *,snd_mixer_element_info_t *,snd_mixer_eid_t **);
-
-gint probe_mixer( void ) {
-       int err,i,j,k,l,m;
-       snd_ctl_t *p_handle;
-       snd_mixer_t *m_handle;
-       snd_mixer_groups_t groups;
-       snd_mixer_elements_t es;
-       s_mixer_t *mixer;
-       s_group_t *group;
-       s_eelements_t *ee;
-       s_obj_t *obj;
-       int *es_nums;
-
-       card_num=snd_cards();
-       cards=(s_card_t *)g_malloc(sizeof(s_card_t)*card_num);
-       if( cards == NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       mdev_num=0;
-       for( i = 0 ; i<card_num ; i++ ) {
-               if((err=snd_ctl_open(&p_handle,i))<0 ) {
-                       fprintf(stderr,_("open failed: %s\n"),snd_strerror(err));
-                       return -1;
-               }
-               err=snd_ctl_hw_info(p_handle, &cards[i].info);
-               if(err<0) {
-                       fprintf(stderr,_("hw info failed: %s\n"),snd_strerror(err));
-                       snd_ctl_close(p_handle);
-                       return -1;
-               }
-               cards[i].mixer=(s_mixer_t *)g_malloc0(sizeof(s_mixer_t)*
-                                                                                  cards[i].info.mixerdevs);
-               if( cards[i].mixer == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       snd_ctl_close(p_handle);
-                       return -1;
-               }
-               mdev_num+=cards[i].info.mixerdevs;
-               for( j=0 ; j<cards[i].info.mixerdevs ; j++) {
-                       mixer=&cards[i].mixer[j];
-                       //mixer->handle=NULL;
-                       //mixer->obj=NULL;
-                       mixer->c_dev=i;
-                       mixer->m_dev=j;
-                       mixer->o_nums=0;
-                       mixer->enable=TRUE;
-                       mixer->enabled=FALSE;
-                       mixer->p_e=TRUE;
-                       mixer->p_f=TRUE;
-                       if((err=snd_mixer_open(&m_handle,i,j))<0 ) {
-                               fprintf(stderr,_("mixer %d/%d open error: %s\n"),i,j,
-                                               snd_strerror(err));
-                               snd_ctl_close(p_handle);
-                               return -1;
-                       }
-                       if((err=snd_ctl_mixer_info(p_handle,j,&mixer->info))<0) {
-                               fprintf(stderr,_("Mixer info failed: %s\n"),snd_strerror(err));
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       bzero(&groups,sizeof(snd_mixer_groups_t));
-                       if((err=snd_mixer_groups(m_handle,&groups))<0 ) {
-                               fprintf(stderr,_("Mixer %d/%d groups error: %s\n"),i,i,
-                                               snd_strerror(err));
-                               snd_mixer_close(m_handle);
-                               snd_ctl_close(p_handle);
-                               return -1;
-                       }
-                       groups.pgroups = (snd_mixer_gid_t *)g_malloc(groups.groups_over
-                                                                                                       *sizeof(snd_mixer_eid_t));
-                       if( groups.pgroups == NULL && groups.groups_over) {
-                               fprintf(stderr,nomem_msg);
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                       }
-                       groups.groups_size =    groups.groups_over;
-                       groups.groups_over =    groups.groups = 0;
-                       if((err=snd_mixer_groups(m_handle,&groups))<0 ) {
-                               fprintf(stderr,_("Mixer %d/%d groups (2) error: %s\n"),
-                                               i,j,snd_strerror(err));
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       bzero(&es, sizeof(snd_mixer_elements_t));
-                       if( (err=snd_mixer_elements(m_handle,&es))<0 ) {
-                               fprintf(stderr,_("mixer elements read failed: %s"),
-                                               snd_strerror(err));
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       es.pelements = (snd_mixer_eid_t *)g_malloc(
-                                                               es.elements_over * sizeof(snd_mixer_eid_t));
-                       if( es.pelements == NULL && es.elements_over) {
-                               fprintf(stderr,nomem_msg);
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       es.elements_size = es.elements_over;
-                       es.elements_over = es.elements = 0;
-                       if( (err=snd_mixer_elements(m_handle,&es))<0 ) {
-                               fprintf(stderr,_("mixer elements read failed(2): %s"),
-                                               snd_strerror(err));
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       es_nums = (int *)g_malloc(es.elements * sizeof(int));
-                       if( es_nums == NULL && es.elements) {
-                               fprintf(stderr,nomem_msg);
-                               snd_ctl_close(p_handle);
-                               snd_mixer_close(m_handle);
-                               return -1;
-                       }
-                       bzero(es_nums,es.elements * sizeof(int));
-                       //printf("Card %d mixer %d\n",i,j);
-                       mixer->o_nums=groups.groups;
-                       obj=NULL;
-                       for( k=0 ; k<groups.groups ; k++ ) {
-                               if( obj ) {
-                                       obj->next=(s_obj_t *)malloc(sizeof(s_obj_t));
-                                       if( obj->next == NULL ) {
-                                               fprintf(stderr,nomem_msg);
-                                               snd_ctl_close(p_handle);
-                                               snd_mixer_close(m_handle);
-                                               return -1;
-                                       }
-                                       obj=obj->next;
-                               } else {
-                                       mixer->obj=(s_obj_t *)malloc(sizeof(s_obj_t));
-                                       if( mixer->obj == NULL ) {
-                                               fprintf(stderr,nomem_msg);
-                                               snd_ctl_close(p_handle);
-                                               snd_mixer_close(m_handle);
-                                               return -1;
-                                       }
-                                       obj=mixer->obj;
-
-                               }
-                               bzero(obj,sizeof(s_obj_t));
-                               obj->enable=TRUE;
-                               obj->enabled=FALSE;
-                               obj->g=(s_group_t *)malloc(sizeof(s_group_t));
-                               if( obj->g == NULL ) {
-                                       fprintf(stderr,nomem_msg);
-                                       snd_ctl_close(p_handle);
-                                       snd_mixer_close(m_handle);
-                                       return -1;
-                               }
-                               group=obj->g;
-                               bzero(group,sizeof(s_group_t));
-                               group->g.gid=groups.pgroups[k];
-                               if((err=snd_mixer_group_read(m_handle,&group->g)) <0 ) {
-                                       fprintf(stderr,_("Mixer %d/%d group error: %s\n"),i,j,
-                                                       snd_strerror(err));
-                                       snd_ctl_close(p_handle);
-                                       snd_mixer_close(m_handle);
-                                       return -1;
-                               }
-                               group->g.pelements = (snd_mixer_eid_t *)g_malloc(
-                                                       group->g.elements_over*sizeof(snd_mixer_eid_t));
-                               if( group->g.pelements == NULL && group->g.elements_over) {
-                                       snd_ctl_close(p_handle);
-                                       fprintf(stderr,nomem_msg);
-                                       snd_mixer_close(m_handle);
-                                       return -1;
-                               }
-                               group->g.elements_size = group->g.elements_over;
-                               group->g.elements = group->g.elements_over = 0;
-                               if((err=snd_mixer_group_read(m_handle,&group->g)) <0 ) {
-                                       fprintf(stderr,_("Mixer %d/%d group error (2): %s\n"),i,j,
-                                                       snd_strerror(err));
-                                       snd_ctl_close(p_handle);
-                                       snd_mixer_close(m_handle);
-                                       return -1;
-                               }
-                               group->e=(s_element_t *)g_malloc(group->g.elements_size*
-                                                                                          sizeof(s_element_t));
-                               if( group->e == NULL && group->g.elements_size) {
-                                       fprintf(stderr,nomem_msg);
-                                       snd_ctl_close(p_handle);
-                                       snd_mixer_close(m_handle);
-                                       return -1;
-                               }
-                               for( l=0 ; l<group->g.elements ; l++ ) {
-                                       m=search_es( &group->g.pelements[l],&es );
-                                       if( m>-1 ) {
-                                               if( es_nums[m] ) group->g.pelements[l].type=0;
-                                               es_nums[m]++;
-                                       }
-                                       err=s_element_build(m_handle,&group->e[l],&es,
-                                                                          group->g.pelements[l],i,j);
-                                       if( err<0 ) {
-                                               snd_ctl_close(p_handle);
-                                               snd_mixer_close(m_handle);
-                                               return -1;
-                                       }
-                               }
-                       }
-                       for( k=0 ; k<es.elements ; k++ ) {
-                               if( es_nums[k] > 1 ) {
-                                       //for( l=0 ; l<groups.groups ; l++ ) {
-                                       l=0;
-                                       for( obj=mixer->obj ; obj != NULL && l==0 ;
-                                                obj=obj->next ) {
-                                               group=obj->g;
-                                               for( m=0 ; m<group->g.elements; m++ ) {
-                                                       if( strcmp( es.pelements[k].name,group->g.pelements[m].name)==0 &&
-                                                               es.pelements[k].index == group->g.pelements[m].index &&
-                                                               es.pelements[k].type == group->g.pelements[m].type ) {
-                                                               group->e[m].e.eid.type=0;
-                                                               group->e[m].info.eid.type=0;
-                                                               if( group->e[m].mux ) free(group->e[m].mux);
-                                                               l=1;
-                                                               break;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-                       /*
-                         delete null object?
-                       */
-                       l=0;
-                       for( k=0 ; k<es.elements ; k++ ) {
-                               if( es_nums[k] == 0 || es_nums[k]>1 ) {
-                                       if( ab_chk(mixer,&es.pelements[k]) ) {
-                                               l++;
-                                       } else  es_nums[k]=1;
-                               }
-                       }
-                       mixer->o_nums+=l;
-                       if( l>0 ) {
-                               obj=mixer->obj;
-                               if( obj ) while( obj->next ) obj=obj->next;
-                               k=0;
-                               while(l>0) {
-                                       l--;
-                                       while( es_nums[k]==1 ) k++;
-                                       if( obj ) {
-                                               obj->next=(s_obj_t *)g_malloc0(sizeof(s_obj_t));
-                                               if( obj == NULL ) {
-                                                       fprintf(stderr,nomem_msg);
-                                                       snd_ctl_close(p_handle);
-                                                       snd_mixer_close(m_handle);
-                                                       return -1;
-                                               }
-                                               obj=obj->next;
-                                       } else {
-                                               obj=(s_obj_t *)g_malloc0(sizeof(s_obj_t));
-                                               if( obj == NULL ) {
-                                                       fprintf(stderr,nomem_msg);
-                                                       snd_ctl_close(p_handle);
-                                                       snd_mixer_close(m_handle);
-                                                       return -1;
-                                               }
-                                               mixer->obj=obj;
-                                       }
-                                       bzero(obj,sizeof(s_obj_t));
-                                       obj->e=(s_eelements_t *)malloc(sizeof(s_eelements_t));
-                                       if( obj->e == NULL ) {
-                                               fprintf(stderr,nomem_msg);
-                                               snd_ctl_close(p_handle);
-                                               snd_mixer_close(m_handle);
-                                               return -1;
-                                       }
-                                       ee=obj->e;
-                                       bzero(ee,sizeof(s_eelements_t));
-
-                                       err=s_element_build(m_handle,&ee->e,&es,es.pelements[k],
-                                                                               i,j);
-                                       obj->enable=TRUE;
-                                       obj->enabled=FALSE;
-                                       k++;
-                               }
-                       }
-                       g_free(groups.pgroups);
-                       g_free(es.pelements);
-                       g_free(es_nums);
-                       snd_mixer_close(m_handle);
-               }
-               snd_ctl_close(p_handle);
-       }
-       return 0;
-}
-
-static int search_es(snd_mixer_eid_t *eid,snd_mixer_elements_t *es) {
-       int i;
-       for( i=0 ; i<es->elements ; i++ ) {
-               if( strcmp( es->pelements[i].name , eid->name ) == 0 &&
-                       es->pelements[i].index == eid->index &&
-                       es->pelements[i].type == eid->type ) return i;
-       }
-       return -1;
-}
-
-gboolean is_etype(int etype ) {
-       switch( etype ) {
-       case SND_MIXER_ETYPE_SWITCH1:
-       case SND_MIXER_ETYPE_SWITCH2:
-       case SND_MIXER_ETYPE_SWITCH3:
-       case SND_MIXER_ETYPE_MUX1:
-       case SND_MIXER_ETYPE_MUX2:
-       case SND_MIXER_ETYPE_ACCU3:
-       case SND_MIXER_ETYPE_VOLUME1:
-       case SND_MIXER_ETYPE_VOLUME2:
-       case SND_MIXER_ETYPE_3D_EFFECT1:
-       case SND_MIXER_ETYPE_TONE_CONTROL1:
-       case SND_MIXER_ETYPE_PAN_CONTROL1:
-               return TRUE;
-               break;
-       }
-       return FALSE;
-}
-
-static gint ab_chk( s_mixer_t *mixer,snd_mixer_eid_t *eid ) {
-       if( !is_etype(eid->type) ) return FALSE;
-       return TRUE;
-}
-
-int s_element_build(snd_mixer_t *handle,s_element_t *e,
-                                                  snd_mixer_elements_t *es, snd_mixer_eid_t eid,
-                                                  int c,int m) {
-       int err;
-       bzero(&e->info,sizeof(snd_mixer_element_info_t));
-       bzero(&e->e,sizeof(snd_mixer_element_t));
-       e->e.eid = eid;
-       e->info.eid = eid;
-       if( eid.type != SND_MIXER_ETYPE_SWITCH1 &&
-               eid.type != SND_MIXER_ETYPE_SWITCH2 &&
-               eid.type > 0 ) {
-               err=snd_mixer_element_info_build(handle,&e->info);
-               if( err<0 ) {
-                       preid(eid);
-                       fprintf(stderr,_("Mixer element info build failed: %s\n"),
-                                       snd_strerror(err));
-               }
-       }
-       e->w=NULL;
-       e->adj=NULL;
-       e->card=c;
-       e->mdev=m;
-       e->mux_n=0;
-       e->mux=NULL;
-       if( !is_etype(e->e.eid.type) ) return 0;
-
-       err=snd_mixer_element_build(handle,&e->e);
-       if( err<0 ) {
-               preid(eid);
-               fprintf(stderr,_("Mixer element build failed: %s\n"),snd_strerror(err));
-       }
-       if( e->info.eid.type == SND_MIXER_ETYPE_MUX1 || 
-               e->info.eid.type == SND_MIXER_ETYPE_MUX2 ) {
-               e->mux_n=mk_mux_lst(handle,es,&e->info,&e->mux);
-               if( e->mux_n < 0 ) {
-                       snd_mixer_close(handle);
-                       return -1;
-               }
-       }
-       return 0;
-}
-
-static gint mk_mux_lst(snd_mixer_t *handle,snd_mixer_elements_t *es,
-                                               snd_mixer_element_info_t *info,
-                                               snd_mixer_eid_t **eids) {
-       int i,j,err,n=0;
-       snd_mixer_routes_t rt;
-       int *ee_lst;
-       snd_mixer_eid_t *eid_l;
-
-       ee_lst=(int *)g_malloc(es->elements*sizeof(int));
-       if( ee_lst == NULL ) {
-               fprintf(stderr,nomem_msg);
-               return -1;
-       }
-       for( i=0 ; i<es->elements ; i++ ) {
-               bzero(&rt,sizeof(rt));
-               rt.eid=es->pelements[i];
-               if(( err=snd_mixer_routes(handle,&rt))<0 ) {
-                       fprintf(stderr,_("Mixer route error: %s\n"),snd_strerror(err));
-                       g_free(ee_lst);
-                       return -1;
-               }
-               if (!rt.routes_over) continue;
-               rt.proutes=(snd_mixer_eid_t *)g_malloc(rt.routes_over *
-                                                                                               sizeof(snd_mixer_eid_t));
-               if( rt.proutes == NULL ) {
-                       fprintf(stderr,nomem_msg);
-                       g_free(ee_lst);
-                       return -1;
-               }
-               rt.routes_size=rt.routes_over;
-               rt.routes=rt.routes_over=0;
-               if( (err=snd_mixer_routes(handle,&rt)) < 0 ) {
-                       fprintf(stderr,_("Mixer route (2) error: %s\n"),snd_strerror(err));
-                       g_free(ee_lst);
-                       return -1;
-               }
-               for( j=0 ; j<rt.routes ; j++ ) {
-                       if( strcmp(rt.proutes[j].name,info->eid.name) == 0 &&
-                               rt.proutes[j].index == info->eid.index &&
-                               rt.proutes[j].type == info->eid.type ) {
-                               ee_lst[n++]=i;
-                               break;
-                       }
-               }
-               g_free(rt.proutes);
-       }
-       if( n == 0 ) {
-               *eids = NULL;
-               return 0;
-       }
-       eid_l = *eids = (snd_mixer_eid_t *)g_malloc(n*sizeof(snd_mixer_eid_t));
-       if( *eids == NULL ) {
-               fprintf(stderr,nomem_msg);
-               g_free(ee_lst);
-               return -1;
-       }
-       for( i=0 ; i<n ; i++ ) {
-               eid_l[i]=es->pelements[ee_lst[i]];
-       }
-       g_free(ee_lst);
-       return n;
-}
diff --git a/xamixer2/AUTHORS b/xamixer2/AUTHORS
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/COPYING b/xamixer2/COPYING
deleted file mode 100644 (file)
index 9392a19..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-GNU GENERAL PUBLIC LICENSE
-
-Version 2, June 1991 
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-Preamble
-
-The licenses for most software are designed to take away your freedom to
-share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free software--to
-make sure the software is free for all its users. This General Public
-License applies to most of the Free Software Foundation's software and to
-any other program whose authors commit to using it. (Some other
-Free Software Foundation software is covered by the GNU Library General
-Public License instead.) You can apply it to your programs, too. 
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the
-freedom to distribute copies of free software (and charge for this service
-if you wish), that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free programs;
-and that you know you can do these things. 
-
-To protect your rights, we need to make restrictions that forbid anyone to
-deny you these rights or to ask you to surrender the rights. These
-restrictions translate to certain responsibilities for you if you distribute
-copies of the software, or if you modify it. 
-
-For example, if you distribute copies of such a program, whether gratis or
-for a fee, you must give the recipients all the rights that you have. You
-must make sure that they, too, receive or can get the source code. And you
-must show them these terms so they know their rights. 
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy,
-distribute and/or modify the software. 
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software.
-If the software is modified by someone else and passed on, we want its
-recipients to know that what they have is not the original, so that any
-problems introduced by others will not reflect on the original authors'
-reputations. 
-
-Finally, any free program is threatened constantly by software patents. We
-wish to avoid the danger that redistributors of a free program will
-individually obtain patent licenses, in effect making the program
-proprietary. To prevent this, we have made it clear that any patent must be
-licensed for everyone's free use or not licensed at all. 
-
-The precise terms and conditions for copying, distribution and modification
-follow. 
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under
-the terms of this General Public License. The "Program", below, refers to
-any such program or work, and a "work based on the Program" means
-either the Program or any derivative work under copyright law: that is to
-say, a work containing the Program or a portion of it, either verbatim
-or with modifications and/or translated into another language. (Hereinafter,
-translation is included without limitation in the term
-"modification".) Each licensee is addressed as "you". 
-
-Activities other than copying, distribution and modification are not covered
-by this License; they are outside its scope. The act of running the
-Program is not restricted, and the output from the Program is covered only
-if its contents constitute a work based on the Program (independent
-of having been made by running the Program). Whether that is true depends on
-what the Program does. 
-
-1. You may copy and distribute verbatim copies of the Program's source code
-as you receive it, in any medium, provided that you conspicuously
-and appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-License and to the absence of any warranty; and give any other recipients of
-the Program a copy of this License along with the Program. 
-
-You may charge a fee for the physical act of transferring a copy, and you
-may at your option offer warranty protection in exchange for a fee. 
-
-2. You may modify your copy or copies of the Program or any portion of it,
-thus forming a work based on the Program, and copy and distribute
-such modifications or work under the terms of Section 1 above, provided that
-you also meet all of these conditions: 
-
-    a) You must cause the modified files to carry prominent notices stating
-that you changed the files and the date of any change. 
-
-    b) You must cause any work that you distribute or publish, that in whole
-or in part contains or is derived from the Program or any part
-    thereof, to be licensed as a whole at no charge to all third parties
-under the terms of this License. 
-
-    c) If the modified program normally reads commands interactively when
-run, you must cause it, when started running for such interactive
-    use in the most ordinary way, to print or display an announcement
-including an appropriate copyright notice and a notice that there is no
-    warranty (or else, saying that you provide a warranty) and that users
-may redistribute the program under these conditions, and telling the
-    user how to view a copy of this License. (Exception: if the Program
-itself is interactive but does not normally print such an announcement,
-    your work based on the Program is not required to print an
-announcement.) 
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be
-reasonably considered independent and separate works in themselves, then
-this License, and its terms, do not apply to those sections when you
-distribute them as separate works. But when you distribute the same sections
-as part of a whole which is a work based on the Program, the
-distribution of the whole must be on the terms of this License, whose
-permissions for other licensees extend to the entire whole, and thus to each
-and every part regardless of who wrote it. 
-
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise
-the
-right to control the distribution of derivative or collective works based on
-the Program. 
-
-In addition, mere aggregation of another work not based on the Program with
-the Program (or with a work based on the Program) on a volume
-of a storage or distribution medium does not bring the other work under the
-scope of this License. 
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following: 
-
-    a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1
-    and 2 above on a medium customarily used for software interchange; or, 
-
-    b) Accompany it with a written offer, valid for at least three years, to
-give any third party, for a charge no more than your cost of physically
-    performing source distribution, a complete machine-readable copy of the
-corresponding source code, to be distributed under the terms of
-    Sections 1 and 2 above on a medium customarily used for software
-interchange; or, 
-
-    c) Accompany it with the information you received as to the offer to
-distribute corresponding source code. (This alternative is allowed only
-    for noncommercial distribution and only if you received the program in
-object code or executable form with such an offer, in accord with
-    Subsection b above.) 
-
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code
-means all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation and
-installation of the executable. However, as a special exception, the source
-code distributed need not include anything that is normally distributed
-(in either source or binary form) with the major components (compiler,
-kernel, and so on) of the operating system on which the executable runs,
-unless that component itself accompanies the executable. 
-
-If distribution of executable or object code is made by offering access to
-copy from a designated place, then offering equivalent access to copy the
-source code from the same place counts as distribution of the source code,
-even though third parties are not compelled to copy the source along
-with the object code. 
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to
-copy, modify, sublicense or distribute the Program is void, and will
-automatically terminate your rights under this License. However, parties who
-have received copies, or rights, from you under this License will not have
-their licenses terminated so long as such parties remain in full
-compliance. 
-
-5. You are not required to accept this License, since you have not signed
-it. However, nothing else grants you permission to modify or distribute
-the Program or its derivative works. These actions are prohibited by law if
-you do not accept this License. Therefore, by modifying or distributing
-the Program (or any work based on the Program), you indicate your acceptance
-of this License to do so, and all its terms and conditions for
-copying, distributing or modifying the Program or works based on it. 
-
-6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these terms
-and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein. You are not responsible
-for enforcing compliance by third parties to this License. 
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from
-the conditions of this License. If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at
-all. For example, if a patent license would not permit royalty-free
-redistribution of the Program by all those who receive copies directly or
-indirectly through you, then the only way you could satisfy both it and
-this License would be to refrain entirely from distribution of the Program. 
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply
-and the section as a whole is intended to apply in other circumstances. 
-
-It is not the purpose of this section to induce you to infringe any patents
-or other property right claims or to contest validity of any such claims;
-this section has the sole purpose of protecting the integrity of the free
-software distribution system, which is implemented by public license
-practices. Many people have made generous contributions to the wide range of
-software distributed through that system in reliance on consistent
-application of that system; it is up to the author/donor to decide if he or
-she is willing to distribute software through any other system and a
-licensee cannot impose that choice. 
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License. 
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original
-copyright holder who places the Program under this License may add an
-explicit geographical distribution limitation excluding those countries, so
-that distribution is permitted only in or among countries not thus excluded.
-In such case, this License incorporates the limitation as if written in
-the body of this License. 
-
-9. The Free Software Foundation may publish revised and/or new versions of
-the General Public License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in detail
-to address new problems or concerns. 
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free
-Software Foundation. 
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to
-ask for permission. For software which is copyrighted by the Free Software
-Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals of
-preserving the free status of all derivatives of our free software and of
-promoting the sharing and reuse of software generally. 
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
-THE PROGRAM, TO THE
-EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING
-THE COPYRIGHT HOLDERS
-AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR
-IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-PROGRAM IS WITH YOU.
-SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
-SERVICING, REPAIR OR
-CORRECTION. 
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER,
-OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS
-PERMITTED ABOVE, BE LIABLE
-TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
-LOSS OF DATA OR DATA
-BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE PROGRAM
-TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS
-BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES. 
-
-END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/xamixer2/ChangeLog b/xamixer2/ChangeLog
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/INSTALL b/xamixer2/INSTALL
deleted file mode 100644 (file)
index b42a17a..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
-     CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
-     Use and save the results of the tests in FILE instead of
-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
-     debugging `configure'.
-
-`--help'
-     Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`--version'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
diff --git a/xamixer2/Makefile.am b/xamixer2/Makefile.am
deleted file mode 100644 (file)
index 5130041..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-bin_PROGRAMS = xamixer2
-xamixer2_SOURCES = main.h structs.h xamixer2.c xamixer2.h callbacks.c callbacks.h cinit.c cinit.h display.c display.h util.c util.h config.c config.h switches.c switches.h options.c options.h
-xamixer2_LDFLAGS = $(GTK_LIBS)
-sysconf_DATA = xamixer.conf
-EXTRA_DIST = README COPYING INSTALL AUTHORS NEWS TODO  xamixer.home xamixer.conf
diff --git a/xamixer2/NEWS b/xamixer2/NEWS
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/README b/xamixer2/README
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/TODO b/xamixer2/TODO
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/callbacks.c b/xamixer2/callbacks.c
deleted file mode 100644 (file)
index 917a661..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*****************************************************************************
-   callbacks.c - an Alsa based gtk mixer
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/
-
-/*****************************************************************************/
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Global Variables */
-
-extern GtkWidget *window;
-extern Card *card; /* And array of the cards */
-extern int cards; /* The number of cards in the system. */
-extern Config config; /* The system config */
-
-/* End Global Variables */
-/*****************************************************************************/
-
-void mixer_rebuild_cb(void *data)
-{
-
-/*     printf("A rebuild event happened.\n"); */
-/*     fflush(NULL); */
-
-       return;
-}
-
-void mixer_element_cb(void *data, int cmd, snd_mixer_eid_t *eid)
-{
-
-/*     printf("An element event happened.\n"); */
-/*     fflush(NULL); */
-
-       return;
-}
-
-void mixer_group_cb(void *data, int cmd, snd_mixer_gid_t *gid)
-{
-
-/*     printf("A group event happened.\n"); */
-/*     fflush(NULL); */
-
-       return;
-}
-
-void mixer_change_cb(gpointer data, gint source, GdkInputCondition condition)
-{
-       snd_mixer_callbacks_t callbacks;  
-
-       /* Set up the callback structure */
-       callbacks.private_data = data;
-       callbacks.rebuild = mixer_rebuild_cb;
-       callbacks.element = mixer_element_cb;
-       callbacks.group = mixer_group_cb;
-       bzero(callbacks.reserved, sizeof(void *) * 28);
-                       
-       
-       /* Actually deal with the event. */
-       snd_mixer_read(MIXER(data)->handle, &callbacks);
-
-       return;
-}
-
-void adjust_teffect1(GtkWidget *widget, CBData *data)
-{
-       int i, j, err;
-       Group *group;
-
-       i = data->element;
-       j = data->index;
-       group = data->group;
-
-       switch(j) {
-       case TYPE_SW:
-               if(GTK_TOGGLE_BUTTON(widget)->active)
-                       group->element[i].data.teffect1.sw = 1;
-               else
-                       group->element[i].data.teffect1.sw = 0;
-               break;
-       case TYPE_MONO_SW:
-               if(GTK_TOGGLE_BUTTON(widget)->active)
-                       group->element[i].data.teffect1.mono_sw = 1;
-               else
-                       group->element[i].data.teffect1.mono_sw = 0;
-               break;
-       case TYPE_WIDE:
-               group->element[i].data.teffect1.wide = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_VOLUME:
-               group->element[i].data.teffect1.volume = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_CENTER:
-               group->element[i].data.teffect1.center = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_SPACE:
-               group->element[i].data.teffect1.space = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_DEPTH:
-               group->element[i].data.teffect1.depth = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_DELAY:
-               group->element[i].data.teffect1.delay = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       case TYPE_FEEDBACK:
-               group->element[i].data.teffect1.feedback = 
-                       (int)GTK_ADJUSTMENT(widget)->value;
-               break;
-       default:
-               printf("Hit the default in adjust_teffect1 - this is bad.\n");
-               break;
-       }
-
-       /* Now let's write the new value to the card */
-       if ((err = snd_mixer_element_write(data->handle, &group->element[i])) < 0) {
-               printf("3D Effect Mixer element write error: %s\n", snd_strerror(err));
-       }
-
-       return;
-}
-void adjust_switch1(GtkWidget *widget, CBData *data)
-{
-       int i, j, err;
-
-       i = data->element;
-       j = data->index;
-
-       if(GTK_TOGGLE_BUTTON(widget)->active)
-               data->group->element[i].data.switch1.psw[j / sizeof(unsigned int)] |=
-                       (1 << (j % sizeof(unsigned int)));
-       else
-               data->group->element[i].data.switch1.psw[j / sizeof(unsigned int)] &=
-                       ~(1 << (j % sizeof(unsigned int)));
-
-       /* Now let's write the new value to the card */
-       if ((err = snd_mixer_element_write(data->handle, &data->group->element[i])) < 0) {
-               printf("Mixer element write error: %s\n", snd_strerror(err));
-       }
-                                                     
-       return;
-}
-
-void adjust_volume1(GtkWidget *widget, CBData *data)
-{
-       register int volume;
-       int i, j, err;
-
-       i = data->element;
-       j = data->index;
-
-       volume = (int)GTK_ADJUSTMENT(data->group->gtk[i].adjust[j])->value;
-       data->group->element[i].data.volume1.pvoices[j] = volume;
-
-       /* Now let's write the new value to the card */
-       if ((err = snd_mixer_element_write(data->handle, &data->group->element[i])) < 0) {
-               printf("Mixer element write error: %s\n", snd_strerror(err));
-       }
-
-
-       return;
-}
-
-
-void adjust_switch2(GtkWidget *widget, CBData *data)
-{
-       int i, j, err;
-
-       i = data->element;
-       j = data->index;
-
-       if(GTK_TOGGLE_BUTTON(data->group->gtk[i].interface[j])->active) {
-               data->group->element[i].data.switch2.sw = 1;
-       } else {
-               data->group->element[i].data.switch2.sw = 0;
-       }
-
-       /* Now let's write the new value to the card */
-       if ((err = snd_mixer_element_write(data->handle, &data->group->element[i])) < 0) {
-               printf("Mixer element write error: %s\n", snd_strerror(err));
-       }
-
-       return;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/xamixer2/callbacks.h b/xamixer2/callbacks.h
deleted file mode 100644 (file)
index 1575e80..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-
-
-/* End #include statements */
-/*****************************************************************************/
-
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-void adjust_volume1(GtkWidget *widget, CBData *data);
-void adjust_switch1(GtkWidget *widget, CBData *data);
-void adjust_switch2(GtkWidget *widget, CBData *data);
-void adjust_teffect1(GtkWidget *widget, CBData *data);
-void mixer_change_cb(gpointer data, gint source, GdkInputCondition condition);
-
-/* End function prototypes */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-
-
-/* End #define statements */
-/*****************************************************************************/
diff --git a/xamixer2/cinit.c b/xamixer2/cinit.c
deleted file mode 100644 (file)
index d8a1a63..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-/*****************************************************************************
-   cinit.c - routines to initialize the mixer devices
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/ 
-
-
-/*****************************************************************************/
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Global Variables */
-
-extern Card *card; /* And array of the cards */
-extern int cards; /* The number of cards in the system. */
-extern Config config; /* The system config */
-
-/* End Global Variables */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-int init_group(void *handle, Group *group);
-int init_element_route(void *handle, snd_mixer_routes_t *routes, snd_mixer_eid_t *eid);
-int misc_group_hack(Mixer *mixer, int index);
-
-/* End function prototypes */
-/*****************************************************************************/
-
-int init_cards()
-{
-       int i,j,k;
-       int err;
-       snd_ctl_t *handle;
-
-       cards = snd_cards();
-       card = calloc(cards, sizeof(Card));
-       for(i = 0; i < cards; i++) {
-               /* Open the hardware */
-               if((err = snd_ctl_open(&handle, i)) < 0) {
-                       printf("Unable to open card #%i!\nError: %s\n", i, snd_strerror(err));
-                       card[i].mixer = NULL;
-                       card[i].number = -1;
-                       continue;
-               } else {
-                       card[i].number = i;
-               }
-
-
-               /* Get the hardware info - the primary use of this is to find out how many
-                mixer devices the card has, but it's also useful to find out the human-readable
-               name of the card. */
-               if((err = snd_ctl_hw_info(handle, &card[i].hw_info)) < 0) {
-                       printf("Unable to get hardware information about card #%i!\nError: %s\n", 
-                              i, snd_strerror(err));
-                       printf("Trying to guess the appropriate values.\n");
-                       card[i].hw_info.mixerdevs = 1;
-               }
-
-               card[i].nmixers = card[i].hw_info.mixerdevs;
-
-               /* Allocate out the mixer array */
-               card[i].mixer = calloc(card[i].hw_info.mixerdevs, sizeof(Mixer));
-
-               for(j = 0; j < card[i].hw_info.mixerdevs; j++) {
-                       /* Open the mixer to begin with.  Isn't it funny how there's all this
-                          nice generalized code that can handle nearly any situation, and it
-                          will be necessary in only a very small percentage of the situations. 
-                          Oh well, I guess that that's what distinguishes us from windows. :-) */
-                       if((err = snd_mixer_open(&card[i].mixer[j].handle, i, j)) < 0) {
-                               printf("Unable to open mixer #%i on card #%i~\nError: %s\n",
-                                      j, i, snd_strerror(err));
-                               card[i].mixer[j].number = -1;
-                       } else {
-                               card[i].mixer[j].number = j;
-                       }
-
-                       /* Get the mixer info */
-                       if((err = snd_mixer_info(card[i].mixer[j].handle, &card[i].mixer[j].info)) < 0) {
-                               printf("Unable to get the info for mixer #%i on card %i!  Error: %s\n", j, i, snd_strerror(err));
-                               printf("There's not much more I can do on this mixer.");
-                               printf("  Shutting it down.\n");
-                               if((err = snd_mixer_close(card[i].mixer[j].handle)) < 0) {
-                                       printf("Oh well.  I couldn't even close the mixer.  I suspect that something is seriously wrong here.  Good luck.\n");
-                               }
-                               card[i].mixer[j].number = -1;
-                               continue;
-                       }
-
-                       bzero(&card[i].mixer[j].groups, sizeof(snd_mixer_groups_t));
-                       
-                       if ((err = snd_mixer_groups(card[i].mixer[j].handle, 
-                                                   &card[i].mixer[j].groups)) < 0) {
-                               printf("Mixer %i/%i groups error: %s", 
-                                     i, j, snd_strerror(err));
-                               return -1;
-                       }
-                       
-                       /* Allocate the space for the group array */
-                       card[i].mixer[j].groups.pgroups = (snd_mixer_gid_t *)
-                               calloc(card[i].mixer[j].groups.groups_over, 
-                                      sizeof(snd_mixer_gid_t));
-
-                       if (!card[i].mixer[j].groups.pgroups) {
-                               printf("No enough memory");
-                               return -1;
-                       }
-
-                       card[i].mixer[j].groups.groups_size = card[i].mixer[j].info.groups;
-                       card[i].mixer[j].groups.groups_over = card[i].mixer[j].groups.groups = 0;
-                       if ((err = snd_mixer_groups(card[i].mixer[j].handle, 
-                                                   &card[i].mixer[j].groups)) < 0) {
-                               printf("Mixer %i/%i groups (2) error: %s", 
-                                     i, j, snd_strerror(err));
-                               return -1;
-                       }
-
-                       /* Allocate the space for the array of the groups - this is more than
-                          just their gid's, it's got group-specific info in it */
-                       card[i].mixer[j].group = calloc(card[i].mixer[j].info.groups + 1,
-                                                       sizeof(Group));
-                       
-                       /* get the group structures filled out */
-                       for(k = 0; k < card[i].mixer[j].info.groups; k++) {
-                               card[i].mixer[j].group[k].group.gid = 
-                                       card[i].mixer[j].groups.pgroups[k];
-
-                               init_group(card[i].mixer[j].handle, 
-                                          &card[i].mixer[j].group[k]);
-                               
-                       }
-                       misc_group_hack(&card[i].mixer[j], k);
-
-               }
-
-               
-               if((err = snd_ctl_close(handle)) < 0) {
-                       printf("strange, there was an error closing card #%i!\nError: %s\n", 
-                              i, snd_strerror(err));
-                       printf("Oh well.\n");
-               }
-       }
-
-
-       /* return a successful execution. */
-       return 0;
-}
-
-int misc_group_hack(Mixer *mixer, int index)
-{
-       /* This code is largely copied straight from amixer. - God I love the GPL. */
-       snd_mixer_elements_t elements;
-       snd_mixer_eid_t *element;
-       snd_mixer_group_t *group;
-       int err, idx, gdx, idx2;
-       int flag;
-       int count=0; /* The count of elements not in any group */
-       snd_mixer_eid_t **array;
-
-       bzero(&elements, sizeof(elements));
-       if ((err = snd_mixer_elements(mixer->handle, &elements)) < 0) {
-               printf("Mixer elements error: %s", snd_strerror(err));
-               return -1;
-       }
-       elements.pelements = (snd_mixer_eid_t *)malloc(elements.elements_over * 
-                                                      sizeof(snd_mixer_eid_t));
-       if (!elements.pelements) {
-               printf("Not enough memory");
-               return -1;
-       }
-       elements.elements_size = elements.elements_over;
-       elements.elements_over = elements.elements = 0;
-       if ((err = snd_mixer_elements(mixer->handle, &elements)) < 0) {
-               printf("Mixer elements (2) error: %s", snd_strerror(err));
-               return -1;
-       }
-
-       /* Allocate the temporary array to hold the mixer ID structs */
-       array = malloc(elements.elements * sizeof(snd_mixer_eid_t *));
-       if(!array)
-               printf("Not enough memory.\n");
-
-
-       for (idx = 0; idx < elements.elements; idx++) {
-               element = &elements.pelements[idx];
-               flag = 0; /* The flag will be set if the same element name & type 
-                            is encountered */
-               for(gdx = 0; gdx < mixer->info.groups; gdx++) {
-                       group = &mixer->group[gdx].group;
-                       for(idx2 = 0; idx2 < group->elements; idx2++) {
-                               if(group && element)
-                                       if(group->pelements[idx2].type == element->type && 
-                                          is_same(group->pelements[idx2].name, element->name))
-                                               flag = 1;
-                       }
-               }
-               if(!flag) {
-                       /* We found a mixer element that's not in a group */
-                       array[count] = element;
-                       count++;
-                       if(count > elements.elements)
-                               printf("Houston, we have a problem.\n");
-               }
-       }
-
-       /* Set up the group member */
-       strncpy(mixer->group[index].group.gid.name, "Miscellaneous\0", 24);
-       mixer->group[index].group.gid.index = 0;
-       mixer->group[index].group.elements_size = 0; /* I hope that this doesn't matter */
-       mixer->group[index].group.elements = count;
-       mixer->group[index].group.elements_over = 0; /* I hope tha this doesn't matter */
-
-
-       mixer->group[index].group.pelements = (snd_mixer_eid_t *)malloc(count * 
-                                                                       sizeof(snd_mixer_eid_t));
-       mixer->group[index].routes = calloc(mixer->group[index].group.elements, 
-                                           sizeof(snd_mixer_routes_t));
-       mixer->group[index].element = calloc(mixer->group[index].group.elements, 
-                                     sizeof(snd_mixer_element_t));
-       mixer->group[index].einfo = calloc(mixer->group[index].group.elements, 
-                                   sizeof(snd_mixer_element_info_t));
-       mixer->group[index].gtk = calloc(mixer->group[index].group.elements, 
-                                 sizeof(Gtk_Channel));
-       /* Copy the snd_mixer_eid_t structures into the new group structure and init the routes */
-
-       for(idx = 0; idx < count; idx++) {
-               mixer->group[index].group.pelements[idx] = *array[idx];
-
-               mixer->group[index].einfo[idx].eid = mixer->group[index].group.pelements[idx];
-               if(snd_mixer_element_has_info(&mixer->group[index].group.pelements[idx]) == 1) 
-                       if((err = 
-                           snd_mixer_element_info_build(mixer->handle, 
-                                                        &mixer->group[index].einfo[idx])) < 0) {
-                               printf("Unable to get element information for element %s!  ",
-                                      mixer->group[index].group.pelements[idx].name);
-                               printf("Error: %s.\n", snd_strerror(err));
-                       }
-                                       
-               mixer->group[index].element[idx].eid = mixer->group[index].group.pelements[idx];
-               if(snd_mixer_element_has_control(&mixer->group[index].element[idx].eid))
-                       if((err = snd_mixer_element_build(mixer->handle, 
-                                                       &mixer->group[index].element[idx])) < 0) {
-                               printf("Unable to read element %s!  ",
-                                               mixer->group[index].group.pelements[idx].name);
-                               printf("Error: %s.\n", snd_strerror(err));
-                       }
-
-               init_element_route(mixer->handle, 
-                                  &mixer->group[index].routes[idx], 
-                                  &mixer->group[index].group.pelements[idx]);
-       }
-
-
-
-       
-
-       /* Increase the number of groups to include the new group */
-       mixer->info.groups++;
-
-       if(elements.pelements)
-               free(elements.pelements);
-       if(array)
-               free(array);
-
-       return 1;
-}
-
-
-int init_group(void *handle, Group *group)
-{
-       /* This is largely a mess copied from amixer that gets the group info in a very strange
-          way, I wish that I knew how it really worked.  Anyhow, once we get the group into
-          and the info about the elements in the group, we'll set up the element array. */
-       int idx, err;
-       
-       if((err = snd_mixer_group_read(handle, 
-                                      &group->group)) < 0) {
-               printf("Unable to get info for group %s!  ", group->group.gid.name);
-               printf("Error: %s\n", snd_strerror(err));
-               printf("elements_size = %i, elements_over=%i, elements=%i\n",
-                      group->group.elements_size, 
-                      group->group.elements_over,
-                      group->group.elements);
-               return 0;
-       }
-       group->group.pelements = (snd_mixer_eid_t *)calloc(group->group.elements_over, 
-                                                          sizeof(snd_mixer_eid_t));
-       if (!group->group.pelements) {
-               printf("Not enough memory...");
-               return 0;
-       }
-       group->group.elements_size = group->group.elements_over;
-       group->group.elements = group->group.elements_over = 0;
-       if ((err = snd_mixer_group_read(handle, &group->group)) < 0) {
-               printf("Unable to get second group info for group %s.  Error: %s\n", 
-                      group->group.gid.name, snd_strerror(err));
-               printf("elements_size = %i, elements_over=%i, elements=%i\n",
-                      group->group.elements_size, 
-                      group->group.elements_over,
-                      group->group.elements);
-               return 0;
-       }
-
-
-       /* Allocate out the arrays for the elements and element info */
-       group->element = calloc(group->group.elements, sizeof(snd_mixer_element_t));
-       group->einfo = calloc(group->group.elements, sizeof(snd_mixer_element_info_t));
-       group->routes = calloc(group->group.elements, sizeof(snd_mixer_routes_t));
-       group->gtk = calloc(group->group.elements, sizeof(Gtk_Channel));
-
-       /* Now go through and get that info */
-       for (idx = 0; idx < group->group.elements; idx++) {
-               group->einfo[idx].eid = group->group.pelements[idx];
-               if(snd_mixer_element_has_info(&group->group.pelements[idx]) == 1) 
-                       if((err = snd_mixer_element_info_build(handle, &group->einfo[idx])) < 0) {
-                               printf("Unable to get element information for element %s!  ",
-                                      group->group.pelements[idx].name);
-                               printf("Error: %s.\n", snd_strerror(err));
-                       }
-                                       
-               group->element[idx].eid = group->group.pelements[idx];
-               if((err = snd_mixer_element_build(handle, &group->element[idx])) < 0) {
-                       printf("Unable to read element %s!  ",
-                              group->group.pelements[idx].name);
-                       printf("Error: %s.\n", snd_strerror(err));
-               }
-
-               init_element_route(handle, &group->routes[idx], &group->group.pelements[idx]);
-
-       }
-
-
-       return 1;
-}
-
-
-int init_element_route(void *handle, snd_mixer_routes_t *routes, snd_mixer_eid_t *eid)
-{
-       int err, idx;
-       /* Most of this code is taken straight from amixer as well. */
-       /* This just gets the routes for the mixer element and stores them. */
-
-       bzero(routes, sizeof(snd_mixer_routes_t));
-       routes->eid = *eid;
-       if ((err = snd_mixer_routes(handle, routes)) < 0) {
-               printf("Element %s route error: %s", eid->name, snd_strerror(err));
-               return -1;
-       }
-       if (!routes->routes_over)
-               return 0;
-       routes->proutes = (snd_mixer_eid_t *)malloc(routes->routes_over * 
-                                                   sizeof(snd_mixer_eid_t));
-       if (!routes->proutes) {
-               printf("No enough memory...");
-               return -1;
-       }
-       routes->routes_size = routes->routes_over;
-       routes->routes = routes->routes_over = 0;
-       if ((err = snd_mixer_routes(handle, routes)) < 0) {
-               printf("Element (2) %s route error: %s", eid->name, snd_strerror(err));
-               return -1;
-       }
-
-       return 1;
-}
-
diff --git a/xamixer2/cinit.h b/xamixer2/cinit.h
deleted file mode 100644 (file)
index 17f5fa9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-/* End #include statements */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-int init_cards();
-
-/* End function prototypes */
-/*****************************************************************************/
-
-
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-
-/* End #define statements */
-/*****************************************************************************/
-
-
-
diff --git a/xamixer2/config.c b/xamixer2/config.c
deleted file mode 100644 (file)
index 30b5412..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-/*****************************************************************************
-   config.c - parses the config file
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/
-
-/*****************************************************************************/
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define's */
-
-#define CHANNEL_SIZE 64
-#define LABEL_SIZE 1024
-
-/* End #define's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Global Variables */
-
-extern Card *card; /* And array of the cards */
-extern int cards; /* The number of cards in the system. */
-Config config; /* The global config */
-
-/* End Global Variables */
-/*****************************************************************************/
-
-int config_init()
-{
-       /* Initialize the values to some reasonable defaults */
-       config.flags &= 0;
-       config.labels = NULL;
-       config.xpm = NULL;
-       config.icon = NULL;
-       config.mute = "M";
-       config.unmute = NULL;
-       config.simul = "|-|";
-       config.unsimul = NULL;
-       config.rec = "Rec";
-       config.unrec = NULL;
-       config.scale = 100;
-       config.x_pos = -1;
-       config.y_pos = -1;
-       config.padding = 5;
-       config.cdisplay = NULL;
-
-       return 1;
-}
-
-int config_read(const char *file)
-{
-       char *home_dir, *home_env;
-       FILE *stream;
-       char line[1025], *chr;
-       int state = 0; /* 0 = general config; 1 = history */
-       unsigned int i = 0;
-       int linelen = 0;
-       char channel[CHANNEL_SIZE]; /* The name of the channel */
-       char label[LABEL_SIZE]; /* The label or xpm name */
-       int linenum = 0;
-
-       stream = fopen(file, "r");
-
-       /* If there is no initialized value */
-       if(stream == NULL)
-               return TRUE;
-  
-       while(fgets(line, 1024, stream)){
-               linenum++;
-               /* Get wrid of comments */
-               if(is_comment(line))
-                       continue;
-               strip_comment(line);
-    
-               /* Convert the line to upper  case so that matches aren't case 
-                  sensitive (if not in history)*/
-               linelen = strlen(line);
-
-               if(strstr(line, "Position")) {
-                       if(sscanf(line, "Position %i %i", &config.x_pos, &config.y_pos) < 2)
-                               config.x_pos = config.y_pos = -1;
-               }
-               else if(strstr(line, "ShowCardName"))
-                       config.flags |= CONFIG_SHOW_CARD_NAME;
-               else if(strstr(line, "ShowMixerNumber"))
-                       config.flags |= CONFIG_SHOW_MIXER_NUMBER;
-               else if(strstr(line, "ShowMixerName"))
-                       config.flags |= CONFIG_SHOW_MIXER_NAME;
-               else if(strstr(line, "IconXpm"))
-                       if(sscanf(line, "IconXpm %s", label) < 1)
-                               printf("Bad IconXpm entry at line %i.\n", linenum);
-                       else {
-                               config.icon = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.icon, label);
-                               config.flags |= CONFIG_ICON_XPM;
-                       }
-               else if(strstr(line, "IgnoreXpms"))
-                       config.flags &= ~CONFIG_USE_XPMS;
-               else if(strstr(line, "UseXpms"))
-                       config.flags |= CONFIG_USE_XPMS;
-               else if(strstr(line, "unMuteXpmLeft"))
-                       if(sscanf(line, "unMuteXpmLeft %s", label) < 1)
-                               printf("Bad unMuteXpmLeft entry at line %i.\n", linenum);
-                       else {
-                               config.unmute_l = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.unmute_l, label);
-                               config.flags |= CONFIG_UNMUTE_XPM_L;
-                       }
-               else if(strstr(line, "unMuteXpm"))
-                       if(sscanf(line, "unMuteXpm %s", label) < 1)
-                               printf("Bad unMuteXpm entry at line %i.\n", linenum);
-                       else {
-                               config.unmute = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.unmute, label);
-                               config.flags |= CONFIG_UNMUTE_XPM;
-                       }
-               else if(strstr(line, "unRecXpm"))
-                       if(sscanf(line, "unRecXpm %s", label) < 1)
-                               printf("Bad unRecXpm entry at line %i.\n", linenum);
-                       else {
-                               config.unrec = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.unrec, label);
-                               config.flags |= CONFIG_UNREC_XPM;
-                       }  
-               else if(strstr(line, "unSimulXpm"))
-                       if(sscanf(line, "unSimulXpm %s", label) < 1)
-                               printf("Bad unSimulXpm entry at line %i.\n", linenum);
-                       else {
-                               config.unsimul = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.unsimul, label);
-                               config.flags |= CONFIG_UNSIMUL_XPM;
-                       }      
-               else if(strstr(line, "MuteLabel"))
-                       if(sscanf(line, "MuteLabel %s", label) < 1)
-                               printf("Bad MuteLabel entry at line %i.\n", linenum);
-                       else {
-                               config.mute = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.mute, label);
-                               config.flags &= ~CONFIG_MUTE_XPM;
-                       }
-               else if(strstr(line, "SimulLabel"))
-                       if(sscanf(line, "SimulLabel %s", label) < 1)
-                               printf("Bad SimulLabel entry at line %i.\n", linenum);
-                       else {
-                               config.simul = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.simul, label);
-                               config.flags &= ~CONFIG_SIMUL_XPM;
-                       }
-               else if(strstr(line, "RecLabel"))
-                       if(sscanf(line, "RecLabel %s", label) < 1)
-                               printf("Bad RecLabel entry at line %i.\n", linenum);
-                       else {
-                               config.rec = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.rec, label);
-                               config.flags &= ~CONFIG_REC_XPM;
-                       }
-               else if(strstr(line, "MuteXpmLeft"))
-                       if(sscanf(line, "MuteXpmLeft %s", label) < 1)
-                               printf("Bad MuteXpmLeft entry at line %i.\n", linenum);
-                       else {
-                               config.mute_l = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.mute_l, label);
-                               config.flags |= CONFIG_MUTE_XPM_L;
-                       }
-               else if(strstr(line, "MuteXpm"))
-                       if(sscanf(line, "MuteXpm %s", label) < 1)
-                               printf("Bad MuteXpm entry at line %i.\n", linenum);
-                       else {
-                               config.mute = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.mute, label);
-                               config.flags |= CONFIG_MUTE_XPM;
-                       }
-               else if(strstr(line, "RecXpm"))
-                       if(sscanf(line, "RecXpm %s", label) < 1)
-                               printf("Bad RecXpm entry at line %i.\n", linenum);
-                       else {
-                               config.rec = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.rec, label);
-                               config.flags |= CONFIG_REC_XPM;
-                       }
-               else if(strstr(line, "SimulXpm"))
-                       if(sscanf(line, "SimulXpm %s", label) < 1)
-                               printf("Bad SimulXpm entry at line %i.\n", linenum);
-                       else {
-                               config.simul = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.simul, label);
-                               config.flags |= CONFIG_SIMUL_XPM;
-                       }
-               else if(strstr(line, "BackgroundXpm"))
-                       if(sscanf(line, "BackgroundXpm %s", label) < 1)
-                               printf("Bad BackgroundXpm entry at line %i.\n", linenum);
-                       else {
-                               config.background = calloc(strlen(label) + 1, sizeof(char));
-                               strcpy(config.background, label);
-                               config.flags |= CONFIG_BACKGROUND_XPM;
-                       }
-               else if(strstr(line, "Label")){
-                       if(get_label(line, "Label", channel, CHANNEL_SIZE, 
-                                    label, LABEL_SIZE, '[', ']')){
-                               config.labels = channel_label_append(config.labels, channel, label);
-                       }
-                       else
-                               printf("Bad Label entry found on line %i.\n", linenum);
-               }
-               else if(strstr(line, "Xpm")){
-                       if(get_label(line, "Xpm", channel, CHANNEL_SIZE, 
-                                    label, LABEL_SIZE, '[', ']')){
-                               config.xpm = channel_label_append(config.xpm, channel, label);
-                       }
-                       else
-                               printf("Bad Xpm entry found on line %i.\n", linenum);
-               }
-               else if(strstr(line, "ScaleSize"))
-                       if(sscanf(line, "ScaleSize %i", &i) == 1)
-                               config.scale = i;
-                       else
-                               printf("Bad ScaleSize entry at line %i.\n", linenum);
-               if(strstr(line, "ChannelPadding"))
-                       if(sscanf(line, "ChannelPadding %i", &i) == 1)
-                               config.padding = i;
-                       else
-                               printf("Bad ChannelPadding entry at line %i.\n", linenum);
-    
-    
-       } /* End of config loop */
-  
-       /* Close the file */
-       fclose(stream);
-
-       return TRUE;
-}
-
-
-int setup_pixmaps(GtkWidget *xpmparent)
-{
-       GtkStyle *style;
-       int fd;
-
-       if(!(config.flags & CONFIG_USE_XPMS)) {
-               config.mute = "M";
-               config.simul = "|-|";
-               config.rec = "Rec";
-               return;
-       }
-
-
-
-       if(config.flags & CONFIG_ICON_XPM){
-               fd = open(config.icon, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.icon_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.icon_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.icon);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.icon);
-                       config.flags &= ~CONFIG_ICON_XPM;
-                       config.icon_xpm = NULL;
-                       free(config.icon);
-                       config.icon = NULL;
-               }
-       }
-
-
-       if(config.flags & CONFIG_MUTE_XPM_L){
-               fd=open(config.mute_l, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.mute_xpm_l = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.mute_mask_l,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.mute_l);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.mute_l);
-                       config.flags &= ~CONFIG_MUTE_XPM_L;
-                       config.mute_xpm_l = NULL;
-                       free(config.mute_l);
-                       config.mute_l = NULL;
-               }
-       }
-  
-
-       if(config.flags & CONFIG_MUTE_XPM){
-               fd=open(config.mute, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.mute_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.mute_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.mute);
-                       if(!(config.flags & CONFIG_MUTE_XPM_L)) {
-                               config.mute_xpm_l = config.mute_xpm;
-                               config.mute_mask_l = config.mute_mask;
-                               config.flags |= CONFIG_MUTE_XPM_L;
-                       }
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.mute);
-                       config.flags &= ~CONFIG_MUTE_XPM;
-                       config.mute_xpm = NULL;
-                       free(config.mute);
-                       config.mute = "M";
-               }
-       }
-  
-
-
-       if(config.flags & CONFIG_UNMUTE_XPM_L) {
-               fd=open(config.unmute_l, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.unmute_xpm_l = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.unmute_mask_l,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.unmute_l);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.unmute_l);
-                       config.flags &= ~CONFIG_UNMUTE_XPM_L;
-                       free(config.unmute_l);
-                       config.unmute_l=NULL;
-               }
-       }
-
-  
-
-       if(config.flags & CONFIG_UNMUTE_XPM) {
-               fd=open(config.unmute, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.unmute_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.unmute_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.unmute);
-                       if(!(config.flags & CONFIG_UNMUTE_XPM_L)) {
-                               printf("Invoked!\n");
-                               config.unmute_xpm_l = config.unmute_xpm; 
-                               config.unmute_mask_l = config.unmute_mask;
-                               config.flags |= CONFIG_UNMUTE_XPM_L;
-                       }
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.unmute);
-                       config.flags &= ~CONFIG_UNMUTE_XPM;
-                       free(config.unmute);
-                       config.unmute=NULL;
-               }
-       }
-
-
-
-       if(config.flags & CONFIG_REC_XPM) {
-               fd=open(config.rec, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.rec_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.rec_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.rec);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.rec);
-                       config.flags &= ~CONFIG_REC_XPM;
-                       free(config.rec);
-                       config.rec = "Rec";
-               }
-       }
-
-       if(config.flags & CONFIG_UNREC_XPM) {
-               fd=open(config.unrec, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.unrec_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.unrec_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.unrec);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.unrec);
-                       config.flags &= ~CONFIG_UNREC_XPM;
-                       free(config.unrec);
-                       config.unrec=NULL;
-               }
-       }
-
-       if(config.flags & CONFIG_SIMUL_XPM) {
-               fd = open(config.simul, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.simul_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.simul_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.simul);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.simul);
-                       config.flags &= ~CONFIG_SIMUL_XPM;
-                       free(config.simul);
-                       config.simul="|-|";
-               }
-       }
-
-       if(config.flags & CONFIG_UNSIMUL_XPM) {
-               fd = open(config.unsimul, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.unsimul_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.unsimul_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.unsimul);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.unsimul);
-                       config.flags &= ~CONFIG_UNSIMUL_XPM;
-                       free(config.unsimul);
-                       config.unsimul=NULL;
-               }
-       }
-
-       if(config.flags & CONFIG_BACKGROUND_XPM) {
-               fd = open(config.background, O_RDONLY);
-               if(fd != -1) {
-                       close(fd);
-                       style = gtk_widget_get_style(xpmparent);
-                       config.background_xpm = 
-                               gdk_pixmap_create_from_xpm(xpmparent->window,
-                                                          &config.background_mask,
-                                                          &style->bg[GTK_STATE_NORMAL],
-                                                          config.background);
-               }
-               else {
-                       printf("Unable to open pixmap %s.\n", config.background);
-                       config.flags &= ~CONFIG_BACKGROUND_XPM;
-                       free(config.background);
-                       config.background=NULL;
-               }
-       }
-  
-       return TRUE;
-}
-
-
diff --git a/xamixer2/config.h b/xamixer2/config.h
deleted file mode 100644 (file)
index 5ded34f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-/* End #include statements */
-/*****************************************************************************/
-
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-int config_init();
-int config_read(const char *file);
-int setup_pixmaps(GtkWidget *xpmparent);
-
-/* End function prototypes */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-#define HOME_FILE ".xamixer"
-
-/* End #define statements */
-/*****************************************************************************/
diff --git a/xamixer2/configure.in b/xamixer2/configure.in
deleted file mode 100644 (file)
index ecc7766..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-AC_INIT(xamixer2.c)
-AM_INIT_AUTOMAKE(xamixer2,0.1.3)
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_HEADER_STDC
-AM_PATH_GTK(1.0.1)
-AM_PATH_ALSA(0.1.3)
-CFLAGS="$CFLAGS $GTK_CFLAGS $ALSA_FLAGS"
-LDFLAGS="$LDFLAGS $GTK_LIBS $ALSA_LIBS"
-
-AC_OUTPUT(Makefile)
diff --git a/xamixer2/display.c b/xamixer2/display.c
deleted file mode 100644 (file)
index afbee9e..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-/*****************************************************************************
-   xamixer.c - an Alsa based gtk mixer
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/
-
-/*****************************************************************************/
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Global Variables */
-
-extern GtkWidget *window;
-extern Card *card; /* And array of the cards */
-extern int cards; /* The number of cards in the system. */
-extern Config config; /* The system config */
-
-/* End Global Variables */
-/*****************************************************************************/ 
-
-/*****************************************************************************/ 
-/* Begin function prototypes */
-
-GtkWidget *group_elements(int card, int mixer, Group *group);
-GtkWidget *display_volume1(Group *group, int element, void *handle, char *route);
-GtkWidget *display_switch2(Group *group, int element, void *handle, char *route);
-GtkWidget *display_switch1(Group *group, int element, void *handle, char *route);
-GtkWidget *display_3deffect1(Group *group, int element, void *handle, char *route);
-
-/* End function protoypes */
-/*****************************************************************************/ 
-
-GtkWidget *create_mixer_page(int card_num, int mixer_num) 
-{
-       GtkWidget *vbox;
-       GtkWidget *hbox;
-       GtkWidget *frame;
-       int i=card_num, j=mixer_num, k=0, l, m;
-       int w=1, col;
-       
-       /* Compute the number of culumns to use */
-       //      w = (int)sqrt((double)card[i].mixer[j].info.elements);
-       w = (int)(1.5 * 
-                 (float)card[i].mixer[j].info.elements / 
-                 (float)card[i].mixer[j].info.groups);
-       if (w == 0)
-               col = 0;
-       else
-               /* Compute the number of groups in a column */
-               col = (card[i].mixer[j].info.groups + w - 1)/ w;
-
-       /* Create the main bounding box */
-       hbox = gtk_hbox_new(FALSE, 0);
-       gtk_widget_show(hbox);
-
-
-       /* Make a vertical box for each column, then put that column's worth
-          of mixer groups into the column */
-       for(l = 0; l < w; l++) {
-               /* Make the vertical box to pack it in */
-               vbox = gtk_vbox_new(FALSE, 0);
-               gtk_widget_show(vbox);
-               gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
-
-               for(m = 0; m < col && k < card[i].mixer[j].info.groups; m++) {
-                       /* Make the group frame */
-                       frame = gtk_frame_new(card[i].mixer[j].group[k].group.gid.name);
-                       gtk_widget_show(frame);
-                       gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
-                       
-                       gtk_container_add(GTK_CONTAINER(frame),
-                                         group_elements(card_num, 
-                                                        mixer_num,
-                                                        &card[i].mixer[j].group[k]));
-
-
-                       /* Now increment the count of which mixer group we're on */
-                       k++;
-               }
-       }
-
-       return hbox;
-}
-
-
-GtkWidget *group_elements(int card_num, int mixer, Group *group)
-{
-       GtkWidget *vbox;
-       GtkWidget *hbox;
-       GtkWidget *label;
-       GtkWidget *box;
-       GtkWidget *widget;
-       char thor[128];
-       int i, j;
-       snd_mixer_element_t test;
-
-       vbox = gtk_vbox_new(FALSE, 0);
-       gtk_widget_show(vbox);
-
-       for(i = 0; i < group->group.elements; i++) {
-               /* Each element gets its own horizontal box */
-               hbox=gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(hbox);
-               gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-               
-               snprintf(thor, 128, "%s routed to the %s", 
-                        group->group.pelements[i].name, 
-                        group->routes[i].proutes[0].name);
-
-/*             label = gtk_label_new(thor); */
-/*             gtk_widget_show(label); */
-/*             gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); */
-
-
-               switch(group->group.pelements[i].type){
-
-               case SND_MIXER_ETYPE_VOLUME1:
-                       gtk_box_pack_end(GTK_BOX(hbox), 
-                                        display_volume1(group, i, 
-                                                        card[card_num].mixer[mixer].handle,
-                                                        thor), 
-                                        FALSE, FALSE, 0);
-                       break;
-
-               case SND_MIXER_ETYPE_SWITCH1:
-                       gtk_box_pack_end(GTK_BOX(hbox),
-                                        display_switch1(group, i, 
-                                                        card[card_num].mixer[mixer].handle,
-                                                        thor),
-                                        FALSE, FALSE, 0);
-                       break;
-
-               case SND_MIXER_ETYPE_SWITCH2:
-                       gtk_box_pack_end(GTK_BOX(hbox),
-                                        display_switch2(group, i, 
-                                                        card[card_num].mixer[mixer].handle,
-                                                        thor),
-                                        FALSE, FALSE, 0);
-                       break;
-
-               case SND_MIXER_ETYPE_3D_EFFECT1:
-                       gtk_box_pack_end(GTK_BOX(hbox),
-                                        display_3deffect1(group, i, 
-                                                        card[card_num].mixer[mixer].handle,
-                                                        thor),
-                                        FALSE, FALSE, 0);
-                       break;  
-               }
-       }
-
-
-
-       return vbox;
-}
-
-GtkWidget *display_3deffect1(Group *group, int element, void *handle, char *route)
-{
-       GtkWidget *vbox;
-       GtkWidget *box;
-       GtkTooltips *tooltips;
-       GtkWidget *widget;
-       GtkWidget *label;
-       int i=element;
-       GtkObject *adj;
-
-       vbox = gtk_vbox_new(FALSE, 0);
-       gtk_widget_show(vbox);
-
-       group->gtk[i].interface = calloc(10, sizeof(GtkWidget *));
-       group->gtk[i].adjust = calloc(10, sizeof(GtkWidget *));
-
-       /* The on/off switch */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_SW) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               widget = gtk_check_button_new();
-               if(group->element[i].data.teffect1.sw)
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(widget), TRUE);
-               
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               /* Connect it to the callback */
-               gtk_signal_connect(GTK_OBJECT(widget), "toggled", 
-                                  GTK_SIGNAL_FUNC(adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_SW));
-       }
-
-
-
-       /* The mono switch */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_MONO_SW) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Mono");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               widget = gtk_check_button_new();
-               if(group->element[i].data.teffect1.sw)
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(widget), TRUE);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               /* Connect it to the callback */
-               gtk_signal_connect(GTK_OBJECT(widget), "toggled", 
-                                  GTK_SIGNAL_FUNC(adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_MONO_SW));
-       }
-
-
-       /* the wide control */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_WIDE) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Width");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.wide,
-                                        group->einfo[i].data.teffect1.min_wide,
-                                        group->einfo[i].data.teffect1.max_wide,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-
-               /* connect the signal */
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_WIDE));
-       }
-
-       /* the volume widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_VOLUME) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Volume");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.volume,
-                                        group->einfo[i].data.teffect1.min_volume,
-                                        group->einfo[i].data.teffect1.max_volume,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               /* connect the signal */
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_VOLUME));
-       }
-
-
-       /* The center widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_CENTER) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Center");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.center,
-                                        group->einfo[i].data.teffect1.min_center,
-                                        group->einfo[i].data.teffect1.max_center,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_CENTER));
-       }
-
-
-       /* The Space widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_SPACE) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Space");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.space,
-                                        group->einfo[i].data.teffect1.min_space,
-                                        group->einfo[i].data.teffect1.max_space,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_SPACE));
-       }
-
-       /* The depth widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_DEPTH) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Depth");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.depth,
-                                        group->einfo[i].data.teffect1.min_depth,
-                                        group->einfo[i].data.teffect1.max_depth,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_DEPTH));
-       }
-
-       /* The delay widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_DELAY) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Delay");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.delay,
-                                        group->einfo[i].data.teffect1.min_delay,
-                                        group->einfo[i].data.teffect1.max_delay,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_DELAY));
-       }
-
-
-       /* The feedback widget */
-       if(group->einfo[i].data.teffect1.effect & SND_MIXER_EFF1_FEEDBACK) {
-               box = gtk_hbox_new(FALSE, 0);
-               gtk_widget_show(box);
-               gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);
-               
-               label = gtk_label_new("3D Effect Feedback");
-               gtk_widget_show(label);
-               gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 0);
-               
-               
-               adj = gtk_adjustment_new(group->element[i].data.teffect1.feedback,
-                                        group->einfo[i].data.teffect1.min_feedback,
-                                        group->einfo[i].data.teffect1.max_feedback,
-                                        1.0,
-                                        3.0,
-                                        0.0);
-               widget = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-               gtk_scale_set_value_pos(GTK_SCALE(widget), 
-                                       GTK_POS_RIGHT);
-               gtk_widget_set_usize(widget, 100, -1);
-               gtk_widget_show(widget);
-               gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
-               gtk_signal_connect(GTK_OBJECT(adj),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_teffect1),
-                                  create_cb_data(group, handle, i, TYPE_FEEDBACK));
-       }
-
-
-
-       return vbox;
-}
-
-GtkWidget *display_switch1(Group *group, int element, void *handle, char *route)
-{
-       GtkWidget *box;
-       GtkTooltips *tooltips;
-       GtkWidget *button;
-       int i, j;
-
-       i = element;
-
-       box = gtk_hbox_new(FALSE, 0);
-       gtk_widget_show(box);
-
-       /* Allocate the widget array */
-       group->gtk[i].interface = calloc(group->element[i].data.switch1.sw, sizeof(GtkWidget *));
-
-       for(j = 0; j < group->element[i].data.switch1.sw; j++) {
-               button = gtk_check_button_new();
-               /* looks painful, doesn't it?  It's checking the state of the appropriate bit */
-               if(group->element[i].data.switch1.psw[j / sizeof(unsigned int)] & 
-                  (1 << (j % sizeof(unsigned int))))
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON (button), TRUE);
-               gtk_widget_show(button);
-
-               /* Set up the tooltips */
-               tooltips = gtk_tooltips_new();
-               gtk_tooltips_set_tip (tooltips, button, route, NULL);
-
-
-               gtk_box_pack_start(GTK_BOX (box), button, FALSE, FALSE, 0);
-
-               /* Connect it to the callback */
-               gtk_signal_connect(GTK_OBJECT(button), "toggled", 
-                                  GTK_SIGNAL_FUNC(adjust_switch1),
-                                  create_cb_data(group, handle, i, j));
-
-               /* Store the widget */
-               group->gtk[i].interface[j] = button;
-       }
-
-
-       return box;
-}
-
-
-GtkWidget *display_switch2(Group *group, int element, void *handle, char *route)
-{
-       GtkWidget *button;
-       GtkTooltips *tooltips;
-       int i, j=0;
-
-       i = element;
-
-       if(!group) {
-               printf("Group isn't initialized!\n");
-               return NULL;
-       }
-
-       button = gtk_check_button_new();
-
-       if(group->element)
-               if(group->element[i].data.switch2.sw) {
-                       gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE);
-               }
-
-       gtk_widget_show(button);
-
-       /* Set up the tooltip */
-       tooltips = gtk_tooltips_new();
-       gtk_tooltips_set_tip (tooltips, button, route, NULL);
-
-       if(group->gtk) {
-               group->gtk[i].interface = calloc(1, sizeof(GtkWidget *));
-               group->gtk[i].interface[j] = button;
-       } else {
-               printf("Something wasn't initialized properly.\n");
-       }
-
-       /* Connect it to the callback */
-       gtk_signal_connect(GTK_OBJECT(group->gtk[i].interface[j]),
-                          "toggled", 
-                          GTK_SIGNAL_FUNC (adjust_switch2),
-                          create_cb_data(group, handle, element, j));
-       
-       return button;
-}
-
-GtkWidget *display_volume1(Group *group, int element, void *handle, char *route)
-{
-       GtkWidget *box;
-       GtkTooltips *tooltips;
-       int i,j;
-
-       i = element;
-
-       box = gtk_vbox_new(FALSE, 0);
-       gtk_widget_show(box);
-
-       group->gtk[i].adjust = calloc(group->element[i].data.volume1.voices, 
-                                     sizeof(GtkObject *));
-       group->gtk[i].interface = calloc(group->element[i].data.volume1.voices, 
-                                        sizeof(GtkWidget *));
-       
-       for(j=0; j < group->element[i].data.volume1.voices; j++) {
-               group->gtk[i].adjust[j] = 
-                       gtk_adjustment_new(group->element[i].data.volume1.pvoices[j],
-                                          group->einfo[i].data.volume1.prange[0].min,
-                                          group->einfo[i].data.volume1.prange[0].max,
-                                          1.0,
-                                          3.0,
-                                          0.0);
-               
-               group->gtk[i].interface[j] = 
-                       gtk_hscale_new(GTK_ADJUSTMENT(group->gtk[i].adjust[j]));
-
-               gtk_signal_connect(GTK_OBJECT(group->gtk[i].adjust[j]),
-                                  "value_changed", 
-                                  GTK_SIGNAL_FUNC (adjust_volume1),
-                                  create_cb_data(group, handle, element, j));
-
-/*             gtk_scale_set_draw_value(GTK_SCALE(group->gtk[i].interface[j]), */
-/*                                      FALSE); */
-
-               gtk_scale_set_value_pos(GTK_SCALE(group->gtk[i].interface[j]), 
-                                       GTK_POS_RIGHT);
-
-               gtk_widget_set_usize(group->gtk[i].interface[j], 100, -1);
-
-               gtk_widget_show(group->gtk[i].interface[j]);
-               gtk_box_pack_start(GTK_BOX(box), 
-                                  group->gtk[i].interface[j], 
-                                  FALSE, FALSE, 0);
-
-               /* Set up the tooltip */
-               tooltips = gtk_tooltips_new();
-               gtk_tooltips_set_tip (tooltips, group->gtk[i].interface[j], route, NULL);
-
-       }
-       
-
-
-       return box;
-}
diff --git a/xamixer2/display.h b/xamixer2/display.h
deleted file mode 100644 (file)
index d3ff77e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-/* End #include statements */
-/*****************************************************************************/
-
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-GtkWidget *create_mixer_page(int card_num, int mixer_num);
-
-
-/* End function prototypes */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-/* These types are for the callback data identification */
-#define TYPE_EFFECT                     0
-#define TYPE_SW                         1
-#define TYPE_MONO_SW                    2
-#define TYPE_WIDE                       3
-#define TYPE_VOLUME                     4
-#define TYPE_CENTER                     5
-#define TYPE_SPACE                      6
-#define TYPE_DEPTH                      7
-#define TYPE_DELAY                      8
-#define TYPE_FEEDBACK                   9
-
-/* End #define statements */
-/*****************************************************************************/
diff --git a/xamixer2/main.c b/xamixer2/main.c
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/main.h b/xamixer2/main.h
deleted file mode 100644 (file)
index 4ddf448..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*****************************************************************************/
-/* Begin system #includes */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <math.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/asoundlib.h>
-#include <gtk/gtk.h>
-
-/* End system #includes */
-/*****************************************************************************/ 
-
-
-
-/*****************************************************************************/
-/* Begin program #includes */
-
-#include "structs.h"
-#include "util.h"
-#include "xamixer2.h"
-#include "cinit.h"
-#include "callbacks.h"
-#include "display.h"
-#include "config.h"
-#include "switches.h"
-#include "options.h"
-
-/* End program #includes */
-/*****************************************************************************/ 
-
-
-
-/*****************************************************************************/
-/* Begin #defines */
-
-#define CHANNEL_LEFT                  (1 << 0)
-#define CHANNEL_RIGHT                 (1 << 1)
-#define CHANNEL_MONO                  (1 << 2)
-#define CHANNEL_MUTE_RIGHT            (1 << 3)
-#define CHANNEL_MUTE_LEFT             (1 << 4)
-#define CHANNEL_MUTE_MONO             (1 << 5)
-#define CHANNEL_RECORD                (1 << 6)
-#define CHANNEL_RECORD_RIGHT          (1 << 7)
-#define CHANNEL_RECORD_LEFT           (1 << 8)
-#define CHANNEL_SIMULTANEOUS          (1 << 9)
-#define CHANNEL_DISPLAYED             (1 << 10)
-#define CHANNEL_LTOR                  (1 << 11)
-#define CHANNEL_RTOL                  (1 << 12)
-
-
-#define CONFIG_USE_XPMS               (1 << 0)
-#define CONFIG_ICON_XPM               (1 << 1)
-#define CONFIG_MUTE_XPM               (1 << 2)
-#define CONFIG_MUTE_XPM_L             (1 << 3)
-#define CONFIG_UNMUTE_XPM             (1 << 4)
-#define CONFIG_UNMUTE_XPM_L           (1 << 5)
-#define CONFIG_REC_XPM                (1 << 6)
-#define CONFIG_UNREC_XPM              (1 << 7)
-#define CONFIG_SIMUL_XPM              (1 << 8)
-#define CONFIG_UNSIMUL_XPM            (1 << 9)
-#define CONFIG_LTOR_XPM               (1 << 10)
-#define CONFIG_UNLTOR_XPM             (1 << 11)
-#define CONFIG_RTOL_XPM               (1 << 12)
-#define CONFIG_UNRTOL_XPM             (1 << 13)
-#define CONFIG_BACKGROUND_XPM         (1 << 14)
-#define CONFIG_SHOW_CARD_NAME         (1 << 15)
-#define CONFIG_SHOW_MIXER_NUMBER      (1 << 16)
-#define CONFIG_SHOW_MIXER_NAME        (1 << 17)
-#define CONFIG_SWITCHES_HIDDEN        (1 << 18)
-
-/* End #defines */
-/*****************************************************************************/
-
-
-
-/*****************************************************************************/
-/* Gtk 1.0 compatability */
-
-#ifndef GTK_HAVE_FEATURES_1_1_0
-#define gtk_button_set_relief(a,b)
-#endif
-
-/* End Gtk 1.0 compatability */
-/*****************************************************************************/ 
-
-
-
-
diff --git a/xamixer2/options.c b/xamixer2/options.c
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/options.h b/xamixer2/options.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/structs.h b/xamixer2/structs.h
deleted file mode 100644 (file)
index 5a0ecf6..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/******************************************************************************/
-/* Begin Structures */
-
-struct _Gtk_Channel
-{
-       GtkWidget **interface; /* And array of the interfaces (slider, button, etc.) */
-       GtkObject **adjust; /* An array of the adjustments */
-};
-typedef struct _Gtk_Channel Gtk_Channel;
-
-struct _Group
-{
-       snd_mixer_group_t group; /* The group structure */
-       snd_mixer_element_t *element; /* an array of all the elements in the group */
-       snd_mixer_element_info_t *einfo; /* an array of the info about all of the elements */
-       snd_mixer_routes_t *routes; /* an array of all the routes for the elements */
-       Gtk_Channel *gtk; /* The Gtk+ widgets used for each mixer element */
-};
-typedef struct _Group Group;
-
-struct _Mixer
-{
-        int number; /* The number of the mixer device */
-        snd_mixer_t *handle;
-        snd_mixer_info_t info; /* The info for the mixer */
-        int cnum; /* The number of channels present */
-        int snum; /* The number of mixer switches present */
-       snd_mixer_groups_t groups; /* The mixer groups */
-       Group *group; /* An array of the mixer groups */
-        char name[80]; /* The name of the mixer */
-        GtkWidget *switch_table;
-};
-typedef struct _Mixer Mixer;
-
-
-
-struct _Card
-{
-       snd_ctl_hw_info_t hw_info; /* The hardware info about the card. */
-        int number; /* The card's number */
-        void *handle; /* The handle for the mixer */
-        char name[80]; /* The name of the card */
-        Mixer *mixer; /* A dynamic array of all of the mixers */
-        int nmixers; /* The number of mixers on the card */
-        int npcms; /* The number of pcm devices */
-};
-typedef struct _Card Card;
-
-
-struct _MixerInfo
-{
-        Mixer *mixer; /* Which card */
-        int channel; /* Which channel */
-        unsigned int flags; /* flags */
-        GtkWidget *other; /* The other range widget */
-        GtkWidget *mute; /* The mute pixmap */
-        GtkWidget *unmute; /* The unmute pixmap */
-};
-typedef struct _MixerInfo MixerInfo;
-
-
-struct _ChannelLabel
-{
-        struct _ChannelLabel *next; /* pointer to the next node in the list */
-        char *channel; /* The channel name */
-        char *label; /* The channel label or pixmap */
-};
-typedef struct _ChannelLabel ChannelLabel;
-
-
-struct _CBData
-{
-       Group *group; /* The group */
-       void *handle; /* The mixer handle */
-       int element; /* The element number to use as an index */
-       int index; /* The index such as the voice # or something like that */
-};
-typedef struct _CBData CBData;
-
-
-
-struct _Config
-{
-        unsigned int flags; /* Flags */
-        ChannelLabel *labels; /* The text labels for channels */
-        ChannelLabel *xpm; /* The pixmaps (file names) for channels */
-        char *icon; /* The Icon pixmap to use */
-        char *mute; /* The mute label or pixmap (indicated in a flag) */
-        char *mute_l; /* The left mute label or pixmap (indicated in a flag) */
-        char *unmute; /* The unmute label or pixmap (indicated in a flag) */
-        char *unmute_l; /* The left unmute label or pixmap (indicated in a flag) */
-        char *simul; /* The simultaneous label or pixmap (indicated in a flag */
-        char *unsimul; /* The unsimultaneous label or pixmap (indicated in a flag */
-        char *rec; /* The record label or pixmap (indicated in a flag) */
-        char *unrec; /* The unrecord label or pixmap (indicated in a flag) */
-        char *background; /* The background xpm */
-        unsigned int scale; /* The size in pixels that the scales should be set to */
-        unsigned int padding; /* The padding between channels */
-        int x_pos, y_pos; /* The position to start out at -1 = default */
-        GtkWidget *cdisplay; /* The channel display window */
-        GdkPixmap *icon_xpm; /* The icon xpm */
-        GdkPixmap *mute_xpm; /* The mute pixmap */
-        GdkPixmap *unmute_xpm; /* The unmute pixmap */
-        GdkPixmap *mute_xpm_l; /* The left mute pixmap */
-        GdkPixmap *unmute_xpm_l; /* The left unmute pixmap */
-        GdkPixmap *rec_xpm; /* The record pixmap */
-        GdkPixmap *unrec_xpm; /* The record off pixmap */
-        GdkPixmap *simul_xpm; /* The sumultaneous pixmap */
-        GdkPixmap *unsimul_xpm; /* The independent pixmap */
-        GdkPixmap *background_xpm; /* The background pixmap */
-        GdkBitmap *icon_mask;
-        GdkBitmap *mute_mask;
-        GdkBitmap *unmute_mask;
-        GdkBitmap *mute_mask_l;
-        GdkBitmap *unmute_mask_l;
-        GdkBitmap *rec_mask;
-        GdkBitmap *unrec_mask;
-        GdkBitmap *simul_mask;
-        GdkBitmap *unsimul_mask;
-        GdkBitmap *background_mask;
-};
-typedef struct _Config Config;
-
-/* End Structures */
-/******************************************************************************/
-
-
-/******************************************************************************/
-/* Begin type macros */
-
-#define MIXER(x) ((Mixer *)(x))
-#define CARD(x) ((Card *)(x))
-
-/* End type macros */
-/******************************************************************************/
-
-
diff --git a/xamixer2/switches.c b/xamixer2/switches.c
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/switches.h b/xamixer2/switches.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xamixer2/test.c b/xamixer2/test.c
deleted file mode 100644 (file)
index 86d94c0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <gtk/gtk.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(int argc, char **argv)
-{
-       GtkWidget *window;
-       GtkWidget *scale;
-       GtkObject *adj;
-
-
-       gtk_init(&argc, &argv);
-
-       window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       adj = gtk_adjustment_new(1.0, 
-                                0.0, 
-                                110.0,
-                                1.0,
-                                4.0,
-                                0.0);
-       scale = gtk_hscale_new(GTK_ADJUSTMENT(adj));
-       gtk_widget_show(scale);
-       gtk_container_add(GTK_CONTAINER(window), scale);
-
-
-       gtk_widget_show(window);
-       gtk_main();
-
-
-       return 0;
-}
diff --git a/xamixer2/test1.c b/xamixer2/test1.c
deleted file mode 100644 (file)
index 99ef65f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <stdio.h>
-
-main()
-{
-       printf("The value is %i\n", ~(1 << 1));
-
-
-
-
-       return 0;
-}
diff --git a/xamixer2/util.c b/xamixer2/util.c
deleted file mode 100644 (file)
index 4ab710a..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*****************************************************************************
-   xamixer.c - an Alsa based gtk mixer
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/
-
-/*****************************************************************************/
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-extern Config config; /* The system config */
-
-
-int is_same(char *string1, char *string2)
-{
-       int i = 0;
-       
-       if(strlen(string1) != strlen(string2))
-               return 0;
-       
-       while(string1[i] != '\0') 
-               if(string1[i] != string2[i])
-                       return 0;
-               else
-                       i++;
-       
-       return 1;
-       
-}
-
-void strip_comment(char *string)
-{
-  char *place;
-  int i = 0, j = 0, size;
-
-  size = strlen(string);
-  /* Get wrid of the comments */
-  place = string;
-  while((place = strchr(place, '#'))){
-    if(string[(place - string) -1] != '\\')
-      *place = '\0';
-    place++;
-  }
-
-  /* Replace the escape sequences */
-  place = calloc(1, strlen(string));
-  while(string[i] != '\0'){
-    if(string[i] == '\\')
-      place[j] = string[++i];
-    else
-      place[j] = string[i];
-
-    i++;
-    j++;
-  }
-
-  EAZERO(string, size);
-  strncpy(string, place, size);
-  free(place);
-  return;
-}
-
-int is_comment(char *string)
-{
-  int i=0;
-
-  while (string[i] != '\0'){
-    if (string[i] == '#')
-      return 1;
-    if (string[i] != ' ' && string[i] != '\t')
-      return 0;
-    i++;
-  }
-  return 0;
-}
-
-ChannelLabel *channel_label_append(ChannelLabel *head, char *channel, char *label)
-{
-  ChannelLabel *tmp;
-
-  tmp = calloc(1, sizeof(ChannelLabel));
-
-  tmp->next = head;
-  tmp->channel = calloc(strlen(channel) + 1, sizeof(char));
-  strcpy(tmp->channel, channel);
-  tmp->label = calloc(strlen(label) + 1, sizeof(char));
-  strcpy(tmp->label, label);
-
-  return tmp;
-}
-
-int get_label(char *line, char *expect, char *value1, size_t value1_len, 
-             char *value2, size_t value2_len, char quote1, char quote2)
-{
-  char *tmp;
-  int len, i;
-
-  len = strlen(line);
-
-  if(expect) {
-    tmp = strstr(line, expect);
-    if(!tmp)
-      return FALSE;
-    tmp = &tmp[strlen(expect)];
-  }
-  else
-    tmp = line;
-
-
-  tmp = strchr(tmp, quote1) + 1;
-  if(!tmp)
-    return FALSE;
-  for(i = 0; i < (value1_len - 1) && tmp[i] != quote2; i++) 
-    value1[i] = tmp[i];
-  value1[i] = '\0';
-
-  tmp = strchr(tmp, quote1) + 1;
-  if(!tmp)
-    return FALSE;
-  for(i = 0; i < (value2_len - 1) && tmp[i] != quote2; i++)
-    value2[i] = tmp[i];
-  value2[i] = '\0';
-
-
-
-  return TRUE;
-}
-
-MixerInfo *create_mixer_info(Mixer *mixer, int num, unsigned int flags)
-{
-  MixerInfo *info;
-  info = calloc(1, sizeof(MixerInfo));
-
-  info->mixer = mixer;
-  info->channel = num;
-  info->flags = flags;
-  info->other = NULL;
-  info->mute = NULL;
-  info->unmute = NULL;
-
-  return info;
-}
-
-CBData *create_cb_data(Group *group, void *handle, int element, int index)
-{
-       CBData *data;
-       
-       data = malloc(sizeof(CBData));
-
-       data->group = group;
-       data->handle = handle;
-       data->element = element;
-       data->index = index;
-
-       return data;
-}
diff --git a/xamixer2/util.h b/xamixer2/util.h
deleted file mode 100644 (file)
index 29790d7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-/* End #include statements */
-/*****************************************************************************/
-
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-int is_same(char *string1, char *string2);
-void strip_comment(char *string);
-int is_comment(char *string);
-ChannelLabel *channel_label_append(ChannelLabel *head, char *channel, char *label);
-int get_label(char *line, char *expect, char *value1, size_t value1_len, 
-             char *value2, size_t value2_len, char quote1, char quote2);
-MixerInfo *create_mixer_info(Mixer *mixer, int num, unsigned int flags);
-CBData *create_cb_data(Group *group, void *handle, int element, int index);
-
-/* End function prototypes */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-
-/* End #define statements */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Macros */
-
-#define EAZERO(S, L) S[L-1] = '\0';
-
-/* End Macros */
-/*****************************************************************************/
-
diff --git a/xamixer2/xamixer.conf b/xamixer2/xamixer.conf
deleted file mode 100644 (file)
index 322c902..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# XAmixer home file
-# Comments are preceded anywhere on the line by a '#'
-# All channel arguments (string & pixmap) must be enclosed in [ ] [ ]
-UseXpms
-#IgnoreXpms
-ScaleSize 115
-ChannelPadding 5
-Position -1 -1 # Both arguments must be set (and >= 0) to get positioning.
-ShowCardName
-#ShowMixerNumber
-#ShowMixerName
-#MuteLabel Mute
-#RecLabel Record
-RecLabel R
-#SimulLabel Lock
-#BackgroundXpm /usr/local/share/xamixer/pixmaps/test.xpm
-#BackgroundXpm /home/raistlin/xamixer/pixmaps/background5.xpm
-#BackgroundXpm /home/raistlin/xamixer/pixmaps/background.xpm
-#BackgroundXpm /tmp/background.xpm
-IconXpm /usr/local/share/xamixer/pixmaps/icon3.xpm
-#MuteXpm /usr/local/share/xamixer/pixmaps/mute3.xpm
-#unMuteXpm /usr/local/share/xamixer/pixmaps/unmute3.xpm
-MuteXpm /usr/local/share/xamixer/pixmaps/mute3.xpm
-unMuteXpm /usr/local/share/xamixer/pixmaps/unmute3.xpm
-#RecXpm /usr/local/share/xamixer/pixmaps/record.xpm
-#unRecXpm /usr/local/share/xamixer/pixmaps/unrecord.xpm
-RecXpm /usr/local/share/xamixer/pixmaps/rec.xpm
-unRecXpm /usr/local/share/xamixer/pixmaps/unrec.xpm
-#RecXpm /home/raistlin/xamixer/pixmaps/record.xpm
-#unRecXpm /home/raistlin/xamixer/pixmaps/unrecord.xpm
-SimulXpm /usr/local/share/xamixer/pixmaps/simul.xpm
-unSimulXpm /usr/local/share/xamixer/pixmaps/unsimul.xpm
-Label [Master] [Mstr]
-Label [Master M] [MstrM]
-Label [Line-In] [LineIn]
-Label [Record-Gain] [RGain]
-Label [PC Speaker] [Spkr]
-Label [Aux A] [AuxA]
-Label [In-Gain] [IGain]
-Label [Out-Gain] [OGain]
-Xpm [Master] [/usr/local/share/xamixer/pixmaps/master.xpm]
-Xpm [CD] [/usr/local/share/xamixer/pixmaps/cd.xpm]
-Xpm [MIC] [/usr/local/share/xamixer/pixmaps/mic.xpm]
-Xpm [PCM] [/usr/local/share/xamixer/pixmaps/pcm.xpm]
-Xpm [Synth] [/usr/local/share/xamixer/pixmaps/synth.xpm]
-Xpm [Line-In] [/usr/local/share/xamixer/pixmaps/line-in.xpm]
-Xpm [PC Speaker] [/usr/local/share/xamixer/pixmaps/speaker.xpm]
diff --git a/xamixer2/xamixer.home b/xamixer2/xamixer.home
deleted file mode 100644 (file)
index 322c902..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# XAmixer home file
-# Comments are preceded anywhere on the line by a '#'
-# All channel arguments (string & pixmap) must be enclosed in [ ] [ ]
-UseXpms
-#IgnoreXpms
-ScaleSize 115
-ChannelPadding 5
-Position -1 -1 # Both arguments must be set (and >= 0) to get positioning.
-ShowCardName
-#ShowMixerNumber
-#ShowMixerName
-#MuteLabel Mute
-#RecLabel Record
-RecLabel R
-#SimulLabel Lock
-#BackgroundXpm /usr/local/share/xamixer/pixmaps/test.xpm
-#BackgroundXpm /home/raistlin/xamixer/pixmaps/background5.xpm
-#BackgroundXpm /home/raistlin/xamixer/pixmaps/background.xpm
-#BackgroundXpm /tmp/background.xpm
-IconXpm /usr/local/share/xamixer/pixmaps/icon3.xpm
-#MuteXpm /usr/local/share/xamixer/pixmaps/mute3.xpm
-#unMuteXpm /usr/local/share/xamixer/pixmaps/unmute3.xpm
-MuteXpm /usr/local/share/xamixer/pixmaps/mute3.xpm
-unMuteXpm /usr/local/share/xamixer/pixmaps/unmute3.xpm
-#RecXpm /usr/local/share/xamixer/pixmaps/record.xpm
-#unRecXpm /usr/local/share/xamixer/pixmaps/unrecord.xpm
-RecXpm /usr/local/share/xamixer/pixmaps/rec.xpm
-unRecXpm /usr/local/share/xamixer/pixmaps/unrec.xpm
-#RecXpm /home/raistlin/xamixer/pixmaps/record.xpm
-#unRecXpm /home/raistlin/xamixer/pixmaps/unrecord.xpm
-SimulXpm /usr/local/share/xamixer/pixmaps/simul.xpm
-unSimulXpm /usr/local/share/xamixer/pixmaps/unsimul.xpm
-Label [Master] [Mstr]
-Label [Master M] [MstrM]
-Label [Line-In] [LineIn]
-Label [Record-Gain] [RGain]
-Label [PC Speaker] [Spkr]
-Label [Aux A] [AuxA]
-Label [In-Gain] [IGain]
-Label [Out-Gain] [OGain]
-Xpm [Master] [/usr/local/share/xamixer/pixmaps/master.xpm]
-Xpm [CD] [/usr/local/share/xamixer/pixmaps/cd.xpm]
-Xpm [MIC] [/usr/local/share/xamixer/pixmaps/mic.xpm]
-Xpm [PCM] [/usr/local/share/xamixer/pixmaps/pcm.xpm]
-Xpm [Synth] [/usr/local/share/xamixer/pixmaps/synth.xpm]
-Xpm [Line-In] [/usr/local/share/xamixer/pixmaps/line-in.xpm]
-Xpm [PC Speaker] [/usr/local/share/xamixer/pixmaps/speaker.xpm]
diff --git a/xamixer2/xamixer2.c b/xamixer2/xamixer2.c
deleted file mode 100644 (file)
index 606328e..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*****************************************************************************
-   xamixer.c - an Alsa based gtk mixer
-   Written by Raistlinn (lansdoct@cs.alfred.edu)
-   Copyright (C) 1998 by Christopher Lansdown
-   
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License
-   as published by the Free Software Foundation; either version 2
-   of the License, or (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-******************************************************************************/
-
-/*****************************************************************************/ 
-/* Begin #include's */
-
-#include "main.h"
-
-/* End #include's */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin Global Variables */
-
-GtkWidget *window;
-Card *card; /* And array of the cards */
-int cards; /* The number of cards in the system. */
-extern Config config; /* The system config */
-
-/* End Global Variables */
-/*****************************************************************************/
-
-int main(int argc, char **argv)
-{
-
-        /* Begin Variable Declarations */
-        GtkWidget *mainbox;
-        GtkWidget *notebook;
-        GtkWidget *frame;
-        GtkWidget *label;
-        GtkWidget *table;
-        GtkWidget *switch_button;
-        GtkWidget *tmpbox;
-        GtkWidget *tablebox;
-        GtkWidget *separator;
-        int i,j,k,xpm,found,fd;
-        char title[64];
-        char name[128];
-        ChannelLabel *tmp;
-        char labelname[256];
-        char *home_env, *home_dir;
-        GtkStyle *style;
-        GtkWidget *hbox;
-       snd_mixer_filter_t mixer_filter;
-        /* End Variable Declarations */
-
-       /* Go through gtk initialization */
-        gtk_init(&argc, &argv);
-
-       /* Read the personal config file - these values override the global config */
-        home_env = getenv("HOME");
-        home_dir = calloc((strlen(home_env) + 2 + strlen(RCFILE)), 1);
-        strcpy(home_dir, home_env);
-        strcat(home_dir, "/");
-        strcat(home_dir, RCFILE);
-        gtk_rc_parse(home_dir);
-        free(home_dir);
-
-       /* Read in the soundcard info */
-        if(init_cards()) {
-                printf("Error.  Unable to initialize sound cards.\n");
-                return 1;
-        }
-
-        /* Read in normal config info */
-        config_init();
-        config_read("/usr/local/etc/xamixer.conf");
-        home_env = getenv("HOME");
-        home_dir = calloc((strlen(home_env) + 2 + strlen(HOME_FILE)), 1);
-        strcpy(home_dir, home_env);
-        strcat(home_dir, "/");
-        strcat(home_dir, HOME_FILE);
-        config_read(home_dir);
-        free(home_dir);
-  
-        /* Make the title */
-        sprintf(title, "XAmixer2 %s", VERSION);
-
-        /* Create the main window */
-        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-        gtk_window_set_title(GTK_WINDOW(window), title);
-        gtk_signal_connect(GTK_OBJECT (window), "delete_event", 
-                           (GtkSignalFunc) gtk_main_quit, NULL);
-        signal(SIGINT, (void *)gtk_main_quit);
-        /* Set the policy */
-        gtk_window_set_policy(GTK_WINDOW (window), TRUE, TRUE, TRUE);
-        /* Set the position, if one has been defined */
-        gtk_widget_set_uposition(window, config.x_pos, config.y_pos);
-        /* Realize the window so that we can start drawing pixmaps to it */
-        gtk_widget_realize(window);
-
-       /* Set up the pixmaps */
-        setup_pixmaps(window);
-
-
-        /* Create the notebook */
-        notebook = gtk_notebook_new();
-        gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP);
-
-        gtk_widget_show(notebook);
-       gtk_container_add(GTK_CONTAINER(window), notebook);
-
-
-        /* Create the notebook pages */
-        for(i = 0; i < cards; i++) {
-               for(j = 0; j < card[i].hw_info.mixerdevs; j++) {
-                       
-                       frame = create_mixer_page(i, j);
-
-
-
-
-                       /* Create the label and add the page to the notebook */
-                       bzero(labelname, 256);
-                       if(config.flags & CONFIG_SHOW_CARD_NAME) {
-                               strcpy(labelname, card[i].hw_info.name);
-                               if(config.flags & (CONFIG_SHOW_MIXER_NAME |
-                                                  CONFIG_SHOW_MIXER_NUMBER))
-                                       strcat(labelname, ", ");
-                       }
-                       
-                       if(config.flags & CONFIG_SHOW_MIXER_NUMBER) {
-                                /* Do some trickery to get around an additional 
-                                  variable, plus this may be more efficient, 
-                                   since strcat() has to figure out where the end 
-                                  of the line is anyhow, plus the copying. */
-                               sprintf(&labelname[strlen(labelname)], "Mixer %i", j);
-                               if(config.flags & CONFIG_SHOW_MIXER_NAME)
-                                       strcat(labelname, ", ");
-                       }
-                       
-                        if(config.flags & CONFIG_SHOW_MIXER_NAME)
-                                strcat(labelname, card[i].mixer[j].info.name);
-                       
-                        /* Just in case nothing is specified in the config file */
-                        if(!(config.flags & (CONFIG_SHOW_CARD_NAME | 
-                                             CONFIG_SHOW_MIXER_NAME | 
-                                            CONFIG_SHOW_MIXER_NUMBER)))
-                                sprintf(labelname, "%i", i + j);
-                       
-                        label = gtk_label_new(labelname);
-                        gtk_widget_show(label);
-                        gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label);
-                       
-                       
-               }
-       }
-       
-        /* Create the options page */
-        frame = gtk_frame_new("");
-        gtk_widget_show(frame);
-       //        gtk_container_add(GTK_CONTAINER (frame), create_options_page());
-        label = gtk_label_new("Options");
-        gtk_widget_show(label);
-        gtk_notebook_append_page(GTK_NOTEBOOK (notebook), frame, label);
-
-
-        /* Set up the icon, if one has been defined. */
-        if(config.flags & CONFIG_ICON_XPM && config.icon_xpm)
-                gdk_window_set_icon(window->window, NULL, 
-                                    config.icon_xpm, config.icon_mask);
-
-
-       /* Set up the update callback for every mixer */
-       for(i = 0; i < cards; i++)
-               for(j = 0; j < card[i].nmixers; j++)
-                       gdk_input_add(snd_mixer_file_descriptor(card[i].mixer[j].handle),
-                                     GDK_INPUT_READ,
-                                     mixer_change_cb,
-                                     &card[i].mixer[j]);
-
-
-       /* Show the whole kit and kaboodle */
-       gtk_widget_show(window);
-
-       /* And go into the gtk loop - why does this feel like the first 
-          plunge in a roller coaster after the big hill at the beginning? */
-       gtk_main();
-
-       return 0;
-}
diff --git a/xamixer2/xamixer2.h b/xamixer2/xamixer2.h
deleted file mode 100644 (file)
index b8f91dc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************************/
-/* Begin #include statements */
-
-/* End #include statements */
-/*****************************************************************************/
-
-
-/*****************************************************************************/
-/* Begin function prototypes */
-
-
-/* End function prototypes */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Begin #define statements */
-
-#define RCFILE ".xamixerrc"
-#define VERSION "0.1.3"
-
-/* End #define statements */
-/*****************************************************************************/
-
-
-