i386/x86_64 alsa-lib may need to handle big-endian formats, e.g.
when running via qemu on PPC. The generic dmix code already has
both endian support, so let's use it as fallback.
Clemens Ladisch [Mon, 21 May 2007 07:13:19 +0000 (09:13 +0200)]
dmix/dshare/dsnoop plugin: enable slowptr by default
Enabling the slowptr options does not make snd_pcm_delay() and related
functions much slower than they would have been with a hw device, while
disabling this option greatly reduces the accuracy of those functions,
thus creating more jitter in any media player application that
synchronizes its output to the sound device.
Therefore, it is preferrable to have this option enabled by default.
Steve Longerbeam [Fri, 18 May 2007 13:04:12 +0000 (15:04 +0200)]
Add support for gain in softvol plugin
This patch allows for gain in the softvol plugin, in addition to attenuation.
The plugin now has a "max_dB" parameter (up to 50 dB) as well as the
original "min_dB" parameter (down to -51 dB). max_dB defaults to 0 dB, so
unless max_dB is specified in a device conf, the behavior of the plugin will
be the same as before (attenuation only).
HDA-Intel.conf is also modified to use softvol for its default capture.
So now, capture is filtered through softvol (range -30 to +30 dB) before
being passed on to dsnoop as before.
The softvol plugin allows a range of -51 to +50 dB, so max_dB could be
increased to 50. But eventually samples are going to get clipped. At 40
dB I was beginning to get clipping when recording a sample sound at a
"reasonably soft" volume using a digital mic on the stac9205 HDA codec.
The motivation for this work is that some HDA codecs have no hardware gain
control for some paths. For instance, the stac9205 has support for digital
mics, but there is no gain control widget for this signal before it is placed
on the Azalia link (only a mute). Therefore gain can only be accomplished
via software.
Signed-off-by: Steve Longerbeam <stevel@embeddedalley.com>
Takashi Iwai [Thu, 3 May 2007 18:55:54 +0000 (20:55 +0200)]
Add config and plugin directory options to configure
Added --with-configdir and --with-plugindir options to configure
which specify the directories for config files and plugin objects
respectively. The default paths when these options are not
specified are unchanged.
Added --enable-symbolic-functions configure option. This will detect
and pass -Bsymbolic-functions linker option, which gives you better
performance and smaller binary size. Only recent binutils supports
this option.
Takashi Iwai [Wed, 21 Mar 2007 23:58:42 +0000 (00:58 +0100)]
String array for default rate plugin list
Change the rate converter type to allow string arrays in addition to
a string. When a string array is given, the rate plugin probes each
string and try to load the converter plugin in the order of the list.
For example, you can set
defaults.pcm.rate_converter [ "samplerate" "linear" ]
so that samplerate plugin is preferred to linear plugin if it's
installed.
Rene Herman [Wed, 21 Mar 2007 11:21:38 +0000 (12:21 +0100)]
Fix alsa-devel ML address
This replaces all occurences of alsa-devel@lists.s[ource]f[orge].net
that a simple recursive grep found in the current HG ALSA repos by
alsa-devel@alsa-project.org.
Signed-off-by: Rene Herman <rene.herman@gmail.com>
Takashi Iwai [Tue, 13 Mar 2007 01:52:33 +0000 (02:52 +0100)]
More better fix for linked start/stop
Instead of link_fd, more generic callback link_slaves is introduced.
This is called for linking the slave streams as the source to the
given master stream.
Takashi Iwai [Fri, 9 Mar 2007 14:30:38 +0000 (15:30 +0100)]
Check _POSIX_SOURCE for timeval definition
Check _POSIX_SOURCE for struct timeval definition.
In rare cases, _POSIX_C_SOURCE isn't defined but only _POSIX_SOURCE
is set, and it results in the confliction of timeval definition.
Clemens Ladisch [Mon, 12 Feb 2007 12:45:03 +0000 (13:45 +0100)]
remove superfluous strdup() calls
Remove same calls of strdup() that were unnecessary because the
temporary string would not be modified or held longer than the lifetime
of the original string.
Takashi Iwai [Fri, 19 Jan 2007 17:36:48 +0000 (18:36 +0100)]
Update emu10k1.h for new version
Updated emu10k1.h for newer version.
The size of emu10k1_fx8010_control_gpr_t is changed. The apps need to
issue SNDRV_EMU10K1_IOCTL_PVERSION first to switch to the new ABI.
Jaroslav Kysela [Wed, 20 Dec 2006 15:01:27 +0000 (16:01 +0100)]
pcm_ladspa - fix none policy
In some configurations, channel samples were not copied correctly.
Also, fix memory leaks and remove extra end-of-line chars from SNDERR
strings.
Clemens Ladisch [Mon, 4 Dec 2006 17:20:40 +0000 (18:20 +0100)]
direct pcm plugins: fix format selection
The old format tried to do something when the requested format was not
supported by the hardware, but did not actually select any other format.
Now we try to switch to any format supported by dmix, or any other
format when the plugin is not dmix.
Clemens Ladisch [Mon, 4 Dec 2006 17:14:13 +0000 (18:14 +0100)]
direct pcm plugins: fix channel number selection
The code to set the number of channels did not work when the requested
channel count was not available and when the min/max channel counts were
not identical.
Replacing the entire selection code with
snd_pcm_hw_params_set_channels_near() gives the same result in the cases
where it previously worked, and works in all other cases.
Clemens Ladisch [Mon, 4 Dec 2006 17:07:46 +0000 (18:07 +0100)]
fix string list parameter in snd_device_name_(free_)hint prototypes
Fix the type of the string list parameter in the prototypes of
snd_device_name_hint() and snd_device_name_free_hint(). The prototypes
used char**, while the implementation and the users are using void**.
Takashi Iwai [Fri, 20 Oct 2006 15:57:16 +0000 (17:57 +0200)]
Revert dmix.conf and dsnoop.conf
Revert dmix.conf and dsnoop.conf.
The ipc key offset had been already modified to be unique for
each card, stream, device and subdevice interanally in dmix &
co plugins.
Jaroslav Kysela [Thu, 12 Oct 2006 12:34:23 +0000 (14:34 +0200)]
more name hint interace updates
- add long card name to device description
- create empty PCM plugin to allow right hint description parsing
- reorder devices in alsa.conf
- make namehint more configurable (using default.namehint.showall switch)
- add two levels basic and exteded for hints to default configuration files
- do not show direct device aliases
- removed all known memory leaks
Jaroslav Kysela [Wed, 11 Oct 2006 11:59:42 +0000 (13:59 +0200)]
fix two issues in snd_device_name_hint()
- returned wrong error when the namehint section does not exist
- variable underflow for the rawmidi interface
Jaroslav Kysela [Wed, 11 Oct 2006 11:18:57 +0000 (13:18 +0200)]
add snd_device_name_hint() function and initial implementation
- add snd_device_name_hint() and snd_device_name_free_hint() functions
- add snd_ctl_iface_conf_name() functions
- do not accept parameters for the plugin definition without @args section
- add defaults.pcm.dmix.card/device and dsnoop.card/device definitions
- add hints for HDA-Intel.conf, pcm/dmix.conf, pcm/dsnoop.conf and alsa.conf
- add test/namehint test utility
- doxygen related cleanups
-lm -ldl -lpthread are _not_ needed in Libs (since the alsa interface
doesn't depend on libm, libdl or libpthread interface) and just bring
unneeded dependencies. These should rather be put in Libs.private:
Takashi Iwai [Wed, 4 Oct 2006 15:33:25 +0000 (17:33 +0200)]
Use dmix/dsnoop for maestro3 boards
Use dmix/dsnoop for maestro3 boards. Although maestro3 has multiple
playback capability, it supports only two streams (with the currently
available firmware).
Mike Frysinger [Wed, 4 Oct 2006 15:30:26 +0000 (17:30 +0200)]
allow building out of tree (sort of)
the current configure script assumes that it will be run in the srcdir ... i
often build things out of tree so you can quickly punt all the generated
files:
mkdir build
cd build
../configure
cd ..
rm -r build
clean!
this tweaks the configure script in a few places to use the correct variable
instead of assuming that configure is always in $PWD ...
i say "sort of" in the subject because there is still the issues of the pcm
symbols list being generated in $builddir instead of $srcdir and the alsa
include symlink, but these doesnt really concern me for what i need ;)
Jaroslav Kysela [Wed, 4 Oct 2006 08:39:55 +0000 (10:39 +0200)]
alsa-lib: test dir: make check: static building doesn't work on PIC architectures
Some architectures, such as AMD64, IA64 and Alpha cannot mix PIC and non-PIC
objects when creating a PIC output. Hardened compilers (which uses SSP and
PIE) creates PIC executables, passing -static in CFLAGS for tests in make
check in alsa-lib makes their linking to fail.
If volume or switch write fails, the internal contents for element
is changed, but it is wrong. Reread the whole simple element in this
case to get correct values.
Clemens Ladisch [Wed, 27 Sep 2006 09:11:29 +0000 (11:11 +0200)]
rate plugin: fix boundary calculations
Make sure that the rate plugin does not try to change the slave's
boundary value when setting software parameters; such a change wouldn't
affect the slave pcm.
Furthermore, the stop_threshold conversion code used the wrong boundary
value, and the silence_size conversion code did not take into account
the boundary value at all.
Mike Frysinger [Tue, 26 Sep 2006 13:38:35 +0000 (15:38 +0200)]
remove unneeded headers from alsa-lib/src/alisp/alisp.c
the alisp.c file includes wordexp.h even though it doesnt actually use any
wordexp functions ... causes trouble when target doesnt have wordexp
support :)