The names for channels provided by <sys/soundcard.h> have a padding with
space when their name is shorter than 6 characters, and this cause
excluding them difficult.
The new comparison code makes sure this padding is properly handled during
the match search.
Took the opportunity to bring light changes to try to improve the
readability of the channel listing code.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Because that's the kind of option that could deserve to be saved in the
file. A device specified on the command line will take precedence; the
list of channel to exclude will be merged.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
There may be some case where user would like to fall back to the original
behaviour, for example if grabbing these keys could get in conflict with
other applications.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
If another application has already set a grab on these keys then the call
would fail (BadAccess) and wmix stop. With the X error handler, we can
display a warning to user and continue anyway.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
We can handle the keys AudioRaiseVolume, AudioLowerVolume and AudioMute,
so we ask the X server to send the key press event for them to us and
update the volume appropriately.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
A number of configuration options are useful only during the startup, so it
is possible to free them when ready.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
It is generally not considered a good behaviour to leave user puzzled on
non-working request. With a little message at least he will know where to
look at.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Conflicts:
wmix/config.c
The original parser would not say anything if the user had misspelled
something in the file which can be annoying. Now the parser will report
warnings for everything not understood with a message trying to be more
helpful to debug and fix.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The original code did not abort when an invalid option was provided
or if there was non-options arguments on the command line.
The new code will report all problems found and stop to have the user
fix his command. It also remove some unnecessary pointer checks.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
If the config file was set by user with '-f', it would be a good idea to
report him if we're not able to load it.
Took opportunity to report to user that the config file is loaded if he
asked for verbose operations, so he can see if the default file loaded
is the one he expected.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Took opportunity to re-order them alphabetically so they are easier to
work with, both for devs and for users.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Management of the configuration is split in many places, the goal is to
regroup stuff together, starting with the loading from file stuff.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The PID file was created at the early beginning, but wmix can abort later
if something is not ok. It is better to create it at the end, so it will
be created only if wmix will actually be running.
Took the opportunity to move the code to a dedicated function to keep main
simple, and added a check to fix possible crash on startup if environment
variable $HOME does not exist.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The bitmap mask associated to the Led image on the knob was not used,
probably because the visual gain is negligible compared to the added
complexity to handle it.
So, as compiler warned about it, remove the variable.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The original code merely assumed that an XOpenDisplay failure was caused
only by incapacity to connect to the X server, but if $DISPLAY was not set
then the fprintf would be given a NULL pointer which it may not appreciate
(depending on the libc in use).
Let's avoid that case and try to provide more info to help the user.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
It may not be easy to understand how channels are names, particularly
when user wants to use a name to exclude a channel from the GUI. This
new sections answers all those questions.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This is handy to let the user know about the possible strange behaviour he
may encounter and some limitations.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This includes detailing more files of interest to user, spell-checking and
appearance, and few other things.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This allows easier review/fix/patches. Furthermore, not all man tools
support compression and some distribution may use other compression
algorithm (bzip2, ...), so this should be handled at install time.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
wmbutton will happily start and display what otherwise looks like a
functioning display even if none of the possible configuration files
exist. However, the application promptly exits as soon as it has to show
a tooltip. This isn't nice. It looks like a crash to an unsuspecting
user. Terminal output is shown, of course, leading to a decently quick
diagnostic, but the fail isn't early enough to be useable.
The trivial fix is to check if the local configuration file (specified
as a command line argument or defaulting to ~/.wmbutton) or the global
configuration file can be open. If neither can be open, we bail out
early.
This *still* has the problem of only really being functional in a
terminal. A graphical error box would definitely be preferable and is a
possible improvement.
Signed-off-by: Weland Treebark <weland@blinkenshell.org>
- When executing a command, control flow would fall through to the
display cycle code, changing the display.
- When display cycling was prevented by the user (via -l), command
execution was also disabled.
Enough patches have been made over the years to the wmtime Debian
package that I have decided to incorporate these changes into
an official upstream release.
Some updates to the documentation have been made to reflect the
changes.
When non-Latin alphabet characters are encountered in weekday and month names, the English defaults are used. This closes Debian bug #726125.
Also, numbers are now printed when encountered in weekday and month names (e.g., Swahili).
The Makefile of wmtime had to be patched in order for CFLAGS
not to be redefined by the Makefile but to use the CFLAGS
passed by debhelper and add additional flags through
string concatenation. LDFLAGS and CPPFLAGS weren't passed
at all and have been added to the linker command line.
Patch by John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
from Debian package.