Commit graph

185 commits

Author SHA1 Message Date
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