2 Fixed link failure with GCC 10.
7 Added autogen and .gitignore.
8 Update mailing list links to new Google Groups.
11 Remove trailing whitespace.
12 Fix a buffer overflow (how did this ever work?)
13 Add native ALSA mixer support
14 Improve the osd update code
15 - More logical relationship between volume level and bar length
16 - No unnecessary drawing
17 - Volume bar shrinks properly even when volume is lowered very quickly
18 Draw osd only on the primary monitor if randr extensions are available
19 Add a command line option for choosing a monitor for osd display
20 Improve monitor selection code
21 - Default to monitor 0 instead of failing if a crazy number is given
22 - Allow monitor to be specified by osdmonitor in the config file
23 Better handling of configuration defaults for the new settings
24 Allow sound api to be specified in the config file
25 Use autotools for build.
26 Add desktop entry file.
29 Added support for volume control keys found on all modern keyboards.
30 Added plenty of information to the man page on invocation and configuration.
31 Made wmix more verbose when something is not right in the configuration.
34 Fixed a 3 years old bug about volume level showing up as "0" when it's
35 actually set to 10. Thank to all 20 or so people who e-mailed me about this.
36 Changed struct mixer_info name to allow compiling wmix under 2.6.1+ kernels.
37 Thanks Neil Burch <burch@cs.ualberta.ca> for the patch.
38 Added a patch to enable exclusion of channels from display - allows you to
39 remove mixer channels you never use. adds '-e <channame>' command line option
40 which can be repeated any number of times. Thanks to Nicolas Descomps <nico_206@noos.fr>.
41 Added #include <string.h> since glibc finally fixed most of the includes since 2001.
44 Major code rewrite. Now uses much better mixer library. New knob drawing code.
45 New config parsing code - no more segfaults. New mouse control code for knob
46 and slider dragging - more intuitive. Documentation updates. Removed runtime
47 config parsing, only reading config file once on startup. New command line
48 options to specify X display, config file, and mixer device. Removed "mixermax"
49 code until someone complains. Current channel title scrolling is now
53 This is a bugfix release. On-Screen-Display code now looks for some common
54 large bitmap font. Check that $HOME is set before trying to write a config
55 file. Wmix makes a pid file for use with signal changing volume up/down.
56 Minor code reorganization.
59 Mostly bugfixes and other random stuff. OSD now really stays on top provided
60 you run a GNOME-compliant window manager (wmaker/E/saw-what-ever,etc)
63 Configuration file implemented. Mousewheel functionality, OSD display,
64 OSD color, main mixer device, and OSS bug work-around can now be selected
65 through WMixer rc file, by default placed in ~/.wmixrc
66 Changes to the rc file are loaded dynamically, while the mixer is running -
67 you can change the OSD color, for example, and see the results right away.
70 New feature: Volume of the current channel can be controlled using signals.
71 Sending SIGUSR1 will increase the volume by 1 step, and SIGUSR2 will decrase
72 the volume by 1 step. This could be useful if you have a newer style keyboard
73 with volume buttons and all the other extra shit. You can tell your favorite
74 window manager to run a program on keypress, and that program could be
75 something like "killall -USR1 wmix" for volume up key, and "killall -USR2 wmix"
76 for volume down. How to assign programs to specific keys is up to you. I know
77 Blackbox and WindowMaker can both do it. Keep in mind most X-servers don't
78 automatically support those extra keys, so some hacking might be required.
79 Usually they are sent as a Win95 key scancode plus another scancode. I don't
80 have one of these keyboards so I don't know. If enough people ask for it
81 I will add 2 more signal handlers to switch the current "channel" back and
85 Version 2.02 adds mouse wheel support to adjust volume, thanks to the
86 patch from Gilles QUERRET <gilles.querret@free.fr>. Now instead of
87 dragging the knob, you can use your mouse wheel to adjust the current channel
88 volume. Position the cursor anywhere on the dockapp, and move the wheel.
89 This behaviour is off by default, but you can compile wmix with -DMOUSEWHEEL
90 in the Makefile to enable this feature. In case your mouse has more than 2
91 buttons and a wheel, you can set which button signals the wheel generates as
92 "up" and "down" in mix.c, lines 45 and 46. The default is for a standard
93 mouse with 2 buttons and a wheel. WHEEL_STEP is the amount to adjust the knob.
94 The default of 3 should be good for everyone. Changing the volume using the
95 wheel also brings up OSD for the current channel following same rules as if the
96 knob was used directly.
99 New feature, which isn't really new, but a feature move from WMixer 1.5, is the
100 On-Screen-Display (OSD), just like the one you probably have on your TV. The
101 concept was the only thing copied from Wmixer 1.5 though, the code has been
102 rewritten to use a modeless window instead of drawing on the root window,
103 and draw code has been optimized not to draw any unnecessary stuff. The OSD
104 only comes up when the Knob is turned, i.e. during manual adjustment. OSD stays
105 hidden during automatic updates due to mixer reads or changing rec/balance etc.
106 However, due to the way the OSD timer is done, as long as you are moving inside
107 the dockapp (adjusting balance, or just generally moving the mouse inside the
108 dockapp window, the OSD will stay lit. After all movement is gone, and in
109 approximately 1.5 seconds, the OSD fades out. If some Xlib programmer knows
110 a /NON GAY/ way to handle always-on-top, feel free to mail me a diff that makes
111 the OSD continuously on top while being displayed. Right now, it comes up
112 on top, but if you move a window over it or something, it gets hidden. Not
113 too much of a loss, but still could be improved. OSD follows the same low-CPU
114 use guidelines as the rest of the code. No updates happen unless something
115 changes that requires an update. Also, expose events after uncovering the OSD
116 window are not handled - if you can manage to obscure it in 1.5 seconds and
117 want to see it again after that, you can always go back and twiddle the knob