Commit graph

333 commits

Author SHA1 Message Date
Jaroslav Kysela
03a652e18d alsactl: save state - do not call rename for stdio
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-06-25 10:54:26 +02:00
David Henningsson
3a7c1c59ec alsactl: Fixup test for mydatadir/sbindir
Use the "mydatadir" name consistently.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-06-13 11:54:45 +02:00
David Henningsson
be4565c841 alsactl: Do not run udev rule before datadir/sbindir are both mounted
Sometimes 90-alsa-restore.rules is run before /usr is mounted,
and alsactl restore depends on /usr/share/alsa being present.

If /usr/share/alsa is not present, we're so early in the boot
process that alsa-restore.service (or upstart equivalent) will
run later on.

BugLink: https://bugs.launchpad.net/bugs/1289730
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-06-13 11:10:03 +02:00
Jaroslav Kysela
158a67f6f5 alsactl: add -L (no-lock) and change -D (lock-dir) to -O (state-lock-file)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-05-07 11:20:16 +02:00
Jaroslav Kysela
24a7b2fec2 configure: add --with-lock-dir option
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-05-07 10:55:58 +02:00
Julian Scheel
2607d8deee alsactl: Store lockfile in /var/lock, add -D option to specify the lock dir
It can not be generally assumed that the directories in which asound.state
resides are writable. Use /var/lock and allow users to alter this path.

Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2014-05-07 10:55:51 +02:00
Dave Reisner
ef0e588c76 alsa-restore.rules: refer to correct attr
$attr{number} in the RUN rule is an empty expansion. This makes sense,
because the path doesn't exist -- i.e., it refers to the path:

/sys/devices/pci0000:00/foo/bar/sound/card0/controlC0/number

Instead, refer to $attr{device/number}, which does exist.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-01-13 11:30:43 +01:00
Jaroslav Kysela
f4be3f88b6 alsactl: Fix the va_list initialization in cerror_() and dbg_()
The <ap> argument for syslog_() was uninitialized.

From: Alan Hamilton <alanh@arizonaroads.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-12-29 20:06:53 +01:00
Takashi Iwai
5dfc232a9d alsactl: monitor all cards as default
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-26 14:27:30 +01:00
Takashi Iwai
bb3293c76e alsactl: Fix REMOVE event handling in monitor command
SND_CTL_EVENT_MASK_REMOVE has to be checked at first and ignore the
rest if it matches.  Suggested by Clemens.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-26 13:59:19 +01:00
Takashi Iwai
d2d9b6fc8d alsactl: Add monitor command
With monitor command, you can monitor the events received from the
given control device.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-26 11:45:34 +01:00
Jaroslav Kysela
dda4392cd5 alsactl: alsa-state.service - fix typo (rkill -> kill)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-07-19 14:36:52 +02:00
Jaroslav Kysela
c0f70a0b8e alsactl: return back the udevrules_DATA rule for 90-alsa-restore.rules
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-05-27 09:26:39 +02:00
Gabriel M. Beddingfield
121df36949 alsactl init: ca0106 file was omitted
The file alsactl/init/00main includes the line:

CARDINFO{driver}=="CA0106", INCLUDE="ca0106", GOTO="init_end"

However, the file alsactl/init/ca0106 is not making it into the
release tarballs (nor to user installations).

This patch adds the ca0106 file to the build.

Signed-off-by: Gabriel M. Beddingfield <gabrbedd@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-27 09:09:14 +02:00
Jaroslav Kysela
4485590096 alsactl: remove 90-alsa-restore.rules from the tar ball
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-05-21 10:27:25 +02:00
Jordi Mallach
f2f5f7a7d3 Fix a build failure due to a misused format string.
This fixes builds with -Werror=format-security.

Signed-off-by: Jordi Mallach <jordi@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-16 10:38:25 +02:00
Doug Goldstein
888275e66c alsactl: sprintf to snprintf prevent buffer overflow
sprintf() is a bit dangerous unless you explicitly know your type size
and want to keep it in sync always. Its safer to just use snprintf() and
ensure your string doesn't overflow and is NULL terminated.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-05-06 10:55:07 +02:00
Jaroslav Kysela
95788fea25 alsactl: Fix the string size for the lock file contents
The string length is 10 characters + LF + '\0' = 12 characters.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-15 14:44:13 +02:00
Takashi Iwai
3616b1fe3c alsactl: Fix a typo in systemd alsa-restore.service
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-15 11:21:13 +02:00
Jaroslav Kysela
c3a31afe14 alsactl: add --with-alsactl-daemonswitch=FILE to the global configure.in
It may be useful to have the file location configurable.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-10 11:08:47 +02:00
Jaroslav Kysela
8b34bf25c0 alsactl: revert back old systemd static units with the /etc/alsa/state-daemon.conf switch
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-10 10:29:19 +02:00
Jaroslav Kysela
611249ae26 alsactl: add --nice and --sched-idle options
The state management can run at low priority, add --nice and --sched-idle
options to set the scheduler.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-10 09:42:40 +02:00
Jaroslav Kysela
9cb5e5bee7 alsactl: daemon mode - remove disconnected cards
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-09 18:10:22 +02:00
Jaroslav Kysela
e05b903b1f alsactl: move systemd config to the daemon mode
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-08 14:51:39 +02:00
Jaroslav Kysela
ffaff06849 alsactl: add event filter and cache for the daemon mode
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-08 11:31:45 +02:00
Jaroslav Kysela
067f4f3256 alsactl: Improved command line argument handling...
Improve command line argument handling for future extensions.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-05 13:47:21 +02:00
Jaroslav Kysela
cc5c3357cf alsactl: add the daemon mode
For the plug-and-play hardware, like USB devices, it may be helpful
to manage the sound state periodically, before the devices are removed.

This change implements new commands 'daemon' and 'rdaemon' to save
the sound state in defined intervals when the sound controls are changed.

The udev rules can notify the daemon using the 'kill' or 'nrestore'
commands to rescan available cards in the system.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-05 13:47:18 +02:00
Jaroslav Kysela
b95dd7ef46 alsactl: small code reorder to avoid memory leaks
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-03 11:57:52 +02:00
Jaroslav Kysela
e3e85a851c alsactl: safe state store and memory allocation cleanups
- store new configuration to file + ".new" extension, rename later
- free the configuration tree on exit from load_state()/save_state()
- call snd_config_update_free_global() at the end of command blocks

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2013-04-03 11:16:46 +02:00
Takashi Iwai
c3111571dc alsactl: Add reference to alsactl_init(7) in alsactl man page
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-14 16:14:29 +02:00
Takashi Iwai
c68a3d02d1 alsactl: Read only *.conf files when a directory is passed via INCLUDE
When alsactl init is invoked and a directory path is passed to INCLUDE
command in the config file, read only *.conf files in that directory.
This will avoid reading backup files or invalid files that have been
created accidentally.

Also by using scandir() with alphasort(), alsactl reads the files in
alphabetical order.  Thus it's highly recommended to use some number
prefix to the file name for assuring the order.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-06-14 16:06:42 +02:00
Jaroslav Kysela
f7eb87ddc7 alsactl: Do not access other cards than specified for init
When the global state does not exist, alsactl tries to
initialize all soundcards. It is not good when alsactl
is called multiple times from udev. Also, selinux can deny
access to non-existent devices.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2012-05-09 08:45:47 +02:00
David Henningsson
7d33af86c8 Alsa-utils: Fix typo causing some volumes not to be initialized
When I was reading the source code, I stumbled over this typo causing
Center, LFE, and Surround speakers not to be initialized.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-13 10:03:07 +01:00
Takashi Iwai
9fa7cd2176 alsactl: Initialize Front Speaker, etc
Add missing initialization of surround and CLFE playback volumes and
switches.  Ditto for "Front Speaker", etc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-04 17:01:57 +01:00
Clemens Ladisch
5a6ca47cb9 alsactl: add support for recreating enumerated user controls
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2011-10-07 23:40:08 +02:00
Michał Górny
e80b015689 fix use of $(SED)
The alsactl Makefile used 'sed $(SED)' which is going to failed when SED
is actually set. Replaced that with '$(SED)', and a few 'sed' calls in
alsaconf Makefile as well. Added AC_PROG_SED to configure to have it
set.

Fixes: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5363
Fixes: http://bugs.gentoo.org/show_bug.cgi?id=366587
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2011-08-31 22:31:55 +02:00
Jaroslav Kysela
5ee6a67075 Revert "alsactl - Display help for names command"
This reverts commit 6d32e055d7.

From: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2011-04-28 08:13:54 +02:00
David Henningsson
70451054e0 alsactl init: Mute CD Playback volume by default
The CD analog playback line is seldom used these days, as all
modern players rip the CD and use the DAC on the sound card.
In addition, it causes background hum on some machines.
Therefore keep it muted by default.

BugLink: http://bugs.launchpad.net/bugs/747184
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-04 12:48:21 +02:00
Colin Guthrie
a97bcd19dc alsactl: Add a --with-udev-rules-dir configure option.
After the previous patch to install udev rules it is impossible to do a
non-root, custom-prefix make install. This is generally not a problem
when building official packages but it can be a pain for developers
and debuggers etc.

This is essentially the same patch as was already made in PulseAudio
in commit e8a5746f2fcae59bfd18d39b621509b3ef130453.

Signed-off-by: Colin Guthrie <gmane@colin.guthr.ie>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-11-26 10:27:14 +01:00
Lennart Poettering
81f015f5ab alsactl: Move asound.state location to /var/lib/alsa
.... and add configure switch for it.

/etc might be on a read-only partition which is not suitable for dynamic
data such as the mixer settings. Hence move the location of asound.state
to /var/lib.

This is based on a patch from Ubuntu/Debian which hardcoded the pah in
/var/lib.

Signed-off-by: Lennart Poettering <mznyfn@0pointer.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-11-23 15:48:50 +01:00
Lennart Poettering
de7c3eff0e alsactl: systemd and udev hookup
Add minimal systemd and udev support to alsactl so that mixer settings
are restored at boot, when sound cards are plugged in and saved on
shutdown.

This is similar to existing udev/init script solutions in various
distributions.

Note that alsactl is called both synchronously from the udev rules as
well as asynchronously at boot. This is intended, and to ensure two
things:

- At boot the asound.state file might not be readable, since it resides
  on a different file system. That means exclusively restoring sound card
  settings from udev rules will no suffice, since if the rule is
  executed at early boot (for example within udev settle) then the file
  will no be readable and cannot be restored.

- We need to ensure that applications monitoring sound cards coming and
  going (such as PA) must not get these events before the mixer settings
  have been restored. That means the mixer settings must be restored
  synchronously withing the udev rules, before the events are passed on
  to the apps.

That basically means we need to restore the settings once in udev, to
deal with sound cards becoming available during runtime. And once in
early boot to deal with coldplugged soundcards whose data files might
not have been available at time of plugging. Hence we call alsactl
twice: one from the udev rule, and once from he systemd unit file.

Signed-off-by: Lennart Poettering <mznyfn@0pointer.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-11-23 10:42:35 +01:00
Jaroslav Kysela
ef919a4724 alsactl init: Initialize also "Master Front Playback Volume" & "Switch"
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-09-07 17:33:14 +02:00
Jaroslav Kysela
52bd2f8ace alsactl init: Handle "Capture Source" and "Mic Boost" in the default script
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-09-07 17:07:12 +02:00
Jaroslav Kysela
0fea2452cb alsactl: Change handling of inactive controls
The inactive controls are stored, but they are not restored
when they are marked inactive in the state file or in the
driver.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-09-02 15:48:43 +02:00
Jaroslav Kysela
7f6a55e203 alsactl init: use "generic method" instead "guess method"
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-09-02 15:36:56 +02:00
Jaroslav Kysela
dcb90a779e alsactl init: Use "Found hardware:" instead "Unknown hardware:"
It seems that "Unknown hardware:" confuses users. Use "Found hardware:"
instead.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-09-02 15:03:23 +02:00
Clemens Ladisch
b4ff58b685 Revert wrong parts of "alsactl: use snd_config_imake* functions"
This reverts the parts of commit e509df69a5
that accidentally reverted a bunch of earlier commits.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:37:58 +02:00
Clemens Ladisch
bd15b1e5ea alsactl: change format of comment node in state file
Make the comment node a separate node in the state file (join=0), and
move it after the other fields of the respective control.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:28:11 +02:00
Clemens Ladisch
4f29877d54 alsactl: correctly restore dB values of controls with changed range
When the range of a control has changed between driver versions, it is a
good idea to restore the same dB value of the control.  However,
computing the dB value by interpolating betweem the min/max dB values
duplicates alsa-lib's TLV functions and does not even work for controls
with a linear dB range.

A simple conversion to dB and back can be done if we add the dB value(s)
to the saved state.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:27:25 +02:00
Clemens Ladisch
224c12238e alsactl: remove open-coded search
Remove search_comment_item since it does the same as snd_config_search.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:19:17 +02:00
Clemens Ladisch
ad47784b01 alsactl: move alloca out of loop
Reserving new space from the stack in every loop iteration is not
necessary, so move the call to snd_ctl_elem_id_alloca outside where it
is executed only once.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:18:43 +02:00
Clemens Ladisch
e509df69a5 alsactl: use snd_config_imake* functions
To save a call to snd_config_set_xxx, replace the calls to
snd_config_make_xxx with snd_config_imake_xxx.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2010-05-26 10:07:47 +02:00
Jaroslav Kysela
f0658f37dc alsactl: update debug prints in state.c
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-02-25 16:45:13 +01:00
Jaroslav Kysela
412cb29b58 alsactl: add more debug prints to state.c
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-02-25 15:02:09 +01:00
Jaroslav Kysela
5c35aa8b69 alsactl: improve -d to get warnings and store exitcode to runstate file
Also, make the initialization & restore logic for one card similar to
multiple card initialization & restore.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-02-25 09:22:26 +01:00
Jaroslav Kysela
69c6bead43 alsactl: Fix return code
The main() should return positive error value.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2010-02-14 19:07:25 +01:00
Jaroslav Kysela
1247c3d8ac alsactl: fix error path code in init_parse.c
If initialization file (-i option) does not exists, the free_space()
function was called with NULL pointer.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-12-14 17:26:57 +01:00
Jaroslav Kysela
87ee474b1d alsactl: init - default - initialize also "Digital Input Source"
Set "Digital Input Source" to "Digital Mic 1" or "Mic" (fallback).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-11-12 08:54:25 +01:00
Jaroslav Kysela
a227f00690 alsactl init: Add CTL{do_search} and CTL{do_count} parsers
To increase configuration readability, add CTL{do_search} and CTL{do_count}
actions. The old PROGRAM=="__ctl_search" notion is also allowed.

Add CTL{write} to XML documentation.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-10-08 13:47:27 +02:00
Jaroslav Kysela
11b60426b3 alsactl init: use empty GOTOs in init/default file to increase readability
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-10-07 13:41:13 +02:00
Jaroslav Kysela
eb2e4706f0 alsactl: introduce CTL{write} to match directly written CTL values
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-10-07 10:53:04 +02:00
Takashi Iwai
e02f8e8aba alsactl - Initialize Speaker volume to 0dB when Master is present
Initialize Speaker volume to 0dB as well as Headphone when Master
is present.  Also initialize Headphone,1 for machines with dual
headphones.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-09-02 14:44:52 +02:00
Jaroslav Kysela
2cbf39749c alsactl init: Fix typo "(" -> "{" in Headphone default rule
Reported-by: Philipp Jocham <philipp.jocham@gmx.net>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-09-02 14:31:49 +02:00
Jaroslav Kysela
6788885405 alsactl init rules: fix Lenovo T61 initialization (Speaker Playback Switch)
See: https://bugzilla.redhat.com/show_bug.cgi?id=506266

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-06-18 15:20:15 +02:00
Jaroslav Kysela
bde1d198c1 alsactl: init - fix default configuration for ENS1370
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-05-21 16:50:26 +02:00
Jaroslav Kysela
0d3aeb9695 alsactl: fixed Headphone Playback Volume setting in default rules
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-05-15 12:37:48 +02:00
Jaroslav Kysela
ccd0e8834c alsactl: ca0106 initialization files - wrong exit
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-05-05 11:12:43 +02:00
Jaroslav Kysela
13ba4383d8 alsactl: add ca0106 initialization file
This file was created using alsa-info.sh database on www.alsa-project.org
without any real tests.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-05-05 11:10:35 +02:00
Jaroslav Kysela
4818e2701b alsactl: changes in initialization files
- handle virtual master for T61 and TM8100
- when master volume control is available, initialize PCM & CD playback
  volumes to 0dB

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-05-05 10:33:08 +02:00
Jaroslav Kysela
94ac54bff1 alsactl: fix sysfsroot path and parser extensions
The sysfsroot path is /sys/class/sound/cardX/device for recent kernels.
The ACCESS check honors the variable substutition now. Added $config{key}
substitution.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-04-30 11:26:15 +02:00
Jaroslav Kysela
42ae1e6f1b alsactl: init rules - fix HDA Conexact codec PCM initialization 2009-04-28 11:21:15 +02:00
Jaroslav Kysela
d01bbbd706 alsactl/init: Fix CTL{value} assigning - make it relevant to documentation
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-04-15 08:57:39 +02:00
Takashi Iwai
ba38c92e69 alsactl - Add missing -I option
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 18:01:58 +01:00
Takashi Iwai
08837a80e0 Fix misc compile warnings in alsactl
alsactl.c:166: warning: assignment from incompatible pointer type
  init_utils_string.c:21: warning: ‘string_is_true’ defined but not used

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-18 15:34:57 +01:00
Jaroslav Kysela
c1bc8d61dd alsactl: init - modify default rule to better support some HDA codecs
Some HDA codecs have shifted dB range (-34.5dB - 12dB) for PCM and CD
inputs. Use default 0dB value for them.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-02-05 12:58:42 +01:00
Will Wagner
9662a167d8 Use ANSI C functions
Replace non-ANSI C functions index() and rindex() with strchr() and
strrchr(), respectively.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-19 14:19:10 +01:00
Hans-Christian Egtvedt
e3dfc7470e alsa-utils check if __USE_BSD is defined before compiling "BSD functions"
Another bug/issue I tripped over when compiling alsa-utils in an
environment using uClibc to supply the C library functions. Here I have
enabled some old BSD style functions. The attached patch will honor
them if they are enabled.

Without this patch I get a redefined error during compile.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-08 11:55:27 +01:00
Jaroslav Kysela
05f78cc681 alsactl: Fix restore / init call behaviour when driver contains more controls
Fix check when driver contains more controls than state file. In this case,
initialization procedure should be run, too.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-11-21 14:44:31 +01:00
Diego E. 'Flameeyes' Pettenò
6232f1c96c Make some static tables and strings constants.
By doing this we move them from the .data section to .rodata setion,
or from .data.rel to .data.rel.ro.

The .rodata section is mapped directly from the on-disk file, which is
always a save, while .data.rel.ro is mapped directly when using
prelink, which is a save in a lot of cases.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 13:10:02 +01:00
Diego E. 'Flameeyes' Pettenò
ca1ea1e904 Mark static the functions not used outside their unit.
This way the compiler can assume more information about their
interface for optimisation.

Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 13:09:56 +01:00
Diego E. 'Flameeyes' Pettenò
50f01e48af Remove some dead code (comparisons between 0 and unsigned integers).
Signed-off-by: Diego E. 'Flameeyes' Pettenò <flameeyes@gmail.com>
2008-11-21 13:09:45 +01:00
Takashi Iwai
1797b2c290 Add -I option to alsactl
Add -I option to alsactl to take back the old restore behavior without
initialization.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-13 09:28:43 +01:00
Takashi Iwai
bbd71560bc Add --disable-xmlto configure option
Added the check of xmlto program in configure script.
Also added --disable-xmlto configure option for systems with a broken
or older xmlto that doesn't work properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-30 11:50:17 +01:00
Jaroslav Kysela
f63ff476f3 alsactl: Add -g,--ignore option to ignore 'No soundcards found' error
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-18 09:40:02 +02:00
Jaroslav Kysela
0a8e8d581e alsactl: Fix oops (when parsing card argument)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-11 13:39:42 +02:00
Takashi Iwai
02c978dbec Add missing files to be included in alsactl/Makefile.am
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-08-25 08:07:13 +02:00
Jaroslav Kysela
eb345d92ed alsactl.1 - explicitly notify about ALSA_CONFIG_PATH environment variable
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-19 13:38:26 +02:00
Jaroslav Kysela
cdf5a9b824 alsactl init - fix memory leaks (valgrind helped)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-19 13:28:22 +02:00
Jaroslav Kysela
2e7bb3caf5 alsactl init - fixed EXTRA_DIST typo in alsactl/init subdirectory
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 17:02:17 +02:00
Jaroslav Kysela
30744c02e7 alsactl: Allow card specification by device name (support for udev)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 16:57:18 +02:00
Jaroslav Kysela
ef8bfcecda alsactl - remove 'names' command, fix alsactl man page
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 16:47:33 +02:00
Jaroslav Kysela
a227a9ad52 alsactl init - add default command to help config and fix packaging
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 16:27:45 +02:00
Jaroslav Kysela
9a748178d1 alsactl init - CTL{values}, CTL{enums} and default "guess method" initialization
Implemented CTL{values)=value to set all values at once.
Implemented CTL{enums} to match against strings in enum list.
Added 'default' (guess method) initialization configuration.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 15:01:44 +02:00
Jaroslav Kysela
0c02a4e3d2 alsactl init - add ATTR{dBmin} and ATTR{dBmax}
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-18 12:39:26 +02:00
Jaroslav Kysela
460ff35c39 alsactl init - fixed enumeration string setting, update Lenovo T61 config (dB)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-14 17:51:46 +02:00
Jaroslav Kysela
e5b4241976 alsactl init - modified configuration for Acer Travelmate 8100 2008-08-14 17:48:48 +02:00
Jaroslav Kysela
b8560a6bbb alsactl init - restore calls also init on failure
The initialization procedure consist from default initialization and
state restoration. When restore fails for a reason or the config file
contains inaccurate information, then init is called.

Also, if something fails (init or restore), a file specified using -r
option can be created with description what failed. It can be useful
when user space decides to notify user to set the sound driver properly.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-14 16:46:27 +02:00
Jaroslav Kysela
e02535b1a8 alsactl init - add dB and percentual CTL{value} parsing for integer values
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-14 14:08:22 +02:00
Jaroslav Kysela
11684b3c8b alsactl init - allow enum specification by name strings
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-14 11:21:59 +02:00
Jaroslav Kysela
24fe765fa6 alsactl init configuration syntax changes
- change SYSFS_DEVICE to CONFIG{sysfs_device}
- INCLUDE key now handles also directories
- RESULT key can assign value now
- EXIT="return" operation returns from included file immediately

Default 00main and hda configuration files changes:

- handle preinit and postinit directories

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-13 20:49:07 +02:00
Jaroslav Kysela
9957c66e46 alsactl - install initialization files
Also, spearate SOUNDSDIR and DATADIR in configure.in.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-13 12:31:00 +02:00
Jaroslav Kysela
21bb9fb975 alsactl init - Fix Lenovo T61 configuraton 2008-08-13 11:40:43 +02:00
Jaroslav Kysela
e1afe00362 alsactl init: Changed support for Acer Travelmate 8100 (use subvendor and subdevice for matching)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-07-31 16:41:54 +02:00
Jaroslav Kysela
7b3c488e4e alsactl init: added support for Lenovo T61
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-07-31 16:40:06 +02:00
Jaroslav Kysela
b402cf543a Initial 'alsactl init' implementation
See 'man 7 alsactl_init' for more details.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-07-31 15:45:08 +02:00
Clemens Ladisch
8fc2c39dc8 alsactl: simplify and fix item type detection
Use snd_ctl_elem_type_name() to detect the value of the type comment
instead of using hardcoded strings.

The types list now also includes the BYTES type (Debian bug 481515).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2008-06-06 09:02:55 +02:00
Takashi Iwai
b0828653c9 alsactl: skip inactive controls
When using alsactl to save or restore the card settings, it currently
skips over controls that don't have the appropriate read/write
permissions. It should also skip over inactive controls, otherwise it
will get an error when it tries to access that control, and will fail to
save the card state (or fully restore it.)

From: Dave Dillow <dave@thedillows.org>
2007-12-17 11:49:00 +01:00
Takashi Iwai
8d7759aa32 alsactl - Fix wrong restore
Fix a bug in alsactl that restores wrong values for elements with
multiple channels (counts).
2007-11-30 17:20:39 +01:00
Takashi Iwai
e5b2ab2a9f alsactl - Set -F option as default
Set -F option as default for restore.  There are still too many systems
that are too lazy to set -F option...

Added the new -P option to back to the old behavior.
2007-11-14 11:54:38 +01:00
Takashi Iwai
6f05fd4db2 alsactl - fix double entry of comment.tlv
The entry comment.tlv can be doubly written via alsactl store, and this
results in an error.  I forgot to remove the old code...
2007-11-12 17:24:27 +01:00
Takashi Iwai
c88c15a478 alsactl - restore dB level
When alsactl saved state has dB level information and an attribute
of a control element is changed after save (e.g. volume range is
changed), try to restore the values to keep the same dB level.

This change requires the new alsa-lib functions for TLV dB
conversion, so we check it in configure (until AM_PATH_ALSA(1.0.16)
works).
2007-10-24 13:53:14 +02:00
Takashi Iwai
030686a847 Make alsactl restore a bit more robust
Make "alsactl restore" a bit more robust.  Now it tries to parse the
compound items in the case that the number of channels was changed.
The former mono-value is expanded to all channels.
2007-10-24 13:08:28 +02:00
Jaroslav Kysela
48de580a7b Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz 2007-10-15 10:25:17 +02:00
Takashi Iwai
f13bea104b alsactl - Remove debug print
Remove an old debug print that simply annoys.
2007-08-15 15:38:01 +02:00
Takashi Iwai
6d32e055d7 alsactl - Display help for names command
shortly explain the "names" command in the help text

From: Tomas Pospisek <tpo2@sourcepole.ch>
2007-05-23 12:06:49 +02:00
Takashi Iwai
f5d76dde4e alsactl - More explicit open error message (#2)
same as last patch, this time for the store command

Tomas Pospisek <tpo2@sourcepole.ch>
2007-05-23 12:04:49 +02:00
Takashi Iwai
035cbc3f9b alsactl - More explicit open error message
Include more explicit error message when open config file in write
mode (this is for the "names" command)

From: Tomas Pospisek <tpo2@sourcepole.ch>
2007-05-23 12:03:29 +02:00
Takashi Iwai
cdccd6585f alsactl - adjust spaces in help texts
adds a space in the help text between "restore" and "<card>" and indents
the rest of the text accordingly to fit.

From: Tomas Pospisek <tpo2@sourcepole.ch>
2007-05-23 12:02:14 +02:00
Takashi Iwai
e3ccd2031b alsactl - Error message when failing to open the config file
Tells the user that it was not able to open the config file with the
precise error message.

From: Tomas Pospisek <tpo2@sourcepole.ch>
2007-05-23 11:58:27 +02:00
Jaroslav Kysela
8fa7c15229 alsactl - return error state, fail when no configuration is found
See bug#843
2006-10-04 10:14:24 +02:00
Takashi Iwai
0413ca230f Restore user-defined TLV
Restore user-defined TLV (mainly for PCM softvol plugin).
TLV is stored in comment.tlv as a hex string.
2006-08-25 11:48:10 +02:00
Takashi Iwai
52aeaa557f Remove obsolete power command from alsactl
Remove obsolete power command from alsactl.
2006-03-13 19:39:17 +00:00
Sasha Khapyorsky
2963b6e75b Extend 'alsactl names' to show modem devices
Extend 'alsactl names' to show phoneline and modem device names.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
2005-09-29 10:50:37 +00:00
Takashi Iwai
87ffccedfd Fix / clean up man pages
Fix / clean up man pages (bug#1386)
2005-09-02 17:36:40 +00:00
Takashi Iwai
b45a11b0ed Add alsactl.h
Added the missing alsactl.h
2005-05-23 14:52:32 +00:00
Takashi Iwai
a9881f3f20 Fix --force option
Fixed the broken --force option.
2005-05-17 16:18:14 +00:00
Takashi Iwai
4e1596422b Ignore -ENOTTY error
Ignore -ENOTTY errror in probe functions, which indicates the
non-existing component.
2005-05-17 10:38:07 +00:00
Clemens Ladisch
1da1c52d03 alsactl - add names for unique rawmidi subdevices
When a rawmidi device has subdevices with unique names, add names for
all of them instead of only one name for the device.
2005-05-12 08:27:11 +00:00
Clemens Ladisch
13e1fc1a1d alsactl - probe rawmidi device for rawmidi definitions
Try to open the rawmidi device instead of a pcm device with the
same name when probing virtual rawmidi definitions.
2005-05-11 07:43:39 +00:00
Clemens Ladisch
5c1b10dea0 fix name of hw sequencer definition
The name of the hardware sequencer definition is "hw", not "seq".
2005-05-11 07:41:09 +00:00
Jaroslav Kysela
31efc323b1 split source per command and added command 'names'
- sources are splitted to separate files
- added initial code for 'names' command
2005-05-10 10:55:24 +00:00
Takashi Iwai
ffa1ca09fe Fix exit code
Fixed the exit code for invalid options.  Now returns 1.
2005-01-31 17:49:04 +00:00
Takashi Iwai
6781eaa78c return error code on faillure
Patch by Thierry Vignaud <tvignaud@mandrakesoft.com>:

this enable callers to be aware of any faillure
2005-01-24 12:02:35 +00:00
Takashi Iwai
990153e3a4 Fix compilation
Fix compilation: the code was based on the developing version of alsa-lib...
2005-01-03 13:32:34 +00:00
Takashi Iwai
2b86b6fe4e Support user-defined controls
Support store/restore of user-defined controls.
Also, the numid is no longer checked when -F option is given.
The element is determined only from the given name, iface, index, device and
subdevice.
2005-01-03 11:56:27 +00:00
Nicolas FRANCOIS
ca5f8cbcfe Fix hyphens in man pages
This patch converts hyphens to minus signs in the man pages (for options,
emails, or command line examples).

This patch also closes one font modifier in iecset.1.
(s/\fIfalse\fI,/\fIfalse\fP,/)

Signed-off-by: Nicolas FRANCOIS <nicolas.francois@centraliens.net>
2004-10-08 16:15:34 +00:00
Takashi Iwai
b24728b015 fixes by Clemens Ladisch <clemens@ladisch.de>:
- fixed the check of wrong variable.
- suppress the "no state is present..." message if the card has
  no controls.
2003-06-20 18:13:28 +00:00
Takashi Iwai
43a2330ab0 - search cardX entry if no card is found and -F option is given (i.e.
force to read the old-style entry).
2003-06-20 18:09:49 +00:00
Jaroslav Kysela
5db7e98e6f Removed info_is_first - commited by mistake 2003-04-01 15:51:16 +00:00
Jaroslav Kysela
c8965f5622 alsactl: indirect removal; amixer - fixed typos 2003-04-01 14:09:09 +00:00
Takashi Iwai
fa0f6109a7 fixed the command line options. 2003-01-07 13:44:08 +00:00
Jaroslav Kysela
674e3161e0 type cleanups 2002-12-04 14:41:32 +00:00
Jaroslav Kysela
69a903d676 Fixed warning 2002-09-19 10:26:22 +00:00
Takashi Iwai
28d0fdaa6a added -F option to restore the matching control elements as much as
possible.
2002-09-06 15:21:01 +00:00
Takashi Iwai
83ea8891c4 fixed the error message 2002-08-06 07:46:19 +00:00
Jaroslav Kysela
bd2c771ca9 Added INTEGER64 support by Paul Davis 2002-05-13 09:54:24 +00:00
Jaroslav Kysela
bc638e8edb Updated GNU GPL (address) 2001-12-30 09:32:53 +00:00
Jaroslav Kysela
fcd84b4de0 Updated to snd_config_get_id changes 2001-11-19 12:00:18 +00:00
Jaroslav Kysela
ca506c695b Added man pages to EXTRA_DIST 2001-11-06 07:51:48 +00:00
Jaroslav Kysela
c72696ff39 Fixed thinkos (power on, power off) 2001-10-04 15:03:39 +00:00