1993-10-23 - version 0.1 1993-11-28 - version 0.2 - doesn't assume existence of any device (volume, bass, etc) - some minor bug fixes - some bug fixes to work correctly with SB Pro - should now work correctly when multiple copies are run simultaneously 1996-08-23 - version 1.0 - added command-line interface 1996-09-02 - version 1.1 - fewer colors and no border to simplify full-screen interface - knobs are highlighted as you move to them, then brighten and leave a trail behind when you adjust them - horizontal knobs drawn with same characters as vertical ones - vertical controls spaced more closely so they fit in 80 columns - use of "<" and ">" for cursor motion, and "q" to quit program - use of tab, "+" and "-" keys shown on help line - added "h" option for command line 1996-09-07 - version 1.2 - two banks of horizontal controls, no special treatment of volume, bass, and treble (layout idea borrowed from CAM), so labels don't have to be jammed together - record/play indicators now show the letters "R" and "P" rather than just a red or green square, so they should be more self-explanatory and more monochrome-friendly - added use of "[" and "]" keys to set controls to 0% or 100% 1996-09-13 - version 1.3 - added gpm mouse support by incorporating code from rmev.c by Alessandro Rubini (packaged with gpm) - added Quit button for use with mouse - changed color of controls from white to cyan/green so the gpm cursor would be more visible - added keys "Q" and ctrl-D to quit from program - removed use of two different graphic characters to show controls in use or not in use 1996-12-02 - version 1.4 - added -b, -t, -s, and -m options (K.H. and D.F.) - moved printf statements after the ioctl call, since this makes more sense if the ioctl fails (K.H.) - changed layout to allow for balance controls, and added them (T.J.) - eliminated "level" array: levels are now read by ioctl so changes by other processes system-wide will be properly reflected (T.J.) - conditional compilation: GPM now optional, and interactive mode can be disabled entirely (T.J.) 1996-12-06 - version 1.5 - "q" options for command line to print settings without changing (J.S.) - command-line section modularized for compactness (T.J.) - widened controls in interactive mode for greater precision in setting and reading (T.J.) - balance controls get redrawn after levels adjusted (T.J.) - added command-line options for imix, PCM2, reclev, igain, ogain, line1, line2 and line3 (T.J.) 1996-12-15 - version 1.6 - ability to save settings to a file and load them in again - option to use a restricted character set in interactive mode, when IBM graphic characters are not available - support for second mixer - changed meaning of "<" and ">" keys (now same as Tab or Enter) - "," and "." function synonymously with "<" and ">" so users need not shift when using US keyboard - prettified device names removed, to save space and to allow for future changes to the sound driver - added labels for banks of level and balance controls - record/play information updated more often - record/play information gets printed on query 1996-12-17 - version 1.6.1 - fixed problem with conditional compilation 1997-05-30 - version 1.7 - more efficient code for handling options (J.S.) - in full-screen mode, balance/level legend no longer so dim (H.S.) - try to load settings from alternate file if ~/.aumixrc can't be opened (T.J.) - continue gracefully if settings file refers to nonexistent devices (T.J.) - don't set balance controls to center when adjusting levels from the keyboard (work is still needed here) (T.J.) 1997-09-24 - use ACS_ macros for special characters (R.C.) - don't use A_ALTCHARSET (R.C.) - build with GNU autoconf (from example by A.R.) - use fputs() in Usage() (T.J.) - use bold attribute less (T.J.) - don't leave cursor on balance controls when adjusting levels (T.J.) 1997-09-28 - reorganize documentation to be more GNUish (T.J.) - use automake (T.J.) - change layout for new sound driver (T.J.) - change LoadSettings for new sound driver (T.J.) 1997-10-07 - About menu item for diagnostic info (T.J.) - Keys menu item to save space on main screen (T.J.) - position cursor better for xterm (T.J.) - change routines for loading and saving settings, for new sound driver (T.J.) - don't use ACS_ macros, just use ASCII characters (T.J.) 1997-10-11 - added muting function (T.J.) - move cursor back by a space when setting record/play, levels or balance (T.J.) 1997-10-12 - version 1.8 - update man page and README (T.J.) 1997-12-27 - small fixes to muting function (T.J.) - declare optarg so as to compile cleanly with gcc -ansi -pedantic (T.J.) - restore getch() as an alternative to Gpm_Getch() and add some #ifdef GPM statements (T.J.) - now compiles cleanly under FreeBSD 2.2.5 - print usage info along with "error opening /dev/mixer" message (T.J.) - added version[] and copyright[] arrays for the "what" utility (T.J.) - removed AboutBox() until it has more useful info to display (T.J.) 1997-12-28 - only display the mixer channels that really exist (T.J.) - fixed a bug where invalid mixer channels could be passed from MouseHandler() and AdjustBalance() would try to adjust them (T.J.) - volume now gets updated when adjusting balance with the mouse (T.J.) - split DrawLevel() out of AdjustLevel() (T.J.) - show left and right levels with "L" and "R" -- looks a bit busy (T.J.) - removed DrawHandles() (T.J.) - started work on making level controls wider and balance controls narrower (T.J.) - automatically refresh display of channels another program has changed (T.J.) 1998-01-26 - code contributed by Alessandro Rubini to simulate ncurses' halfdelay mode with Gpm_Getch() (A.R.) - fixed two problems in muting function (one caused by new RefreshNewSettings()) (T.J.) 1998-02-04 - tidied up MouseHandler() (T.J.) - moved ncurses and gpm routines to separate header files (T.J.) 1998-07-12 - version 1.9 - got the separate files to compile (T.J.) 1998-07-19 - version 1.9.1 - fixed problem with "aumix -q" not giving output (J.D.) - fixed problem in adjusting levels (H.K.) - removed the hack for keeping controls from getting stuck (T.J.) - tidied up comments in gpm-xterm.h (T.J.) - updated AUTHORS file (T.J.) - fixed problem with -L option not initializing mixer (T.J.) 1998-07-19 - version 1.9.2 - removed Redraw function (T.J.) - widened level controls (T.J.) - KeysBox fixed, but only when using gpm (T.J.) 1998-07-20 - version 1.9.3 - corrected problem in moptindx that was causing wrong channels to be adjusted when using command-line options (P.C.) - write out words in usage text instead of abbreviating (T.J.) - minor updates to man page (T.J.) 1998-07-26 - version 1.9.4 - removed some extra characters from version[] (T.J.) - changed LoadSettings() so it can read comma- or semicolon-delimited rc files (G.B.) - fixed bug where mixer wasn't initialized when running with the -S option only (G.B.) 1998-08-05 - version 1.10 - in KeysBox(), use getch() when not compiling with gpm (J.A.) - add #ifdef GPM to aumix_gpm.c (J.A.) - "L" and "R" markings in different color than "O" in interactive screen (T.J.) - new configure.in largely generated by autoscan--shouldn't stumble on systems which have curses.h but not ncurses.h (T.J.) - changed #ifdef GPM and #ifdef NCURSES to #if HAVE_LIBGPM and #if HAVE_LIBNCURSES (T.J.) - remove colors from KeysBox() (T.J.) - added "R" and "P" options for toggling record/play from command line (T.J.) 1998-08-11 - version 1.11 - don't show usage on errors (T.J.) - kludged Makefile.in for people who don't have automake (T.J.) - LoadSettings(), SaveSettings(), InitMixer() and SetShowNoninter() changed from void to int, with return value used for error messages (G.B.) - printing of error messages moved from InitMixer() to new ExitIfError() (G.B.) - InitMixer() renamed to InitializeMixer() (T.J.) - new MixerStatus() function (G.B.) - new ReadWriteMixer() function (G.B.) - new OpenDefaultFile() function (G.B.) - minor addition to KeysBox() display (T.J.) 1998-08-11 - internationalization (A.M.) - text for the Polish language (A.M.) 1998-08-22 - version 1.12 - calling refresh() without initializing screen gives segfault--fixed (B.N.) - change getopt() string to avoid "option requires an argument -- S" error (D.R.) - remove some special cases from InitializeMixer() (T.J.) 1998-08-25 - rewrote internationalization (A.M.) - fixed -d option (A.M.) - print usage when called as "aumix -" or "aumix nonsense" (A.M.) 1998-08-26 - further fixes to -d option (was still giving segfault) (A.M.) - Inter() rewritten as ReadInteractiveKeys() (A.M.) - fixed ReadInteractiveKeys() when called as "aumix -some_good_options -I" (A.M.) 1998-08-30 - updated BUGS, TODO, and README (A.M.) - fixed problem with KeysBox() returning without waiting when gpm support is compiled in but program is run remotely (A.M.) - unmuting "hardware mute" in ALSA driver support (A.M.) - checking if alsa-lib is available automatically (A.M.) - gettext detection via configure script (A.M.) - added --without-gpm and --without-ncurses options to configure script (A.M.) - modifications for compiling without NLS and without ALSA (A.M.) - don't list -I option in usage screen when compiled without ncurses (A.M.) 1998-09-02 - use alsa-lib >= 0.1.0 (A.M.) 1998-09-05 - version 1.13 - tidy up a few typos (T.J.) - don't compile ReadWriteMixer() because it's not being used yet. (T.J.) 1998-09-10 - added German translation (J.T.) - use if rather than switch in ExitIfError() (J.T.) - added EXIT_SUCCESS and EXIT_FAILURE macros (J.T.) - reorganized, with new doc, intl, and src directories (J.T.) - revamped configuration system so "make dist" and versioning work (J.T.) - corrected compilation warnings (J.T.) 1998-10-04 - version 1.14 - added Makefile.manual for systems on which the automatic configuration system doesn't work (T.J.) - only #include <getopt.h> on Linux systems (T.J.) 1999-01-07 - version 1.14.1 - added Brazilian Portuguese (pt_BR) translation (A.C.) - added Spanish (es) translation (P.G.) 1999-01-30 - version 1.15 - tweaked to compile under NetBSD 1.3.3 with Makefile.manual (T.J.) - added ability to increment or decrement levels from command line (P.G.) - added Russian (ru) and Ukrainian (ua) translations (G.V.) - fixed "option requires an argument" bug (T.J.) 1999-02-05 - version 1.16 - added -f option to specify file for saving and loading settings (M.S.) - added aumix.spec file for Red Hat Linux (M.S.) 1999-02-06 - version 1.17 - added signal handler so periodic updates (in case another process adjusts the mixer) work (T.J.) 1999-02-19 - version 1.18 - fixed .po files broken by added text about new options (T.J.) - added ability to increment or decrement levels by a specified amount from the command line (P.G.) - cast PACKAGE to char * for textdomain() and bindtextdomain() (P.G.) 1999-02-20 - version 1.18.1 - renamed SignalHandler() to AumixSignalHandler() to avoid namespace conflict that could happen on Linux with libc 5 (E.W.) - reset signal after its handler has been called (E.W.) - in RefreshNewSettings(), move cursor out of way so it looks better in an xterm (T.J.) 1999-02-23 - version 1.18.2 - updates to Russian and Ukrainian .po files (G.V.) - Russian and Ukrainian translations in the .spec file (G.V.) - remove unnecessary cast to int of signal handler (E.H.) 1999-05-04 - version 1.18.3 - removed duplicate lines from po/POTFILES to avoid compilation error (T.J.) - added MAXLEVEL macro to replace magic numbers 49, 50 and 100 (T.J.) - added installation instructions for Red Hat Linux (T.J.) 1999-05-20 - version 1.18.4 - in configure.in, change "==" to "=" (P.G.) - in src/aumix_curses.c, sleep for 50 microseconds to disguise the Debian "potato" busy-waiting problem (T.J.) - add cast to char * on line 87 of src/aumix.c to please egcs (T.J.) - in ExitIfError use printf() rather than perror() so we don't print "Success" in error messages (T.J.) - in OpenDefaultFile(), don't close mixer_fd (fixes problem with trying to load in non-existent settings file in interactive mode) (T.J.) 1999-05-31 - version 1.19 - renamed Alsa_Anty_Mute() to Alsa_Unmute() (T.J.) - cosmetic touches to Makefile.manual (T.J.) - added "only" (solo) and "un-only" features (T.J.) - busy-waiting bug--misused timeout()--fixed properly (T.J.) - in aumix.h, include <string.h> instead of <strings.h> (T.J.) - removed unused fd_set in Inter() (T.J.) 1999-06-05 - version 1.20 - with timeout(-1), mouse does not work, so use timeout(1000) instead (V.K.) - add global current_dev to keep track of current device (T.J.) - add Undo (to undo all muting) to menu (T.J.) - fixed bug where command-line option to increase or decrease levels by a given amount would change them by one more unit than requested: for example "aumix -m+0" would increase microphone level by one (T.J.) - during inactivity, move the cursor out of the way of the menu (T.J.) 1999-06-08 - version 1.21 - added option to load color schemes from files (T.J.) - fixed bug in ExitIfError for errors in the range 2 to 11 (T.J.) 1999-06-10 - version 1.22 - digits 1 to 9 set level at 10% to 90% (T.J.) 1999-06-19 - version 1.22.1 - renamed aumix_gpm.c to aumix-gpm.c and similarly with aumix_curses.c and aumix_curses.h so they will be easier to type and easier to read when underlined (T.J.) - add return values back to MouseHandler() (T.J.) - set CFLAGS in Makefile.manual (T.J.) - in aumix-curses.c, #include <ctype.h> for tolower() (T.J.) - use = rather than == for assignment on that same line with tolower (T.J.) - in MixerStatus() and InitializeMixer() use macros rather than numbers for return values (T.J.) - use EFINDDEVICE instead of ENODEV to avoid namespace conflict (T.J.) - in ExitIfError(), avoid "Success" error messages (T.J.) 1999-10-04 - version 1.23 - more renamings: aumix-gpm.c to gpm.c, aumix-curses.c to curses.c, aumix-curses.h to curses.h, aumix.c to common.c, aumix.h to common.h, and schemes/ to data/ (T.J.) - new interactive.c and interactive.h files (T.J.) - added aumix.xpm icon (C.S.) - in configure.in, check for string.h instead of strings.h and only check once (T.J.) - don't treat it as an error when ioctls return values that are neither 0 nor -1 (R.S.) - added .indent.pro: we stylin'! (T.J.) - updated and prettified man page (T.J.) - changes to src/Makefile.in for FreeBSD--how to put them in Makefile.am? (C.P.) - untested attempt at compatibility with OpenBSD, based on looking at the patches to xmix and xmmix in the ports collection (T.J.) 1999-10-06 - version 1.23.1 - declare copyright and version strings as const static char to avoid a warning (P.S.) - in common.c, #include "interactive.h" (P.S.) - add one of the FreeBSD changes to src/Makefile.am (T.J.) 1999-10-26 - version 1.24 - rewrote InitColors to allow "-" to represent black as the background or white as the foreground (P.S.) - added miniature icon (P.S.) - added xaumix script for running aumix in a terminal emulator under X (P.S.) - have xaumix use "which" utility rather than checking hard-coded /usr/X11 path (T.J.) - have xaumix check for "konsole" terminal emulator (T.J.) 1999-10-31 - version 1.25 - find soundcard.h on BSDI (T.J.) - disable ALSA hardware muting, since it seems to have been removed from current ALSA drivers (T.J.) - when in ncurses mode, paint spaces at right of screen, to fill gaps by selection arrow and level controls (T.J.) - added Galician (gl_ES) translation (J.A.) - added src/interactive.c to po/POTFILES (J.A.) 1999-11-01 - version 1.25.1 - in po/Makefile.in.in, add --keyword=LOCAL_TEXT for .pot target (J.A.) - in xaumix, don't use hard-coded path to aumix (T.J.) - in xaumix, use double quotes so tests will work (C.W.) - in aclocal.m4, added stuff from GIMP (O.T.) - paint spaces at left of screen too (T.J.) - mention -C option in Usage() summary when compiled with ncurses (T.J.) 1999-11-03 - version 1.26 - updated Polish (pl) translation (P.C.) - in de, es, pt_BR, ru and ua translations, corrected names of rc files (T.J.) - in header files, replace some preprocessor directives with constants (T.J.) - in InitScreenCurses(), use loop instead of cookie cutter to print menu (T.J.) - replace magic numbers with R_P_WIDTH, LEVEL_WIDTH, ARROW_WIDTH, LABEL_WIDTH, and BALANCE_WIDTH constants (T.J.) - added src/interactive.c to po/POTFILES.in (J.A.) - adjust width of level track at startup, according to number of columns available (T.J.) - paint whole screen, except last line, with spaces (T.J.) 1999-11-09 - version 1.27 - added gettext_noop (P.C.) - updated Polish translation again (P.C.) - renamed INCREMENT to level_increment, BALANCE_INCREMENT to balance_increment, LEVEL_WIDTH to level_width, and BALANCE_WIDTH to balance_width (T.J.) - adjust width of balance tracks according to number of columns available (T.J.) - when left and right levels are the same, don't go through the motions of trying to display "L" and "R" on level tracks (P.S.) - use mnemonics for return values (T.J.) - read mixer before toggling record, for compatibility with ALSA 0.3.0 (D.S.) - cosmetic changes to comments in gpm-xterm.h (T.J.) 1999-11-13 - version 1.27.1 - really updated Polish translation (maintainer forgot to make change in version 1.27) (P.C.) - updated Galician translation (J.A.) - updated Spanish translation (J.A.) - rename po/gl_ES.po to po/gl.po (J.A.) - in doc/aumix.1, merge MAINTAINER section into BUGS (T.J.) - translate "amount" as "cantidad" and "mix monitor" as "monitor del mezclador" in po/es.po (T.J.) - attempt to update po/de.po, using Babel Fish (T.J.) - attempt to update po/ru.po, po/ua.po, and po/pt_BR.po, leaving text from recent changes untranslated (T.J.) - in po/gl.po, line up spaces in menu (T.J.) - find soundcard.h on Solaris (untested) (T.J.) 1999-11-19 - version 1.27.2 - change code for Ukrainian locale from ua to uk (P.S.) - in xaumix, comment out konsole, since it needs different options than xterm and it gives an error message (T.J.) - in xaumix, add comment about gnome-terminal (T.J.) - reimplement "which" in xaumix because standalone "which" utility can give different output than shell built-in, and "type -p" substitute gives different output in ksh versus bash (T.J.) - in xaumix, make sure IFS contains a tab, not spaces (C.W.) - in xaumix, remove unneeded double quotes around IFS stuff (C.W.) - in xaumix, don't use "which" to find aumix (R.R.) 1999-11-23 - version 1.27.3 - refresh screen when user presses control-L (C.W.) - use ncurses mv* functions (T.J.) - change declaration of copyright and version strings again (T.J.) - in LoadSettings(), don't do RefreshAllSettings() because it can cause a segfault (T.J.) 1999-11-24 - version 1.27.4 - in common.h, include <sys/time.h> once instead of twice (T.J.) - use "static int" instead of "const static int" (T.J.) - move gpm initialization from main() in common.c to StartGPM() in gpm.c (T.J.) - in KeysBoxCurses, change ncurses timeout to -1, to wait indefinitely for input (T.J.) - disable gpm while in KeysBoxCurses (T.J.) - put ReadWriteMixer() in #if 0 again (T.J.) - in main(), replace 0 with EXIT_SUCCESS as exit value (T.J.) - in KeysBoxCurses, use w_panel rather than w_keys (T.J.) - in MouseHandler(), use local mouse_dev instead of current_dev, to avoid segfault in Inter() (T.J.) - in MouseHandler(), use event->x instead of "temp" variable (T.J.) - make levelbalmode global so we can draw the level/balance arrow from KeysBoxCurses() (T.J.) - add HighlightLabelCurses() to highlight label when returning from KeysBox() (T.J.) - in InitScreenCurses(), use wbkgdset() rather than painting spaces to set background color (T.J.) - in README, add URL for archives of mailing list (T.J.) 1999-11-27 - version 1.28 - change src/Makefile.am so /usr/local/lib/libintl can be found on FreeBSD (C.W.) - add gpm-xterm.c, ersatz gpm client for non-Linux xterm-only mouse support (A.R.) - remove most instances of "#if HAVE_LIBGPM", since, when we have ncurses, we always have either gpm or gpm-xterm (C.W.) - fix comment in curses.c (^L is NP, not NL) (C.W.) - enable use of mouse to leave from KeysBox() (C.W.) - use anonymous enums for errors and color pairs (T.J.) - in Inter(), use balance_increment rather than level_increment with AdjustBalance() (C.W.) - in Inter(), simplify handling of +/-/right/left (C.W.) - in Inter(), don't use atoi() on an unterminated string (C.W.) - in RedrawBalanceCurses(), use balance_increment instead of old hard-coded value (C.W.) - in InitScreenCurses(), center the labels of the level and balance tracks (C.W.) - in MouseHandler(), don't use hard-coded co-ordinates (C.W.) - in xaumix, set height of terminal to match the height needed by aumix (C.W.) - in xaumix, allow different title options for gnome-terminal and konsole, so they may be used (T.J.) - in xaumix, use single quotes for GEOMETRY for gnome-terminal and konsole, to leave LINES unexpanded (C.W.) - in xaumix, check for files left by previous sessions of gnome-terminal and konsole as a clue about whether we should run those emulators (T.J.) - in xaumix, only use 79 columns (T.J.) - in xaumix, add aterm and Eterm (T.J.) - in xaumix, don't show scrollbars for aterm, rxvt, or xterm (T.J.) - disable use of escape key for quitting, because escape sequences can sometimes be broken up (maybe by Nagle's algorithm) and confused with it (T.J.) - add dummy.c to simulate a sound driver when one isn't present in the kernel (C.W.) 1999-11-30 - version 1.29 - in xaumix, test for panel or kpanel processes to see whether user is running GNOME or KDE (T.J.) - in xaumix, don't use "a" option to ps, so we only see current user's processes (C.W.) - in common.c, don't use parentheses for return values (T.J.) - in aumix.spec, change "./configure --prefix=/usr --without-alsa" to "%configure --without-alsa" (C.W.) - in StartGPM, don't grab mouse events that have a modifier key set (C.W.) - add WriteLevel(), ReadLevel(), WriteRecSrc() and ReadRecSrc() to do most ioctls (T.J.) - in configure.in, check for both curses.h and ncurses.h so our own curses.h can use the system's curses.h (T.J.) - in configure.in, check for awk and some other things suggested by autoscan, and remove some tests it didn't suggest (T.J.) - shuffle into our own curses.h a few things that pertain to ncurses and gpm (T.J.) - in curses.c, add support for use_default_colors, and change the default colors to work better with this (T.J.) - add ncurses mouse support, so mouse will work in an xterm on Linux (C.W.) - in gpm.c, move most mouse handling from MouseHandler() into new DoMouse() (C.W.) - remove unused function GpmHalfdelay() (C.W.) - enable ncurses mouse support in StartGPM() (C.W.) - rename StartGPM to StartMouse() (C.W.) - rename gpm.c to mouse.c (C.W.) - in curses.h, add prototype for DoMouse() (C.W.) - in Inter(), handle KEY_MOUSE, get event, and call DoMouse() (C.W.) - in curses.c, don't use w_panel, but just draw on stdscr, to avoid bug in ncurses (T.J.) - in curses.c, add preliminary support for resizing screen (T.J.) - in configure.in, check for getmouse() and use_default_colors() in ncurses library; define HAVE_GETMOUSE and HAVE_USEDEFAULT if present (T.J.) 1999-12-06 - version 1.30 - in xaumix, use test -z (T.J.) - in aumix.1, mention implication of -I option by -C (T.J.) - in curses.c, add PlaceCursor() to move cursor to right of "aumix" (T.J.) - use curs_set(0) to make cursor invisible, on terminals which have that capability (C.W.) - remove empty src/gpm.c (C.W.) - in xaumix, use xprop rather than ps to detect GNOME and KDE (C.W.) - in xaumix, check for GNOME_SM_PROXY and "Unnamed Desktop" to find GNOME and KDE (T.J.) - in xaumix, check whether $DISPLAY is set and if not, don't run an emulator (C.W.) - in xaumix, no "x" needed with test -z (C.W.) - in xaumix, if no $XTERM, send error message to stderr (C.W.) - in InitCurses(), add meta(stdscr, TRUE) because it is not default everywhere and mouse position is truncated to 7 bits otherwise (C.W.) - in gpm-xterm.c, make mdata unsigned char to avoid misreporting of coordinates as negative (C.W.) - have autoconf generate a test program to check for _use_keypad in WINDOW structure (C.W.) - in curses.h, add CTRL() macro to map 'X' to ^X (C.W.) - in Inter(), use CTRL() for control keys in switch statement (C.W.) - move CTRL() checks to end of switch cascade (C.W.) - check whether CTRL is already defined, and leave it alone if it is (C.W.) - return ^D to its former exit function (C.W.) - in StartMouse(), add function pointer Wgetch to indirects wgetch calls to one of Sysm_Wgetch, Gpm_Wgetch, or wgetch (C.W.) - add #define Getch(), to prettify (*Wgetch)() call (C.W.) - replace Gpm_Getch() with Getch() (C.W.) - in StartMouse(), initialize Wgetch to Gpm_Wgetch or plain wgetch (C.W.) - in Inter(), join two consecutive switch(key) statements (C.W.) - in curses.c, use HighlightLabelCurses() in more places (C.W.) - in Inter(), do HighlightLabelCurses() so label is in right color when ^L is used (C.W.) - update gl.po and es.po (J.A.) - in gpm-xterm.c, fix select() loop (C.W.) - in configure.in, move checks for headers before ncurses checks (C.W.) - in StartMouse(), get character cell width and height, since FreeBSD sysmouse coordinates are in pixels (C.W.) - have sysmouse send us SIGUSR2 for mouse state changes, and if successful, register signal handler and our wgetch() replacement (C.W.) - add SysmouseHandler(), signal handler for SIGUSR2 which retrieves mouse coordinates and converts pixels to character cell units (C.W.) - in mouse.c, add Sysm_Wgetch(), derived from Gpm_Wgetch() (C.W.) - add autoconf test for sysmouse (C.W.) - center balance when second mouse button is pressed over balance track (C.W.) - make DoMouse() take an argument specifying buttons (C.W.) - have mouse coordinates start from (0, 0) instead of (1, 1) (C.W.) - create mouse.h, mostly from bits of curses.h (C.W.) - added acconfig.h (T.J.) - added AM_CONFIG_HEADER(config.h) to configure.in and ran aclocal to pull the macro into aclocal.m4 (T.J.) - added xaumix man page (P.S.) - added --enable-own-labels option to configure script, to permit translation of dev_label array (T.J.) - made include/ and moved headers from src/ into it, to avoid automake misfeature (T.J.) - in gpm-xterm.h, #define SELECT_TIME (C.W.) - fix some prototyping problems (C.W.) 1999-12-19 - version 1.30.1 - in src/Makefile.am, specify DEFS to override automake's defaults (T.T.) - move headers back to src/ (T.J.) - update pl.po (P.C.) - update ru.po (M.V.) - fix bug where mouse could toggle nonexistent record/play (C.W.) - in SysmouseHandler(), work around cosmetic bug in syscons.c on FreeBSD 3.3/3.4 (T.J.) - on NetBSD and OpenBSD, use _oss_ioctl (C.W.) - find libcurses on OpenBSD (T.J.) - fix test for libcurses (C.W.) - use unsigned long as type for second argument of dummy_ioctl, for compatibility with OpenBSD/alpha (C.W.) - fix typo in src/gpm-xterm.h (C.W.) - prettify printf formatting in src/gpm-xterm.h (C.W.) - in PlaceCursor(), use A_NORMAL to lessen compiler bug on OpenBSD/sparc (T.J.) - in AumixSignalHandler(), redraw level/balance indicator after resizing window (C.W.) - in xaumix, don't leave blank line when calculating size of terminal, because it is no longer needed (C.W.) - fix bug where record/play could be toggled for a nonexistent channel, using the mouse (C.W.) - in common.h, add prototype for dummy_ioctl (C.W.) - in configure --help text, don't capitalize the first letter, in order to match configure's built-in descriptions (C.W.) - in configure --help text, line up descriptions (T.J.) - in InitCurses(), when running in an xterm, set DISPLAY if it isn't already set, to trick ncurses into processing mouse events (C.W.) - in configure.in, only test for _use_keypad, getmouse and use_default_colors when $CURSLIB is set (C.W.) 1999-12-25 - version 2 - added GTK+ interface (P.H., T.J.) - added code from gmixer to show the icon when window is iconized (S.K.) - in configure.in, added stuff from GIMP (O.T.) - removed debugging macro from aumix.1 (C.W.) 2000-01-31 - version 2.1 - in acinclude.m4, add AM_PATH_GTK (C.W.) - in configure.in, uncomment test for GTK+ (C.W.) - in configure.in, move AC_SUBST(CURSLIB) (P.S.) - in common.c, don't try to open mixer device file if DUMMY_MIXER is defined (T.J.) - in curses.c and gtk.c, add LOCAL_TEXT so --enable-own-labels works (T.J.) - remove Makefile.manual (T.J.) - add AumixSignalHandlerGTK to do updates for GTK+ interface (T.J.) - fix unmuting in GTK+ interface (T.J.) - add quit button to GTK+ interface (T.J.) - add balance controls to GTK+ interface (T.J.) - set height of GTK+ window according to number of mixing channels (T.J.) - better syntax in aumix.1 (C.W.) - added patches for FreeBSD to packaging/FreeBSD/ (T.J.) - added experimental OpenBSD port (C.W.) - updated and reorganized README and INSTALL (T.J.) 2000-03-07 - version 2.2 - fix gtk.c so it compiles when HAVE_GTK is false (T.J.) - in gtk.c, use a table and labels rather than frames, so controls are smaller and all the same size (T.J.) - when given options besides (but not including) -I, and DISPLAY environment variable is set, don't open GTK+ window (A.M.) - if -C option is given, don't open GTK+ window (A.M.) - in Usage(), show interactive options when compiled with HAVE_GTK, even if not with HAVE_CURSES (T.J.) - in Alsa_Unmute(), try to clarify comment about library (T.J.) - in gtk.c, add menus, using code from itemfactory.c example (T.G., I.M.) - in gtk.c, move quit and muting functions to menus (T.J.) - in gtk.c, add file loading and saving functions to menu (T.J.) - update intl/ with files from GNU gettext 0.10.35 (credits in intl/ChangeLog) 2000-03-16 - version 2.3 - in gtk.c, add LoadDialog() and SaveDialog() to select settings files, using code from filesel.c example (T.G., I.M.) - in gtk.c, add LOCAL_TEXT_NOOP to permit translation of menus (T.J.) - in gtk.c, remove some unused widgets (T.J.) - in gtk.c, remove buggy code for calculating size of window (T.J.) - in common.c, add ShowWarning() to print error messages and continue (T.J.) - in common.h, dummy.c, interactive.c and mouse.c, add comments to #endif directives (T.J.) - where "../config.h" and "common.h" are both included, only include the latter and include "../config.h" in common.h (T.J.) - add buttons with pixmaps to switch record/play from GTK+ window (T.J.) - rename menu_items to menuitemsgtk to avoid confusion with menuitems (T.J.) 2000-03-23 - version 2.4 - add French (fr) translation (G.C.) - in InitScreenGTK(), use gtk_table_attach_defaults instead of gtk_table_attach for simplification and to avoid a compilation error (T.J.) - in InitScreenGTK(), use casts to avoid compilation warnings (T.J.) - in gtk.c, add SaveSettingsGTK() and LoadSettingsGTK() functions as wrappers for SaveSettingsGTK() and LoadSettingsGTK(), to avoid compilation warnings (T.J.) - in AumixSignalHandlerGTK(), use gtk_signal_handler_block() and gtk_signal_handler_unblock() rather than gtk_signal_disconnect() and gtk_signal_connect() while we change settings of buttons and sliders (T.J.) - make Usage() text match synopsis in man page (T.J.) - move play.xpm and record.xpm to src/ to please automake (what about aumix.xpm?) (T.J.) - in main() move #endif to allow compilation with neither ncurses nor GTK+ (V.K.) - in InitScreenGTK(), create channellabel labels in the same loop where they're attached to the table (T.J.) - remove unused y variable from AdjustBalanceGTK (T.J.) - in InitScreenGTK(), add "L" and "R" markings for balance controls, and "0" and "100" markings for level controls (T.J.) - in InitScreenGTK(), use gtk_scale_set_value_pos() to move labels to the left side of level controls and right side of balance controls, to save pixels (T.J.) - in common.c, add CountChannels() to count mixing channels (T.J.) - partial updates to all translations (T.J.) - make correction to de.po (C.W.) - rewrite menus without GtkItemFactory, so they can really be translated (T.J.) 2000-03-28 - version 2.5 - in gtk.c, add "View" menu to hide unused channels (T.J.) - in gtk.c, use gtk_signal_connect_object() rather than gtk_signal_connect(), so device numbers may be passed to callback functions (T.J.) - in gtk.c, remove aumix_destroy() and just use gtk_widget_destroy() (T.J.) - update Polish translation (P.C.) 2000-04-12 - version 2.6 - in xaumix, give "-C ansi" option for emulators that didn't get "-C xterm" so aumix will start in ncurses mode when compiled with GTK+ (T.J.) - in INSTALL, give better instructions for FreeBSD and NetBSD (T.J.) - remove contents of packaging/FreeBSD (T.J.) - remove unused AumixSigwinchHandler() (T.J.) - in curses.h, remove stray comma from enum (T.J.) - in gpm-xterm.h declare Gpm_Wgetch() with its parameter (T.J.) - in interactive.h, declare InitScreen() with a "void" parameter (T.J.) - in curses.c, declare InitScreenCurses() with a "void" parameter (T.J.) - in InitScreenGTK, make fileaccelkeys an array of ints rather than pointers to chars (translation of these is still broken) (T.J.) - in ExitIfError() and ShowWarning(), use LOCAL_TEXT_NOOP rather than LOCAL_TEXT (T.J.) - make AumixSignalHandler() the only signal handler and have it call WakeUpCurses() and WakeUpGTK() (T.J.) - fix type of AumixSignalHandler() (C.W.) - in StartMouse(), cast conn.eventMask to unsigned short (C.W.) - update de.po (D.S.) - in gtk.h, make callback functions gint rather than gint * (T.J.) - new four-color aumix.xpm, 32 X 32 pixels (T.J.) - removed aumix-mini.xpm (T.J.) - in InitScreenGTK() make i a long int to avoid warning on 64-bit architectures when we pretend it's a pointer for gtk_signal_connect_object (T.J.) - add "View" and "wait" to all .po files (T.J.) - in LoadSettings(), add "wait" keyword to permit scripted pauses (T.J.) - update aumix.1 to mention "wait" feature (T.J.) - update xaumix.1 to mention GTK+ interface (T.J.) - combine ShowWarning() and ExitIfError() into ErrorExitWarn (T.J.) - move prototypes from common.c to common.h (T.J.) - rename i18n_initialize to I18nInitialize (T.J.) - rename Alsa_Unmute to AlsaUnmute (T.J.) - made data/fadein.set and data/fadeout.set to show use of wait feature (T.J.) - send error messages, including usage text when an error has occurred, to stderr (C.W.) - further updates to de.po (C.W.) - in LoadSettings, use fgets() to read in lines of text from the file, then parse them with sscanf(), so "wait" lines need only two fields (T.J.) - use CountChannels() in HighlightLabelCurses() (T.J.) - partial update to es.po (T.J.) - in aumix.spec, don't run automake or autoconf (C.W.) 2000-06-27 - version 2.6.1 - remove some "fuzzy" lines from de.po and ru.po (T.J.) - fix AumixSignalHandler for compilation without GTK+ (V.K.) - fix AumixSignalHandler for compilation without ncurses (B.N., C.W.) - fix overflow in InitColors() when argument to -C option is too long (T.J.) - fix overflow in OpenDefaultFile() when HOME is too long and -L option is given (T.J.) - replace DATADIRNAME with DATADIR and fix it (C.W.) - fix packing list in aumix.spec (C.W.) - update English description in spec file to mention X interface (T.J.) - in INSTALL, update ncurses site, simplify RPM instructions, and remove references to GNU make (T.J.) - in InitScreenCurses(), add menu_sizes and make label_width variable (replace fixed LABEL_WIDTH) so widths of menu and labels can accommodate different languages (T.J.) - use the po/Makefile.in.in from rpm 3.0.4 for less dependence on GNU make (C.W., U.D.) - remove OpenBSD port (T.J.) - make GTK+ accelerator keys translatable (T.J.) - make dummy mixer show first 25 devices, for checking translations (T.J.) - remove gratuitous subshells from configure tests (C.W.) - introduce automake conditionals GTK and CURSES (C.W.) - install xaumix, xaumix.1, and color schemes only if building with curses (C.W.) - make mention of "-C" and "-I" options in usage text agree with actual availability (C.W.) 2000-07-13 - version 2.7 - add partial Japanese message catalog (ja.po) (T.J., M.H., J.T.) - add partial Swedish message catalog (sv.po) (T.J., M.R., A.W., C.G., K.B.) - in I18nInitialize(), use LC_ALL rather than LC_MESSAGES to permit selection of character sets (needed for Japanese) (T.J.) - in INSTALL, correct instructions for NetBSD, separate them from OpenBSD, and merge "Kernel" and "Linux" sections (T.J.) - fix misspelling in xaumix.1 (C.W.) - update aumix.1: only one xpm (C.W.) - in InitScreenGTK(), wrap fileacceltext strings in LOCAL_TEXT_NOOP to permit translation (T.J.)