rpms/aumix/FC-6 curses-cleanup.patch,NONE,1.1 aumix.spec,1.4,1.5

Gabriel L. Somlo (somlo) fedora-extras-commits at redhat.com
Wed Mar 21 15:01:36 UTC 2007


Author: somlo

Update of /cvs/extras/rpms/aumix/FC-6
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3688

Modified Files:
	aumix.spec 
Added Files:
	curses-cleanup.patch 
Log Message:
fix bugzilla ticket # 232828


curses-cleanup.patch:

--- NEW FILE curses-cleanup.patch ---
diff -NarU5 aumix-2.8.orig/src/common.c aumix-2.8/src/common.c
--- aumix-2.8.orig/src/common.c	2007-03-20 16:22:56.000000000 -0400
+++ aumix-2.8/src/common.c	2007-03-20 17:33:21.000000000 -0400
@@ -21,15 +21,11 @@
 
 #include <errno.h>
 #include "common.h"
 #ifdef HAVE_CURSES
 #include "curses.h"
-#include "gpm-xterm.h"
 #endif				/* HAVE_CURSES */
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-#include "gtk.h"
-#endif				/* HAVE_GTK || HAVE_GTK1 */
 #include "interactive.h"
 
 FILE           *OpenDefaultFile(char *mode);
 FILE           *setfile;
 char           *save_filename = NULL;	/* name of file for saved settings */
@@ -118,10 +114,11 @@
 {
 	int             optn, ii;
 	int		save = 0, load = 0;
 #ifdef HAVE_CURSES
 	int             setcolors = FALSE;
+	char *term_name;
 #endif				/* HAVE_CURSES */
 	/* Internationalization */
 #ifdef HAVE_NLS
 	I18nInitialize();
 #endif				/* HAVE_NLS */
@@ -160,11 +157,11 @@
 				ErrorExitWarn(InitializeMixer(device_filename), 'e');
 				break;
 			case 'f':	/* User specified the save file. */
 				save_filename = strdup(optarg);
 				break;
-#ifdef HAVE_CURSES		/* no color schemes for GTK+ */
+#ifdef HAVE_CURSES
 			case 'C':	/* User specified the color scheme. */
 				scheme_name = strdup(optarg);
 				setcolors = TRUE;
 				interactive = IN_CURSES;
 				break;
@@ -173,16 +170,16 @@
 				save = 1;
 				break;
 			case 'L':	/* Load from file. */
 				load = 1;
 				break;
-#if defined (HAVE_CURSES) || defined (HAVE_GTK) || defined (HAVE_GTK1)
+#if defined (HAVE_CURSES)
 			case 'I':	/* User asked for interactive mode. */
 				if (!interactive)
 					interactive = IN_ANY;
 				break;
-#endif				/* HAVE_CURSES || HAVE_GTK || HAVE_GTK1 */
+#endif				/* HAVE_CURSES */
 			case 'h':	/* Show help. */
 				Usage(EXIT_SUCCESS);
 				break;
 			default:	/* Show help. */
 				Usage(EXIT_FAILURE);
@@ -198,48 +195,15 @@
 			ErrorExitWarn(LoadSettings(), 'e');
 		close(mixer_fd);
 		exit(EXIT_SUCCESS);
 	}
 	
-#if defined (HAVE_CURSES) || defined (HAVE_GTK) || defined (HAVE_GTK1)
+#if defined (HAVE_CURSES)
 /* Be interactive if no options were given. */
 	if (!interactive && argc <= 1)
-		interactive = IN_ANY;
-/* By now we've decided whether to go interactive.
-   The -C (color scheme) option implies curses, even if GTK is available.
-*/
-	if (interactive == IN_ANY) {
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-		if (getenv("DISPLAY") != NULL)
-			interactive = IN_GTK;
-#endif				/* HAVE_GTK || HAVE_GTK1 */
-#ifdef HAVE_CURSES
-		if (interactive == IN_ANY)
-			interactive = IN_CURSES;
+		interactive = IN_CURSES;
 #endif				/* HAVE_CURSES */
-	}
-#endif				/* HAVE_CURSES || HAVE_GTK || HAVE_GTK1 */
-/* By now, interactive is not IN_ANY.  It is IN_GTK only if DISPLAY is set,
-   and otherwise defaults to IN_CURSES.  Since interactive contains the right
-   value, it should not be changed any more.
-*/
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-/* GTK+ stuff */
-	if (interactive == IN_GTK) {
-#ifndef DUMMY_MIXER
-		if ((mixer_fd = open(device_filename, O_RDWR)) < 0)
-			return EOPENMIX;
-#endif				/* DUMMY_MIXER */
-		ErrorExitWarn(MixerStatus(), 'e');
-		if (!devmask)
-			return EFINDDEVICE;
-		gtk_init(&argc, &argv);
-		InitScreenGTK();
-		gtk_main();
-		return 0;
-	}
-#endif				/* HAVE_GTK || HAVE_GTK1 */
 	if (!interactive) {
 		if (usage_ok && optn == -1)
 			Usage(EXIT_SUCCESS);
 	}
 	if (mixer_fd == -1)
@@ -250,13 +214,18 @@
 		if (setcolors == TRUE)
 			ErrorExitWarn(InitColors(scheme_name), 'e');
 		else
 			SetDefaultColors();
 		InitScreen();
-		StartMouse();
+#if HAVE_GETMOUSE
+	        term_name = termname();
+	        /* enable ncurses mouse reporting */
+        	if (strcasestr(term_name, "screen") != term_name)
+	        	/* but only if our terminal is NOT screen* */
+	        	mousemask(BUTTON1_PRESSED | BUTTON1_CLICKED, NULL);
+#endif                          /* HAVE_GETMOUSE */
 		Inter();
-		Gpm_Close();
 #endif				/* HAVE_CURSES */
 		close(mixer_fd);
 #if HAVE_CURSES
 		CloseScreen();
 		
@@ -683,11 +652,11 @@
 	static char     version[] = "@(#) aumix " VERSION "\n";
 	static char     copyright[] =
 	"@(#) copyright (c) 1993, 1996-2000 the authors--see AUTHORS file\n";
 	fp = (status == EXIT_SUCCESS) ? stdout : stderr;
 	fprintf(fp, LOCAL_TEXT("aumix %s usage: aumix [-<channel option>[[+|-][<amount>]]|<level>|\nR[ecord]|P[lay]|q[uery]]"), VERSION);
-#if defined(HAVE_CURSES) || defined(HAVE_GTK) || defined(HAVE_GTK1)
+#if defined(HAVE_CURSES)
 	fprintf(fp, LOCAL_TEXT(" [-dhILqS]"));
 #else
 	fprintf(fp, LOCAL_TEXT(" [-dhLqS]"));
 #endif
 #if defined(HAVE_CURSES)
@@ -714,14 +683,14 @@
 	fprintf(fp, LOCAL_TEXT("\
   d:  adjust a device besides /dev/mixer\n\
   f:  specify file for saving and loading settings (defaults to\n\
       ~/.aumixrc or /etc/aumixrc)\n\
   h:  this helpful message\n"));
-#if defined(HAVE_CURSES) || defined(HAVE_GTK) || defined(HAVE_GTK1)
+#if defined(HAVE_CURSES)
 	fprintf(fp, LOCAL_TEXT("\
   I:  start in interactive mode after doing non-interactive functions\n"));
-#endif				/* HAVE_CURSES || HAVE_GTK || HAVE_GTK1 */
+#endif				/* HAVE_CURSES */
 	fprintf(fp, LOCAL_TEXT("\
   L:  load settings\n\
   q:  query all channels and print their settings\n\
   S:  save settings\n"));
 	exit(status);
diff -NarU5 aumix-2.8.orig/src/common.h aumix-2.8/src/common.h
--- aumix-2.8.orig/src/common.h	2007-03-20 16:22:18.000000000 -0400
+++ aumix-2.8/src/common.h	2007-03-20 16:26:05.000000000 -0400
@@ -20,15 +20,14 @@
 #ifndef AUMIX_H
 #define AUMIX_H
 #include "../config.h"
 #define AUMIXRC_PATH "/etc"
 #define AUMIXRC "aumixrc"
-#if defined (HAVE_CURSES) || defined (HAVE_GTK) || defined (HAVE_GTK1)
+#if defined (HAVE_CURSES)
 #define IN_CURSES 1
-#define IN_GTK 2
 #define IN_ANY 3
-#endif				/* HAVE_CURSES || HAVE_GTK || HAVE_GTK1 */
+#endif				/* HAVE_CURSES */
 #ifndef TRUE			/* defined in ncurses.h */
 #define TRUE 1
 #endif				/* TRUE */
 #ifndef FALSE
 #define FALSE 0
diff -NarU5 aumix-2.8.orig/src/curses.c aumix-2.8/src/curses.c
--- aumix-2.8.orig/src/curses.c	2002-10-23 11:07:40.000000000 -0400
+++ aumix-2.8/src/curses.c	2007-03-20 17:33:43.000000000 -0400
@@ -175,11 +175,11 @@
 	mvaddstr(5, 26, (char *) LOCAL_TEXT("adjust slider\n"));
 	mvaddstr(6, 26, (char *) LOCAL_TEXT("toggle record/play\n"));
 	mvaddstr(7, 26, (char *) LOCAL_TEXT("center balance\n"));
 	refresh();
 
-	Getch();
+	wgetch(stdscr);
 	alarm(REFRESH_PERIOD);	/* Enable updates again. */
 	in_keysbox = FALSE;
 	timeout(1000);
 	clear();
 	InitScreen();
@@ -341,11 +341,11 @@
 	}
 	PlaceCursor();
 	signal(SIGALRM, AumixSignalHandler);
 	alarm(REFRESH_PERIOD);
 	for (;;) {
-		key = Getch();
+		key = wgetch(stdscr);
 		incr = 0;
 		dir = 0;
 		switch (key) {
 		case '.':
 		case ',':
diff -NarU5 aumix-2.8.orig/src/curses.h aumix-2.8/src/curses.h
--- aumix-2.8.orig/src/curses.h	2002-05-06 02:23:29.000000000 -0400
+++ aumix-2.8/src/curses.h	2007-03-20 16:43:05.000000000 -0400
@@ -83,12 +83,10 @@
 	8,			/* uk */
 };
 #define ARROW_WIDTH 1		/* width of selection arrow */
 #define R_P_WIDTH 1		/* width of record/play indicator */
 int             level_increment, balance_increment, menu_width, level_width, label_width, balance_width, levelbalmode;
-int             (*Wgetch) (WINDOW * win);
-#define Getch() (*Wgetch)(stdscr)
 void            WakeUpCurses(void);
 void            InitScreenCurses(void);
 void            PlaceCursor(void);
 void            HighlightLabelCurses(void);
 void            KeysBoxCurses(void);
diff -NarU5 aumix-2.8.orig/src/gpm-xterm.c aumix-2.8/src/gpm-xterm.c
--- aumix-2.8.orig/src/gpm-xterm.c	2002-03-28 04:37:26.000000000 -0500
+++ aumix-2.8/src/gpm-xterm.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,284 +0,0 @@
-/* $Aumix: aumix/src/gpm-xterm.c,v 1.2 2002/03/28 09:37:26 trevor Exp $
- * gpm-xterm.c - pseudo client for non-Linux xterm-only mouse support.
- *               This code has been extracted from libgpm-0.18 and then
- *               took its own way.
- *
- * Copyright (C) 1994, 1995  rubini at linux.it (Alessandro Rubini)
- * Copyright (C) 1994        Janne Kukonlehto
- *
- * This file is part of aumix.
- *
- * Aumix 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.
- *
- * Aumix 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
- * aumix; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
- * Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "common.h"
-#if defined(HAVE_CURSES) && !defined(HAVE_LIBGPM)
-#include "gpm-xterm.h"
-
-#ifdef HAVE_USEKEYPAD
-int             gpm_keypad(WINDOW * win, int new)
-{
-	int             old;
-	old = win->_use_keypad;
-	win->_use_keypad = new;
-	return old;
-}
-#endif				/* HAVE_USEKEYPAD */
-
-/* This is from liblow.c (libgpm). */
-int             gpm_flag = 0, gpm_tried = 0, gpm_fd = -1, gpm_hflag = 0, gpm_zerobased = 0, gpm_visiblepointer = 0, gpm_morekeys = 0;
-struct timeval  gpm_timeout = {10, 0};
-Gpm_Handler    *gpm_handler = NULL;
-void           *gpm_data = NULL;
-static int      gpm_convert_event(unsigned char *mdata, Gpm_Event * ePtr);
-/* This is from libcurses.c (libgpm). */
-int             Gpm_Wgetch(WINDOW * win)
-{
-	int             flag, result;
-	int             fd = STDIN_FILENO;
-	static Gpm_Event ev;
-	static fd_set   selSet;
-/* patched by JD 11/08/1998 */
-	static int      nbprevchar = 0, prevchar[MAXNBPREVCHAR];
-	static unsigned char mdata[4];
-	int             c;
-#ifdef HAVE_USEKEYPAD
-	int             keypad;
-#endif				/* HAVE_USEKEYPAD */
-
-	if (gpm_flag == 0)
-		return wgetch(win);
-	if (gpm_morekeys && gpm_handler)
-		return (*gpm_handler) (&ev, gpm_data);
-
-	gpm_hflag = 0;		/* not generated by handler (default) */
-
-/* JD patch 11/08/1998 */
-	if (nbprevchar)		/* if there are some consumed chars */
-		return prevchar[--nbprevchar];
-
-	while (1) {
-		do {
-			FD_ZERO(&selSet);
-			FD_SET(fd, &selSet);
-			gpm_timeout.tv_sec = SELECT_TIME;
-			flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, (struct timeval *) NULL);
-		}
-		while (flag == 0);
-
-		if ((c = wgetch(win)) != 0x1b)
-			return c;
-
-		/* escape: go on */
-		FD_ZERO(&selSet);
-		FD_SET(fd, &selSet);
-		if ((flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, (struct timeval *) NULL)) == 0)
-			return c;
-		if ((c = wgetch(win)) != '[') {
-			prevchar[nbprevchar++] = c;
-			return 0x1B;
-		}		/* patched by JD 11/08/1998 */
-		/* '[': go on */
-		FD_ZERO(&selSet);
-		FD_SET(fd, &selSet);
-		if ((flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, (struct timeval *) NULL)) == 0) {
-			prevchar[nbprevchar++] = c;
-			return 0x1B;
-		}		/* patched by JD 11/08/1998 */
-		if ((c = wgetch(win)) != 'M')
-/* patched by JD 11/08/1998 Note: prevchar is a LIFO! */
-		{
-			prevchar[nbprevchar++] = c;
-			prevchar[nbprevchar++] = '[';
-			return 0x1B;
-		}
-		/* Now, it surely is a mouse event. */
-#ifdef HAVE_USEKEYPAD
-		keypad = gpm_keypad(win, FALSE);
-#endif				/* HAVE_USEKEYPAD */
-		for (c = 0; c < 3; c++)
-			mdata[c] = wgetch(win);
-#ifdef HAVE_USEKEYPAD
-		(void) gpm_keypad(win, keypad);
-#endif				/* HAVE_USEKEYPAD */
-		gpm_convert_event(mdata, &ev);
-
-		if (gpm_handler && (result = (*gpm_handler) (&ev, gpm_data))) {
-			gpm_hflag = 1;
-			return result;
-		}
-	}			/* while(1) */
-}
-/******* This is from liblow.c (libgpm). */
-int             Gpm_Open(Gpm_Connect * conn, int flag)
-{
-	char           *tty;
-	if ((tty = (char *) getenv("TERM")) && !strncmp(tty, "xterm", 5)) {
-		if (gpm_tried)
-			return gpm_fd;	/* already open */
-		gpm_fd = -2;
-		GPM_XTERM_ON;
-		gpm_flag = 1;
-		return gpm_fd;
-	}
-	return -1;
-}
-
-int             Gpm_Close(void)
-{
-	if (gpm_fd == -2)	/* xterm */
-		GPM_XTERM_OFF;
-	gpm_tried = 0;
-	gpm_fd = -1;
-	return 0;
-}
-
-int             Gpm_Getc(FILE * f)
-{
-	int             flag, result;
-	static Gpm_Event ev;
-	int             fd = fileno(f);
-	static int      count;
-	static struct timeval to = {0, DELAY_MS * 1000};
-	static fd_set   selSet;
-/* patched by JD 11/08/1998 */
-	static int      nbprevchar = 0, prevchar[MAXNBPREVCHAR];
-	static unsigned char mdata[4];
-	int             c;
-	/* Hmm... I must be sure it is unbuffered. */
-	if (!(count++))
-		setvbuf(f, NULL, _IONBF, 0);
-
-	if (!gpm_flag)
-		return fgetc(f);
-
-	/* If the handler asked to provide more keys, give them back. */
-	if (gpm_morekeys && gpm_handler)
-		return (*gpm_handler) (&ev, gpm_data);
-	gpm_hflag = 0;
-
-/* patched by JD 11/08/1998 */
-	if (nbprevchar)		/* if there are some consumed chars */
-		return prevchar[--nbprevchar];
-
-	while (1) {
-		do {
-			FD_ZERO(&selSet);
-			FD_SET(fd, &selSet);
-			gpm_timeout.tv_sec = SELECT_TIME;
-			flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, &to);
-		}
-		while (flag == 0);
-
-		if ((c = fgetc(f)) != 0x1b)
-			return c;
-
-		/* escape: go on */
-		FD_ZERO(&selSet);
-		FD_SET(fd, &selSet);
-		to.tv_usec = DELAY_MS * 1000;
-		if ((flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, &to)) == 0)
-			return c;
-		if ((c = fgetc(f)) != '[')
-/* patched by JD 11/08/1998 */
-		{
-			prevchar[nbprevchar++] = c;
-			return 0x1B;
-		}
-/*      {ungetc(c,stdin); return 0x1B;} */
-
-		/* '[': go on */
-		FD_ZERO(&selSet);
-		FD_SET(fd, &selSet);
-		to.tv_usec = DELAY_MS * 1000;
-		if ((flag = select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, &to)) == 0)
-/* patched by JD 11/08/1998 */
-		{
-			prevchar[nbprevchar++] = c;
-			return 0x1B;
-		}
-/*	{ungetc(c,f); return 0x1B;}	*/
-		if ((c = fgetc(f)) != 'M')
-/* patched by JD 11/08/1998 Note: prevchar is a LIFO! */
-		{
-			prevchar[nbprevchar++] = c;
-			prevchar[nbprevchar++] = '[';
-			return 0x1B;
-		}
-		/* Now, it surely is a mouse event. */
-		for (c = 0; c < 3; c++)
-			mdata[c] = fgetc(f);
-		gpm_convert_event(mdata, &ev);
-
-		if (gpm_handler && (result = (*gpm_handler) (&ev, gpm_data))) {
-			gpm_hflag = 1;
-			return result;
-		}
-	}			/* while(1) */
-}
-
-int             Gpm_Repeat(int msec)
-{
-	struct timeval  to = {0, 0};
-	fd_set          selSet;
-	int             fd = STDIN_FILENO;
-	to.tv_usec = msec * 1000;
-	FD_ZERO(&selSet);
-	FD_SET(fd, &selSet);
-	return (select(fd + 1, &selSet, (fd_set *) NULL, (fd_set *) NULL, &to) == 0);
-}
-/* This is the real protocol conversion. */
-static int      gpm_convert_event(unsigned char *mdata, Gpm_Event * ePtr)
-{
-	static struct timeval tv1 = {0, 0}, tv2;
-	/*
-	 * The clicks variable has the following meaning: 0 means button 1 is down; 1 means button 2 is down; 2 means button 3 is down; 3 means all buttons are up.
-	 */
-	static int      clicks = 0;
-	int             c;
-	c = mdata[0] - 32;
-
-	if (c == 3) {
-		ePtr->type = GPM_UP | (GPM_SINGLE << clicks);
-		ePtr->buttons = 0;
-		GET_TIME(tv1);
-		clicks = 0;
-	} else {
-		ePtr->type = GPM_DOWN;
-		GET_TIME(tv2);
-		if (tv1.tv_sec && (DIF_TIME(tv1, tv2) < 250)) {	/* 250 ms for double click */
-			clicks++;
-			clicks %= 3;
-		} else
-			clicks = 0;
-
-		switch (c) {
-		case 0:
-			ePtr->buttons |= GPM_B_LEFT;
-			break;
-		case 1:
-			ePtr->buttons |= GPM_B_MIDDLE;
-			break;
-		case 2:
-			ePtr->buttons |= GPM_B_RIGHT;
-		default:
-			break;
-		}
-	}
-	/* Coordinates are 33-based.  Transform them to 1-based. */
-	ePtr->x = mdata[1] - 32;
-	ePtr->y = mdata[2] - 32;
-	return 0;
-}
-#endif				/* defined(HAVE_CURSES) && !defined(HAVE_LIBGPM) */
diff -NarU5 aumix-2.8.orig/src/gpm-xterm.h aumix-2.8/src/gpm-xterm.h
--- aumix-2.8.orig/src/gpm-xterm.h	2002-10-29 16:27:52.000000000 -0500
+++ aumix-2.8/src/gpm-xterm.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,103 +0,0 @@
-/* $Aumix: aumix/src/gpm-xterm.h,v 1.3 2002/10/29 21:27:52 trevor Exp $
- * gpm-xterm.h - pseudo client for non-Linux xterm only mouse support.
- *               This code has been extracted from libgpm-0.18 and then
- *               took its own way.
- *
- * Copyright 1994, 1995  rubini at ipvvis.unipv.it (Alessandro Rubini)
- * Copyright 1994        miguel at roxanne.nuclecu.unam.mx (Miguel de Icaza)
- *
- * This file is part of aumix.
- *
- * Aumix 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.
- *
- * Aumix 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
- * aumix; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
- * Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GPM_XTERM_H_
-#define _GPM_XTERM_H_
-
-#include "curses.h"
-
-/* Xtermish stuff */
-#define GPM_XTERM_ON \
-  printf("\033[?1001s"), fflush(stdout), /* save old hilit tracking */ \
-  printf("\033[?1000h"), fflush(stdout)	/* enable mouse tracking */
-#define GPM_XTERM_OFF \
-printf("\033[?1000l"), fflush(stdout), /* disable mouse tracking */ \
-printf("\033[?1001r"), fflush(stdout)	/* restore old hilittracking */
-#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
-#define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+(t2.tv_usec-t1.tv_usec)/1000)
-#define MAXNBPREVCHAR 4		/* I don't think more is useful, JD */
-#define DELAY_MS 500		/* from mc */
-/* buttons */
-#define	GPM_B_RIGHT 1
-#define	GPM_B_MIDDLE 2
-#define	GPM_B_LEFT 4
-/* event types */
-#define GPM_BARE_EVENTS(type) ((type)&(0xF|GPM_ENTER|GPM_LEAVE))
-enum Gpm_Etype {
-	GPM_MOVE = 1,
-	GPM_DRAG = 2,		/* Exactly one in four is active at a time. */
-	GPM_DOWN = 4,
-	GPM_UP = 8,
-	GPM_SINGLE = 16,	/* At most one in three is set. */
-	GPM_DOUBLE = 32,
-	GPM_TRIPLE = 64,	/* Warning:  I depend on the values. */
-	GPM_MFLAG = 128,	/* motion during click? */
-	GPM_HARD = 256,		/* If set in the defaultMask, force an already used event to pass over to another handler. */
-	GPM_ENTER = 512,	/* enter event, used in Roi's */
-	GPM_LEAVE = 1024	/* leave event, used in Roi's */
-};
-/* event data structure */
-enum Gpm_Margin {
-	GPM_TOP = 1,
-	GPM_BOT = 2,
-	GPM_LFT = 4,
-	GPM_RGT = 8
-};
-typedef struct Gpm_Event {
-	unsigned char   buttons, modifiers;	/* Try to be a multiple of 4. */
-	unsigned short  vc;
-	short           dx, dy, x, y;
-	enum Gpm_Etype  type;
-	int             clicks;
-	enum Gpm_Margin margin;
-}               Gpm_Event;
-/* connection data structure */
-#define GPM_MAGIC 0x47706D4C	/* "GpmL" */
-typedef struct Gpm_Connect {
-	unsigned short  eventMask, defaultMask;
-	unsigned short  minMod, maxMod;
-	int             pid;
-	int             vc;
-}               Gpm_Connect;
-/* global variables for the client */
-extern int      gpm_flag, gpm_ctlfd, gpm_fd, gpm_hflag, gpm_morekeys;
-typedef int     Gpm_Handler(Gpm_Event * event, void *clientdata);
-extern Gpm_Handler *gpm_handler;
-extern void    *gpm_data;
-extern int      Gpm_Open(Gpm_Connect *, int);
-extern int      Gpm_Close(void);
-extern int      Gpm_Getc(FILE *);
-#define    Gpm_Getchar() Gpm_Getc(stdin)
-extern int      Gpm_Repeat(int millisec);
-extern int      Gpm_Wgetch(WINDOW *);
-#define Gpm_Getch() (Gpm_Wgetch(stdscr))
-/* Disable the functions available in libgpm but not here. */
-#define    Gpm_FitValuesM(x, y, margin)
-#define    Gpm_FitValues(x,y)
-#define    Gpm_FitEvent(ePtr)
-#define Gpm_DrawPointer(x,y,fd)
-#define GPM_DRAWPOINTER(ePtr)
-/* from gpmCfg.h */
-#define SELECT_TIME 86400	/* seconds in one day */
-#endif				/* _GPM_XTERM_H_ */
diff -NarU5 aumix-2.8.orig/src/gtk.c aumix-2.8/src/gtk.c
--- aumix-2.8.orig/src/gtk.c	2002-10-29 16:27:52.000000000 -0500
+++ aumix-2.8/src/gtk.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,467 +0,0 @@
-/* $Aumix: aumix/src/gtk.c,v 1.8 2002/10/29 21:27:52 trevor Exp $
- *
- * gtk.c:  GTK+ interface for aumix
- * (c) 1998-2001 the authors (see AUTHORS file)
- *
- * based on:
- * Freestyle DJ sample playing tool
- * Revision 1.11  1998/06/18 18:17:39
- * (C) 1998 Pete Hollobon hollobon at bigfoot.com
- * http://www.york.ac.uk/~ph116/freestyle.html
- *
- * also based on:
- * gmixer 0.98 (22.2.1999)
- * Copyleft (C) 1998, 1999 Sergey Kiselev
- * sergey at junior.technion.ac.il
- *
- * also based on:
- * filesel.c and pixmap.c examples
- * GTK v1.2 Tutorial
- * Tony Gale <gale at gtk.org>, Ian Main <imain at gtk.org>
- * February 23rd, 2000
- *
- * This file is part of aumix.
- *
- * Aumix 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.
- *
- * Aumix 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
- * aumix; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
- * Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "common.h"
-#if defined (HAVE_GTK1) || defined (HAVE_GTK)
-#include "gtk.h"
-#include "../data/aumix.xpm"
-#include "record.xpm"
-#include "play.xpm"
-#include "interactive.h"
-#include <signal.h>		/* SIGALRM */
-
-void            SaveSettingsGTK(void)
-{
-	(void) SaveSettings();
-}
-
-void            LoadSettingsGTK(void)
-{
-	(void) LoadSettings();
-}
-
-void            HideShowNumbersGTK(void)
-{
-	int             ii;
-	if (valuesvisible) {
-		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-			if ((1 << ii) & devmask && visible[ii]) {
-				gtk_scale_set_draw_value(GTK_SCALE(levels[ii]), FALSE);
-				if ((1 << ii) & stereodevs)
-					gtk_scale_set_draw_value(GTK_SCALE(baltracks[ii]), FALSE);
-			}
-		}
-		gtk_widget_hide(labelzero);
-		gtk_widget_hide(labelcent);
-	} else {
-		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-			if ((1 << ii) & devmask && visible[ii]) {
-				gtk_scale_set_draw_value(GTK_SCALE(levels[ii]), TRUE);
-				if ((1 << ii) & stereodevs)
-					gtk_scale_set_draw_value(GTK_SCALE(baltracks[ii]), TRUE);
-			}
-		}
-		gtk_widget_show(labelzero);
-		gtk_widget_show(labelcent);
-	}
-	valuesvisible = !valuesvisible;
-}
-
-void            HideShowBalancesGTK(void)
-{
-	int             ii;
-	if (balancevisible) {
-		gtk_widget_hide(labelbalance);
-		gtk_widget_hide(labelleft);
-		gtk_widget_hide(labelright);
-		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-			if (visible[ii] && (1 << ii) & stereodevs)
-				gtk_widget_hide(baltracks[ii]);
-		}
-	} else {
-		gtk_widget_show(labelbalance);
-		gtk_widget_show(labelleft);
-		gtk_widget_show(labelright);
-		for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-			if (visible[ii] && (1 << ii) & stereodevs)
-				gtk_widget_show(baltracks[ii]);
-		}
-	}
-	balancevisible = !balancevisible;
-}
-
-void            HideShowMenuGTK(GtkWidget * menu)
-{
-	if (menuvisible) {
-		gtk_widget_hide(GTK_WIDGET(menu));
-	} else {
-		gtk_widget_show(GTK_WIDGET(menu));
-	}
-	menuvisible = !menuvisible;
-}
-
-void            HideShowChannelGTK(int device)
-{
-	if (visible[device]) {
-		/* Hide the record/play button, if any. */
-		if ((1 << device) & recmask)
-			gtk_widget_hide(GTK_WIDGET(rpbuttons[device]));
-		/* Hide the level track. */
-		gtk_scale_set_draw_value(GTK_SCALE(levels[device]), FALSE);
-		gtk_widget_hide(GTK_WIDGET(levels[device]));
-/* Hide the name of the channel. */
-		gtk_widget_hide(channellabel[device]);
-		/* Hide the balance track, if any. */
-		if ((1 << device) & stereodevs) {
-/* Hide the balance track, if any. */
-			gtk_scale_set_draw_value(GTK_SCALE(baltracks[device]), FALSE);
-			gtk_widget_hide(baltracks[device]);
-		}
-	} else {
-		/* Show the record/play button, if any. */
-		if ((1 << device) & recmask)
-			gtk_widget_show(GTK_WIDGET(rpbuttons[device]));
-		/* Show the level track. */
-		gtk_scale_set_draw_value(GTK_SCALE(levels[device]), TRUE);
-		gtk_widget_show(GTK_WIDGET(levels[device]));
-		/* Show the name of the channel. */
-		gtk_widget_show(channellabel[device]);
-		/* Show the balance track, if any. */
-		if ((1 << device) & stereodevs && balancevisible) {
-			/* Show the balance track, if any. */
-			gtk_scale_set_draw_value(GTK_SCALE(baltracks[device]), TRUE);
-			gtk_widget_show(baltracks[device]);
-		}
-	}
-/* Toggle visibility flag for the device. */
-	visible[device] = !visible[device];
-}
-
-void            AdjustLevelGTK(int device)
-{
-	AdjustLevel(device, 0, adjustment[device]->value);
-	return;
-}
-
-void            AdjustBalanceGTK(int device)
-{
-	AdjustBalance(device, 0, balance[device]->value);
-	return;
-}
-
-void            InitScreenGTK(void)
-{
-	GdkColormap    *colormap;
-	GdkBitmap      *bitmap;
-	GdkPixmap      *icon_pixmap;
-	GtkStyle       *style;
-	GtkWidget      *window;
-	GtkWidget      *mainbox;
-	GtkWidget      *filemenu;
-	GtkWidget      *filemenuitems[5];
-	GtkWidget      *viewmenu;
-	GtkWidget      *viewmenuitems[SOUND_MIXER_NRDEVICES + 3];
-	GtkWidget      *separator;
-	GtkWidget      *mutemenu;
-	GtkWidget      *muteallitem;
-	GtkWidget      *menubar;
-	GtkWidget      *menubarlabel;
-	GtkAccelGroup  *accel;
-	GtkWidget      *labelrec;
-	GtkWidget      *labellevel;
-	GtkWidget      *control_box;
-	int             balset, max, y, tmp, left, right;
-	long int        ii;
-	GtkSignalFunc   filefuncs[] = {&LoadSettingsGTK, &SaveSettingsGTK, &LoadDialog, &SaveDialog, &CloseScreenGTK};
-	char           *filemenutext[] = {LOCAL_TEXT_NOOP("Load"), LOCAL_TEXT_NOOP("Save"), LOCAL_TEXT_NOOP("Load From"), LOCAL_TEXT_NOOP("Save To"), LOCAL_TEXT_NOOP("Quit")};
-	char           *fileacceltext[5] = {LOCAL_TEXT_NOOP("l"), LOCAL_TEXT_NOOP("s"), LOCAL_TEXT_NOOP("f"), LOCAL_TEXT_NOOP("t"), LOCAL_TEXT_NOOP("q")};
-	char           *viewmenutext[] = {LOCAL_TEXT_NOOP("Menu"), LOCAL_TEXT_NOOP("Balance"), LOCAL_TEXT_NOOP("Numbers")};
-	char           *viewacceltext[] = {LOCAL_TEXT_NOOP("v"), LOCAL_TEXT_NOOP("b"), LOCAL_TEXT_NOOP("n")};
-	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_window_set_title(GTK_WINDOW(window), "aumix");
-	gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
-	gtk_container_border_width(GTK_CONTAINER(window), BORDER);
-	mainbox = gtk_vbox_new(FALSE, BORDER);
-	gtk_widget_show(mainbox);
-	gtk_container_add(GTK_CONTAINER(window), mainbox);
-	accel = gtk_accel_group_new();
-#ifdef HAVE_GTK1
-	gtk_accel_group_attach(accel, GTK_OBJECT(window));
-#else
-	gtk_window_add_accel_group(GTK_WINDOW(window), accel);
-#endif
-	menubar = gtk_menu_bar_new();
-	gtk_widget_show(menubar);
-	gtk_box_pack_start(GTK_BOX(mainbox), menubar, FALSE, TRUE, 0);
-	filemenu = gtk_menu_new();
-	mutemenu = gtk_menu_new();
-	viewmenu = gtk_menu_new();
-	for (ii = 0; ii < 5; ii++) {
-		filemenuitems[ii] = gtk_menu_item_new_with_label(LOCAL_TEXT(filemenutext[ii]));
-		gtk_menu_append(GTK_MENU(filemenu), filemenuitems[ii]);
-		gtk_widget_show(filemenuitems[ii]);
-		gtk_widget_add_accelerator(filemenuitems[ii], "activate", accel, *LOCAL_TEXT(fileacceltext[ii]), 0, GTK_ACCEL_VISIBLE);
-		gtk_signal_connect(GTK_OBJECT(filemenuitems[ii]), "activate", filefuncs[ii], NULL);
-	}
-	for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-		visible[ii] = TRUE;
-		if ((1 << ii) & (devmask | recmask)) {
-			viewmenuitems[ii] = gtk_check_menu_item_new_with_label(LOCAL_TEXT(dev_label[ii]));
-			gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[ii]);
-			gtk_widget_show(viewmenuitems[ii]);
-			gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(viewmenuitems[ii]), TRUE);
-		}
-	}
-	separator = gtk_menu_item_new();
-	gtk_widget_show(separator);
-	gtk_menu_append(GTK_MENU(viewmenu), separator);
-	menuvisible = TRUE;
-	balancevisible = TRUE;
-	valuesvisible = TRUE;
-	viewmenuitems[SOUND_MIXER_NRDEVICES] = gtk_check_menu_item_new_with_label(LOCAL_TEXT("Menu"));
-	viewmenuitems[SOUND_MIXER_NRDEVICES + 1] = gtk_check_menu_item_new_with_label(LOCAL_TEXT("Balance"));
-	viewmenuitems[SOUND_MIXER_NRDEVICES + 2] = gtk_check_menu_item_new_with_label(LOCAL_TEXT("Numbers"));
-	gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[SOUND_MIXER_NRDEVICES]);
-	gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[SOUND_MIXER_NRDEVICES + 1]);
-	gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[SOUND_MIXER_NRDEVICES + 2]);
-	gtk_widget_add_accelerator(viewmenuitems[SOUND_MIXER_NRDEVICES], "activate", accel, *LOCAL_TEXT("v"), 0, GTK_ACCEL_VISIBLE);
-	gtk_widget_add_accelerator(viewmenuitems[SOUND_MIXER_NRDEVICES + 1], "activate", accel, *LOCAL_TEXT("b"), 0, GTK_ACCEL_VISIBLE);
-	gtk_widget_add_accelerator(viewmenuitems[SOUND_MIXER_NRDEVICES + 2], "activate", accel, *LOCAL_TEXT("n"), 0, GTK_ACCEL_VISIBLE);
-	gtk_widget_show(viewmenuitems[SOUND_MIXER_NRDEVICES]);
-	gtk_widget_show(viewmenuitems[SOUND_MIXER_NRDEVICES + 1]);
-	gtk_widget_show(viewmenuitems[SOUND_MIXER_NRDEVICES + 2]);
-	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(viewmenuitems[SOUND_MIXER_NRDEVICES]), TRUE);
-	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(viewmenuitems[SOUND_MIXER_NRDEVICES + 1]), TRUE);
-	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(viewmenuitems[SOUND_MIXER_NRDEVICES + 2]), TRUE);
-	muteallitem = gtk_check_menu_item_new_with_label(LOCAL_TEXT("Mute All"));
-	gtk_menu_append(GTK_MENU(mutemenu), muteallitem);
-/* XXX The "m" needs to get translated. */
-	gtk_widget_add_accelerator(muteallitem, "activate", accel, 'm', 0, GTK_ACCEL_VISIBLE);
-	gtk_widget_show(muteallitem);
-	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(muteallitem), FALSE);
-	menubarlabel = gtk_menu_item_new_with_label(LOCAL_TEXT("File"));
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubarlabel), filemenu);
-	gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubarlabel);
-	gtk_widget_show(menubarlabel);
-	menubarlabel = gtk_menu_item_new_with_label(LOCAL_TEXT("View"));
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubarlabel), viewmenu);
-	gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubarlabel);
-	gtk_widget_show(menubarlabel);
-	menubarlabel = gtk_menu_item_new_with_label(LOCAL_TEXT("Mute"));
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubarlabel), mutemenu);
-	gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubarlabel);
-	gtk_widget_show(menubarlabel);
-	gtk_signal_connect(GTK_OBJECT(muteallitem), "activate", GTK_SIGNAL_FUNC(ToggleMuting), NULL);
-	maintable = gtk_table_new(CountChannels(SOUND_MIXER_NRDEVICES) + 2,	/* 1 row per mixing channel and two for headings */
-				  8,	/* 8 columns:  record/play, "0", "Level", "100", channel names, "L", "balance", and "R" */
-				  FALSE);	/* not homogeneous:  all cells not same size */
-	gtk_widget_show(maintable);
-	gtk_container_add(GTK_CONTAINER(mainbox), maintable);
-	style = gtk_widget_get_style(window);
-	for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-		if ((1 << ii) & devmask) {
-			/* Try to read mixer. */
-			if (SOUND_IOCTL(mixer_fd, MIXER_READ(ii), &tmp) == -1)
-				gtk_exit(EREADMIX);
-			right = tmp >> 8;
-			left = tmp & 0xFF;
-			max = (left > right) ? left : right;
-			/* See rangewidgets example. */
-			adjustment[ii] = GTK_ADJUSTMENT(gtk_adjustment_new(((right + left) / 2), 0, MAXLEVEL, 1, 1, 0));
-			if ((1 << ii) & stereodevs) {
-				if (tmp) {
-					balset = (left > right) ? (MAXLEVEL / 2) * right / max : MAXLEVEL - ((MAXLEVEL / 2) * left / max);
-				} else {
-					balset = (MAXLEVEL / 2);
-				}
-				balance[ii] = GTK_ADJUSTMENT(gtk_adjustment_new(balset, 0, MAXLEVEL, 1, 1, 0));
-				balcallback[ii] = gtk_signal_connect_object(GTK_OBJECT(balance[ii]), "value_changed", GTK_SIGNAL_FUNC(AdjustBalanceGTK), (gpointer) ii);
-				baltracks[ii] = gtk_hscale_new(balance[ii]);
-				gtk_scale_set_value_pos(GTK_SCALE(baltracks[ii]), GTK_POS_RIGHT);
-				gtk_scale_set_digits(GTK_SCALE(baltracks[ii]), 0);
-#ifdef HAVE_GTK
-				gtk_widget_set_size_request(GTK_WIDGET (baltracks[ii]), 84, -1);
-#endif
-				gtk_widget_show(baltracks[ii]);
-				gtk_range_set_update_policy(GTK_RANGE(baltracks[ii]), GTK_UPDATE_CONTINUOUS);
-			}
-			lvlcallback[ii] = gtk_signal_connect_object(GTK_OBJECT(adjustment[ii]), "value_changed", GTK_SIGNAL_FUNC(AdjustLevelGTK), (gpointer) ii);
-			levels[ii] = gtk_hscale_new(GTK_ADJUSTMENT(adjustment[ii]));
-			gtk_signal_connect_object(GTK_OBJECT(viewmenuitems[ii]), "activate", GTK_SIGNAL_FUNC(HideShowChannelGTK), (gpointer) ii);
-			gtk_scale_set_value_pos(GTK_SCALE(levels[ii]), GTK_POS_LEFT);
-			gtk_scale_set_digits(GTK_SCALE(levels[ii]), 0);
-#ifdef HAVE_GTK
-			gtk_widget_set_size_request(GTK_WIDGET (levels[ii]), 84, -1);
-#endif
-			gtk_widget_show(GTK_WIDGET(levels[ii]));
-			gtk_range_set_update_policy(GTK_RANGE(levels[ii]), GTK_UPDATE_CONTINUOUS);
-		}
-		if ((1 << ii) & recmask) {
-			colormap = gtk_widget_get_colormap(window);
-			record_pixmap = gdk_pixmap_colormap_create_from_xpm_d(window->window, colormap, &rmask, &style->bg[GTK_STATE_NORMAL], (gchar **) record_xpm);
-			play_pixmap = gdk_pixmap_colormap_create_from_xpm_d(window->window, colormap, &pmask, &style->bg[GTK_STATE_NORMAL], (gchar **) play_xpm);
-			ErrorExitWarn(ReadRecSrc(), 'e');
-			/* a pixmap widget to contain the pixmap */
-			pixmapwid[ii] = gtk_pixmap_new((1 << ii) & recsrc ? record_pixmap : play_pixmap, (1 << ii) & recsrc ? rmask : pmask);
-			gtk_widget_show(pixmapwid[ii]);
-			rpbuttons[ii] = GTK_TOGGLE_BUTTON(gtk_toggle_button_new());
-			gtk_container_add(GTK_CONTAINER(rpbuttons[ii]), pixmapwid[ii]);
-			gtk_widget_show(GTK_WIDGET(rpbuttons[ii]));
-			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rpbuttons[ii]), (1 << ii) & recsrc ? TRUE : FALSE);
-			rpcallback[ii] = gtk_signal_connect_object(GTK_OBJECT(rpbuttons[ii]), "clicked", GTK_SIGNAL_FUNC(SwitchRecordPlay), (gpointer) ii);
-		}
-	}
-	gtk_signal_connect_object(GTK_OBJECT(viewmenuitems[SOUND_MIXER_NRDEVICES]), "activate", GTK_SIGNAL_FUNC(HideShowMenuGTK), GTK_OBJECT(menubar));
-	gtk_signal_connect_object(GTK_OBJECT(viewmenuitems[SOUND_MIXER_NRDEVICES + 1]), "activate", GTK_SIGNAL_FUNC(HideShowBalancesGTK), 0);
-	gtk_signal_connect_object(GTK_OBJECT(viewmenuitems[SOUND_MIXER_NRDEVICES + 2]), "activate", GTK_SIGNAL_FUNC(HideShowNumbersGTK), 0);
-	control_box = gtk_hbox_new(FALSE, BORDER);
-	gtk_widget_show(control_box);
-	labelrec = gtk_label_new(LOCAL_TEXT("Rec"));
-	gtk_widget_show(labelrec);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelrec, 0, 1, 0, 1);
-	labellevel = gtk_label_new(LOCAL_TEXT("Level"));
-	gtk_widget_show(labellevel);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labellevel, 2, 3, 0, 1);
-	labelbalance = gtk_label_new(LOCAL_TEXT("Balance"));
-	gtk_widget_show(labelbalance);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelbalance, 6, 7, 0, 1);
-	y = 0;
-	for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-		if ((1 << ii) & (devmask | recmask)) {
-			if ((1 << ii) & recmask)
-				gtk_table_attach_defaults(GTK_TABLE(maintable), GTK_WIDGET(rpbuttons[ii]), 0, 1, y + 1, y + 2);
-			channellabel[ii] = gtk_label_new(LOCAL_TEXT(dev_label[ii]));
-			gtk_widget_show(channellabel[ii]);
-			gtk_table_attach_defaults(GTK_TABLE(maintable), channellabel[ii], 4, 5, y + 1, y + 2);
-			if ((1 << ii) & devmask) {
-				gtk_table_attach_defaults(GTK_TABLE(maintable), GTK_WIDGET(levels[ii]), 1, 4, y + 1, y + 2);
-				if ((1 << ii) & stereodevs)
-					gtk_table_attach_defaults(GTK_TABLE(maintable), baltracks[ii], 5, 8, y + 1, y + 2);
-			}
-			y++;
-		}
-	}
-	labelleft = gtk_label_new(LOCAL_TEXT("L"));
-	gtk_widget_show(labelleft);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelleft, 5, 6, y + 1, y + 2);
-	labelright = gtk_label_new(LOCAL_TEXT("R"));
-	gtk_widget_show(labelright);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelright, 7, 8, y + 1, y + 2);
-	labelzero = gtk_label_new(LOCAL_TEXT("0"));
-	gtk_widget_show(labelzero);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelzero, 1, 2, y + 1, y + 2);
-	labelcent = gtk_label_new(LOCAL_TEXT("100"));
-	gtk_widget_show(labelcent);
-	gtk_table_attach_defaults(GTK_TABLE(maintable), labelcent, 3, 4, y + 1, y + 2);
-	gtk_box_pack_start(GTK_BOX(mainbox), control_box, TRUE, TRUE, 0);
-	gtk_widget_realize(window);
-	icon_pixmap = gdk_pixmap_create_from_xpm_d(window->window, &bitmap, &style->bg[GTK_STATE_NORMAL], aumix_xpm);
-	gdk_window_set_icon(window->window, NULL, icon_pixmap, bitmap);
-	gtk_widget_show(window);
-	signal(SIGALRM, AumixSignalHandler);
-	alarm(REFRESH_PERIOD);
-}
-
-void            CloseScreenGTK(void)
-{
-	gtk_exit(0);
-	return;
-}
-
-void            WakeUpGTK(void)
-{
-	/* things to do on SIGALRM */
-	int             max, balset, ii, tmp, left, right;
-	for (ii = 0; ii < SOUND_MIXER_NRDEVICES; ii++) {
-		if ((1 << ii) & devmask) {
-			/* Try to read mixer. */
-			if (SOUND_IOCTL(mixer_fd, MIXER_READ(ii), &tmp) == -1)
-				gtk_exit(EREADMIX);
-			right = tmp >> 8;
-			left = tmp & 0xFF;
-			gtk_signal_handler_block(GTK_OBJECT(adjustment[ii]), lvlcallback[ii]);
-			gtk_adjustment_set_value(adjustment[ii], (right + left) / 2);
-			gtk_signal_handler_unblock(GTK_OBJECT(adjustment[ii]), lvlcallback[ii]);
-			max = (left > right) ? left : right;
-			if ((1 << ii) & stereodevs) {
-				if (tmp) {
-					balset = (left > right) ? (MAXLEVEL / 2) * right / max : MAXLEVEL - ((MAXLEVEL / 2) * left / max);
-				} else {
-					balset = (MAXLEVEL / 2);
-				}
-				gtk_signal_handler_block(GTK_OBJECT(balance[ii]), balcallback[ii]);
-				gtk_adjustment_set_value(balance[ii], balset);
-				gtk_signal_handler_unblock(GTK_OBJECT(balance[ii]), balcallback[ii]);
-			}
-		}
-		if ((1 << ii) & recmask) {
-			gtk_signal_handler_block(GTK_OBJECT(rpbuttons[ii]), rpcallback[ii]);
-			ErrorExitWarn(ReadRecSrc(), 'e');
-			gtk_widget_show(pixmapwid[ii]);
-			gtk_pixmap_set(GTK_PIXMAP(pixmapwid[ii]), (1 << ii) & recsrc ? record_pixmap : play_pixmap, NULL);
-			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rpbuttons[ii]), (1 << ii) & recsrc ? TRUE : FALSE);
-			gtk_widget_show(pixmapwid[ii]);
-			gtk_signal_handler_unblock(GTK_OBJECT(rpbuttons[ii]), rpcallback[ii]);
-		}
-	}
-}
-
-void            FileOKLoad(GtkWidget * w, GtkFileSelection * fs)
-/* Get the selected filename and copy it into the global save_filename. */
-{
-	save_filename = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs)));
-	ErrorExitWarn(LoadSettings(), 'w');
-}
-
-void            FileOKSave(GtkWidget * w, GtkFileSelection * fs)
-/* Get the selected filename and copy it into the global save_filename. */
-{
-	save_filename = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs)));
-	ErrorExitWarn(SaveSettings(), 'e');
-}
-
-void            LoadDialog(void)
-{
-	GtkWidget      *filew;
-	/* Create a new file selection widget */
-	filew = gtk_file_selection_new("File selection");
-	gtk_signal_connect(GTK_OBJECT(filew), "destroy", (GtkSignalFunc) gtk_widget_destroy, &filew);
-	/* Connect the ok_button to FileOKLoad function */
-	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button), "clicked", (GtkSignalFunc) FileOKLoad, filew);
-	/* Connect the cancel_button to destroy the widget */
-	gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(filew)->cancel_button), "clicked", (GtkSignalFunc) gtk_widget_destroy, GTK_OBJECT(filew));
-	/* Let's set the filename, as a default. */
-	gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew), ".aumixrc");
-	gtk_widget_show(filew);
-}
-
-void            SaveDialog(void)
-{
-	GtkWidget      *filew;
-	/* Create a new file selection widget */
-	filew = gtk_file_selection_new("File selection");
-	gtk_signal_connect(GTK_OBJECT(filew), "destroy", (GtkSignalFunc) gtk_widget_destroy, &filew);
-	/* Connect the ok_button to FileOKSave function */
-	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button), "clicked", (GtkSignalFunc) FileOKSave, filew);
-	/* Connect the cancel_button to destroy the widget */
-	gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(filew)->cancel_button), "clicked", (GtkSignalFunc) gtk_widget_destroy, GTK_OBJECT(filew));
-	/* Let's set the filename, as a default. */
-	gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew), ".aumixrc");
-	gtk_widget_show(filew);
-}
-#endif				/* HAVE_GTK1 || HAVE_GTK */
diff -NarU5 aumix-2.8.orig/src/gtk.h aumix-2.8/src/gtk.h
--- aumix-2.8.orig/src/gtk.h	2002-03-17 20:26:15.000000000 -0500
+++ aumix-2.8/src/gtk.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,43 +0,0 @@
-/* $Aumix: aumix/src/gtk.h,v 1.2 2002/03/18 01:26:15 trevor Exp $ */
-
-#ifndef AUMIX_GTK_H
-#define AUMIX_GTK_H
-#define BORDER 2
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <gtk/gtk.h>
-
-GdkBitmap      *rmask;
-GdkBitmap      *pmask;
-GtkWidget      *pixmapwid[SOUND_MIXER_NRDEVICES];
-GdkPixmap      *record_pixmap;
-GdkPixmap      *play_pixmap;
-GtkAdjustment  *adjustment[SOUND_MIXER_NRDEVICES];
-GtkAdjustment  *balance[SOUND_MIXER_NRDEVICES];
-GtkWidget      *baltracks[SOUND_MIXER_NRDEVICES];
-GtkWidget      *channellabel[SOUND_MIXER_NRDEVICES];
-GtkToggleButton *rpbuttons[SOUND_MIXER_NRDEVICES];
-GtkWidget      *levels[SOUND_MIXER_NRDEVICES];
-GtkWidget      *maintable;
-gint            balcallback[SOUND_MIXER_NRDEVICES];
-gint            lvlcallback[SOUND_MIXER_NRDEVICES];
-gint            rpcallback[SOUND_MIXER_NRDEVICES];
-gboolean        menuvisible, balancevisible, valuesvisible, visible[SOUND_MIXER_NRDEVICES];
-GtkWidget      *labelzero, *labelcent, *labelleft, *labelright, *labelbalance;
-void            WakeUpGTK(void);
-void            HideShowBalancesGTK(void);
-void            HideShowNumbersGTK(void);
-void            HideShowMenuGTK(GtkWidget * menu);
-void            HideShowChannelGTK(int device);
-void            SaveSettingsGTK(void);
-void            LoadSettingsGTK(void);
-void            AdjustLevelGTK(int device);
-void            AdjustBalanceGTK(int device);
-void            InitScreenGTK(void);
-void            CloseScreenGTK(void);
-void            FileOKLoad(GtkWidget * w, GtkFileSelection * fs);
-void            FileOKSave(GtkWidget * w, GtkFileSelection * fs);
-void            LoadDialog(void);
-void            SaveDialog(void);
-void            get_main_menu(GtkWidget * window, GtkWidget ** menubar);
-#endif				/* AUMIX_GTK_H */
diff -NarU5 aumix-2.8.orig/src/interactive.c aumix-2.8/src/interactive.c
--- aumix-2.8.orig/src/interactive.c	2002-10-29 16:27:52.000000000 -0500
+++ aumix-2.8/src/interactive.c	2007-03-20 16:26:05.000000000 -0400
@@ -17,55 +17,33 @@
  * aumix; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
  * Suite 330, Boston, MA 02111-1307, USA.
  */
 
 #include "common.h"
-#if defined (HAVE_CURSES) || defined (HAVE_GTK) || defined (HAVE_GTK1)
+#if defined (HAVE_CURSES)
 #include "interactive.h"
-#ifdef HAVE_CURSES
 #include "curses.h"
-#endif				/* HAVE_CURSES */
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-#include "gtk.h"
-#endif				/* HAVE_GTK || HAVE_GTK1 */
 
 void            AumixSignalHandler(int signal_number)
 {
 /* Handle SIGALRM. */
 	signal(SIGALRM, AumixSignalHandler);	/* Reset the signal handler. */
-#ifdef HAVE_CURSES	
 	if (interactive == IN_CURSES)
 		WakeUpCurses();
-#endif
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-	if (interactive == IN_GTK)
-		WakeUpGTK();
-#endif	
 	alarm(REFRESH_PERIOD);
 }
 
 void            InitScreen(void)
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		InitScreenCurses();
-#endif				/* HAVE_CURSES */
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-	if (interactive == IN_GTK)
-		InitScreenGTK();
-#endif				/* HAVE_GTK */
 }
 
 void            KeysBox(void)
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		KeysBoxCurses();
-#endif				/* HAVE_CURSES */
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-/*      if (interactive == IN_GTK) KeysBoxGTK(); */
-#endif				/* HAVE_GTK || HAVE_GTK1 */
 }
 
 void            RefreshAllSettings(void)
 {
 	int             dev;
@@ -157,14 +135,12 @@
 			UnmuteOne(device);
 		}
 	}
 	RefreshAllSettings();
 	mutestate = newstate;
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		ShowMutingCurses();
-#endif				/* HAVE_CURSES */
 	mutestate = newstate;
 }
 
 void            ToggleMuting(void)
 /* Switch between no muting and global muting; do nothing if soloing (MUTE_ONLY). */
@@ -244,14 +220,12 @@
 }
 
 void            DrawLevelBalMode(int dev, int mode)
 /* arrow to show whether keyboard commands will adjust level or balance */
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		DrawLevelBalModeCurses(dev, mode);
-#endif				/* HAVE_CURSES */
 }
 
 void            AdjustLevel(int dev, int incr, int setlevel)
 /*
  *  dev: device to adjust
@@ -294,23 +268,19 @@
 	DrawLevel(dev);
 }
 
 void            DrawLevel(int dev)
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		DrawLevelCurses(dev);
-#endif				/* HAVE_CURSES */
 }
 
 void            EraseLevel(int dev)
 /* Redraw level track. */
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		EraseLevelCurses(dev);
-#endif				/* HAVE_CURSES */
 }
 
 void            AdjustBalance(int dev, int incr, int setabs)
 /*
  *  dev: device to adjust
@@ -350,14 +320,12 @@
 }
 
 void            RedrawBalance(int dev)
 /* Redraw balance track. */
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		RedrawBalanceCurses(dev);
-#endif				/* HAVE_CURSES */
 }
 
 void            SwitchRecordPlay(int dev)
 {
 	/* Toggle record/play. */
@@ -374,26 +342,18 @@
 	}
 }
 
 void            DrawRecordPlay(int dev)
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		DrawRecordPlayCurses(dev);
-#endif				/* HAVE_CURSES */
 }
 
 void            CloseScreen(void)
 {
-#ifdef HAVE_CURSES
 	if (interactive == IN_CURSES)
 		CloseScreenCurses();
-#endif				/* HAVE_CURSES */
-#if defined (HAVE_GTK) || defined (HAVE_GTK1)
-	if (interactive == IN_GTK)
-		CloseScreenGTK();
-#endif				/* HAVE_GTK || HAVE_GTK1 */
 }
 
 void            ReadInteractiveKeys(void)
 {
 	chark = strdup(LOCAL_TEXT("k"));
@@ -402,6 +362,6 @@
 	charo = strdup(LOCAL_TEXT("o"));
 	charq = strdup(LOCAL_TEXT("q"));
 	chars = strdup(LOCAL_TEXT("s"));
 	charu = strdup(LOCAL_TEXT("u"));
 }
-#endif				/* HAVE_CURSES || HAVE_GTK || HAVE_GTK1 */
+#endif				/* HAVE_CURSES */
diff -NarU5 aumix-2.8.orig/src/Makefile.am aumix-2.8/src/Makefile.am
--- aumix-2.8.orig/src/Makefile.am	2002-03-18 20:09:17.000000000 -0500
+++ aumix-2.8/src/Makefile.am	2007-03-20 16:26:05.000000000 -0400
@@ -1,17 +1,17 @@
 # $Aumix: aumix/src/Makefile.am,v 1.2 2002/03/19 01:09:17 trevor Exp $
 bin_PROGRAMS	= aumix
 if CURSES
 bin_SCRIPTS	= mute xaumix
 endif
-aumix_SOURCES	= common.c curses.c dummy.c gpm-xterm.c gtk.c interactive.c \
-		mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h  \
+aumix_SOURCES	= common.c curses.c dummy.c interactive.c \
+		mouse.c common.h curses.h interactive.h  \
 		mouse.h play.xpm record.xpm
 localedir	= $(datadir)/locale
 INCLUDES	= -I../intl -DLOCALEDIR=\"$(localedir)\" -I at includedir@
-CFLAGS		= @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+CFLAGS		= @CFLAGS@ @GLIB_CFLAGS@
 LDADD		= -L at libdir@
-LIBS		= @LIBS@ @GTK_LIBS@ @INTLLIBS@
+LIBS		= @LIBS@ @INTLLIBS@
 DEFS		= @DEFS@
 
 curses.o: curses.c
 	$(COMPILE) -DDATADIR=\"$(datadir)/aumix\" -c $<
diff -NarU5 aumix-2.8.orig/src/Makefile.in aumix-2.8/src/Makefile.in
--- aumix-2.8.orig/src/Makefile.in	2002-11-24 20:35:45.000000000 -0500
+++ aumix-2.8/src/Makefile.in	2007-03-20 16:26:05.000000000 -0400
@@ -66,13 +66,10 @@
 CURSLIB = @CURSLIB@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
 GT_NO = @GT_NO@
 GT_YES = @GT_YES@
 HAVE_NLS = @HAVE_NLS@
 INSTOBJEXT = @INSTOBJEXT@
 INTLLIBS = @INTLLIBS@
@@ -86,26 +83,26 @@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 
 bin_PROGRAMS = aumix
 @CURSES_TRUE at bin_SCRIPTS = mute xaumix
-aumix_SOURCES = common.c curses.c dummy.c gpm-xterm.c gtk.c interactive.c 		mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h  		mouse.h play.xpm record.xpm
+aumix_SOURCES = common.c curses.c dummy.c interactive.c mouse.c common.h curses.h interactive.h mouse.h play.xpm record.xpm
 
 localedir = $(datadir)/locale
 INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" -I at includedir@
-CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
 LDADD = -L at libdir@
-LIBS = @LIBS@ @GTK_LIBS@ @INTLLIBS@
+LIBS = @LIBS@ @INTLLIBS@
 DEFS = @DEFS@
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
 PROGRAMS =  $(bin_PROGRAMS)
 
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
-aumix_OBJECTS =  common.o curses.o dummy.o gpm-xterm.o gtk.o \
+aumix_OBJECTS =  common.o curses.o dummy.o \
 interactive.o mouse.o
 aumix_LDADD = $(LDADD)
 aumix_DEPENDENCIES = 
 aumix_LDFLAGS = 
 SCRIPTS =  $(bin_SCRIPTS)
diff -NarU5 aumix-2.8.orig/src/mouse.c aumix-2.8/src/mouse.c
--- aumix-2.8.orig/src/mouse.c	2002-05-07 04:41:38.000000000 -0400
+++ aumix-2.8/src/mouse.c	2007-03-20 17:37:30.000000000 -0400
@@ -17,144 +17,21 @@
  * Suite 330, Boston, MA 02111-1307, USA.
  */
 
 #include "common.h"
 #if HAVE_CURSES
-#if HAVE_SYSMOUSE
-#if HAVE_SYS_CONSIO_H
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
-#endif	/* HAVE_SYS_CONSIO_H */
-#include <errno.h>
-#endif				/* HAVE_SYSMOUSE */
 #include "interactive.h"
 #include "curses.h"
 #include "mouse.h"
-#if HAVE_SYSMOUSE
-extern void     SysmouseHandler(int sig);
-extern int      Sysm_Wgetch(WINDOW * win);
-
-static int      xpos, ypos, buttons;
-static int      cwidth = 8, cheight = 16;
-#endif				/* HAVE_SYSMOUSE */
-
-void            StartMouse(void)
-{
-	Gpm_Connect     conn;
-#if HAVE_SYSMOUSE
-	mouse_info_t    mi;
-	video_info_t    vi;
-	int             fd = STDIN_FILENO;
-#ifndef FBIO_GETMODE		/* FreeBSD 3.x */
-#define FBIO_GETMODE	CONS_GET
-#define FBIO_MODEINFO	CONS_MODEINFO
-#endif				/* HAVE_SYSMOUSE */
-	if (ioctl(fd, FBIO_GETMODE, &vi.vi_mode) != -1 && ioctl(fd, FBIO_MODEINFO, &vi) != -1) {
-		cwidth = vi.vi_cwidth;
-		cheight = vi.vi_cheight;
-	}
-	/* Have sysmouse send us SIGUSR2 for mouse state changes. */
-	signal(SIGUSR2, SIG_IGN);
-	mi.operation = MOUSE_MODE;
-	mi.u.mode.mode = 0;
-	mi.u.mode.signal = SIGUSR2;
-	/*
-	 * If successful, register signal handler and our wgetch() replacement.
-	 */
-	if (ioctl(fd, CONS_MOUSECTL, &mi) != -1) {
-		signal(SIGUSR2, SysmouseHandler);
-		mi.operation = MOUSE_SHOW;
-		ioctl(fd, CONS_MOUSECTL, &mi);
-		Wgetch = Sysm_Wgetch;
-		return;
-	}
-#endif				/* HAVE_SYSMOUSE */
-	conn.eventMask = (unsigned short) ~0;
-	conn.defaultMask = GPM_MOVE | GPM_HARD;
-	conn.maxMod = 0;
-	conn.minMod = 0;
-	/* don't check for < 0, gpm-xterm returns -2 */
-	if (Gpm_Open(&conn, 0) != -1) {
-		gpm_handler = MouseHandler;
-		Wgetch = Gpm_Wgetch;
-	} else
-		Wgetch = wgetch;
-#if HAVE_GETMOUSE
-	/* enable ncurses mouse reporting */
-#define MMASK	(BUTTON1_PRESSED | BUTTON1_CLICKED | \
-		 BUTTON2_PRESSED | BUTTON2_CLICKED)
-	(void) mousemask(MMASK, (mmask_t *) NULL);
-#endif				/* HAVE_GETMOUSE */
-}
-
-int             MouseHandler(Gpm_Event * event, void *data)
-{
-	if ((event->type & GPM_DOWN) || (event->type & GPM_DRAG)) {
-		if (in_keysbox)
-			return ' ';	/* Simulate keyboard event. */
-		else
-			DoMouse(event->x - 1, event->y - 1, GPM_TO_DOMOUSE(event->buttons));
-	}
-	return 0;
-}
-#if HAVE_SYSMOUSE
-/*
- * Signal handler for SIGUSR2: Retrieves mouse coordinates; converts pixels
- * to rows and columns.
- */
-void            SysmouseHandler(int sig)
-{
-	int             fd = STDIN_FILENO;
-	struct mouse_info mi;
-	mi.operation = MOUSE_GETINFO;
-	if (ioctl(fd, CONS_MOUSECTL, &mi) == -1)
-		return;
-	xpos = mi.u.data.x;
-	ypos = mi.u.data.y;
-	/* for cosmetic bug in syscons.c on FreeBSD 3.3/3.4 */
-	mi.operation = MOUSE_HIDE;
-	ioctl(fd, CONS_MOUSECTL, &mi);
-	mi.operation = MOUSE_SHOW;
-	ioctl(fd, CONS_MOUSECTL, &mi);
-	buttons = mi.u.data.buttons & 3;
-}
-/*
- * Wait in select() loop.  If interrupted, check for mouse button press and
- * construct a minimal gpm pseudo-event and call MouseHandler(). Otherwise
- * hand over to wgetch().
- */
-int             Sysm_Wgetch(WINDOW * win)
-{
-	fd_set          rfds;
-	Gpm_Event       event;
-	int             key;
-	FD_ZERO(&rfds);
-	FD_SET(STDIN_FILENO, &rfds);
-	while (select(STDIN_FILENO + 1, &rfds, (fd_set *) NULL, (fd_set *) NULL, (struct timeval *) NULL) <= 0) {
-		if (errno == EINTR && buttons) {
-			event.buttons = SYSMOUSE_TO_GPM(buttons);
-			event.x = xpos / cwidth + 1;
-			event.y = ypos / cheight + 1;
-			event.type = GPM_DOWN;
-			if ((key = MouseHandler(&event, (void *) NULL)) != 0)
-				return key;
-		}
-	}
-	return wgetch(win);
-}
-#endif				/* HAVE_SYSMOUSE */
 
 /* assumes upper left corner is (0, 0) */
 void            DoMouse(int x, int y, int b)
 {
 	int             dev_orig, mouse_dev, ii, jj;
 	if ((x < XOFFSET + menu_width) && (b & BUTTON1)) {	/* menu */
 		switch (y) {
 		case 2:	/* quit */
-			Gpm_Close();
 			close(mixer_fd);
 			CloseScreen();
 			exit(EXIT_SUCCESS);
 		case 3:	/* load */
 			LoadSettings();
diff -NarU5 aumix-2.8.orig/src/mouse.h aumix-2.8/src/mouse.h
--- aumix-2.8.orig/src/mouse.h	2002-03-28 04:37:27.000000000 -0500
+++ aumix-2.8/src/mouse.h	2007-03-20 16:26:05.000000000 -0400
@@ -17,30 +17,17 @@
  * Suite 330, Boston, MA 02111-1307, USA.
  */
 
 #ifndef AUMIX_MOUSE_H
 #define AUMIX_MOUSE_H
-#if HAVE_LIBGPM
-#include <gpm.h>
-#else
-#include "gpm-xterm.h"
-#endif				/* HAVE_LIBGPM */
 
 /* buttons for DoMouse() */
 #define BUTTON1 0x1
 #define BUTTON2 0x2
 
 /* convert mouse button representations */
-#define SYSMOUSE_TO_GPM(b) \
-	((((b) & 1) ? GPM_B_LEFT : 0) | \
-	 (((b) & 2) ? GPM_B_MIDDLE : 0))
-#define GPM_TO_DOMOUSE(b) \
-	((((b) & GPM_B_LEFT) ? BUTTON1 : 0) | \
-         (((b) & GPM_B_MIDDLE) ? BUTTON2 : 0))
 #define NCURSES_TO_DOMOUSE(b) \
 	((((b) & (BUTTON1_PRESSED | BUTTON1_CLICKED)) ? BUTTON1 : 0) | \
 	 (((b) & (BUTTON2_PRESSED | BUTTON2_CLICKED)) ? BUTTON2 : 0))
 
 extern void     DoMouse(int x, int y, int b);
-extern int      MouseHandler(Gpm_Event * event, void *data);
-extern void     StartMouse(void);
 #endif				/* AUMIX_MOUSE_H */


Index: aumix.spec
===================================================================
RCS file: /cvs/extras/rpms/aumix/FC-6/aumix.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- aumix.spec	17 Mar 2007 17:17:53 -0000	1.4
+++ aumix.spec	21 Mar 2007 15:01:02 -0000	1.5
@@ -1,6 +1,6 @@
 Name: aumix
 Version: 2.8
-Release: 13%{?dist}
+Release: 14%{?dist}
 Summary: Audio mixer based on ncurses
 License: GPL
 Group: Applications/Multimedia
@@ -11,6 +11,7 @@
 Patch2:  aumix-fix-cursor-color-on-exit.patch
 Patch3:  aumix-fix-crackrock.patch
 Patch4:  aumix-2.8-bug-115869.patch
+Patch5:  curses-cleanup.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: gettext ncurses-devel
 
@@ -24,6 +25,7 @@
 %patch2 -p0
 %patch3 -p1
 %patch4 -p0
+%patch5 -p1
 
 %build
 %configure --without-gtk --without-gtk1
@@ -48,6 +50,10 @@
 %{_datadir}/aumix
 
 %changelog
+* Tue Mar 20 2007 Gabriel L. Somlo <somlo at cmu.edu> 2.8-14
+- curses-cleanup.patch removes "cruft" such as gtk and system/console mouse
+- more importantly, it fixes bugzilla ticket # 232828
+
 * Sat Mar 17 2007 Gabriel L. Somlo <somlo at cmu.edu> 2.8-13
 - bumped rel. to 13, to be ahead of latest core (unreleased) cvs
 




More information about the fedora-extras-commits mailing list