alsa-lib/src/pcm
Steve Longerbeam 63e4c591f9 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>
2007-05-18 15:04:12 +02:00
..
scopes Change .so module name and installation patch (/usr/lib/alsa-lib/scopes) 2005-06-07 11:31:18 +00:00
atomic.c Moved some prototypes from src/pcm/pcm_plugin.h to include/pcm_plugin.h. 2002-01-12 10:52:42 +00:00
interval.c Removed more asserts 2003-05-28 18:49:15 +00:00
interval.h Added snd_interval_set_min_max()... 2003-02-17 10:21:24 +00:00
interval_inline.h Added snd_interval_set_min_max()... 2003-02-17 10:21:24 +00:00
ladspa.h big ALSA LADSPA plugin rewrite for multiple channel LADSPA plugins 2005-12-13 14:08:58 +00:00
Makefile.am Revert the wrong change in src/pcm/Makefile.am 2007-05-15 15:58:58 +02:00
mask.c Updated GNU GPL license (address). 2001-12-30 09:22:54 +00:00
mask.h Enhanced bitmasks in PCM - added support for more formats by Takashi and me 2002-06-26 02:04:11 +00:00
mask_inline.h Removed more asserts 2003-05-28 18:49:15 +00:00
pcm.c Add config and plugin directory options to configure 2007-05-03 20:55:54 +02:00
pcm_adpcm.c remove superfluous free() checks 2006-02-27 09:58:32 +00:00
pcm_alaw.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_asym.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_copy.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_direct.c fix a signedness warning 2007-03-12 08:27:15 +01:00
pcm_direct.h Initialize all fields of slave PCM instance of direct plugins 2006-06-16 18:52:12 +02:00
pcm_dmix.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_dmix_generic.c Fixes S16 byte swapping with generic dmix code 2006-03-20 20:24:13 +00:00
pcm_dmix_i386.c dmix: add S24_3LE support 2005-12-19 07:39:03 +00:00
pcm_dmix_i386.h dmix: add S24_3LE support 2005-12-19 07:39:03 +00:00
pcm_dmix_x86_64.c dmix: add S24_3LE support 2005-12-19 07:39:03 +00:00
pcm_dmix_x86_64.h Fix build issue on earler x86_64 based distributions 2006-08-21 19:12:33 +02:00
pcm_dshare.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_dsnoop.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_empty.c added pcm_empty plugin and .hgignore additions 2006-10-13 18:01:27 +02:00
pcm_ext_parm.h Add filter-type external plugin SDK 2005-02-14 13:33:08 +00:00
pcm_extplug.c Correction for fixing alsa-lib static build 2006-05-12 14:43:26 +02:00
pcm_file.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_generic.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_generic.h More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_hooks.c Allow build without libdl and libpthread 2007-03-22 00:48:18 +01:00
pcm_hw.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_iec958.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_ioplug.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_ladspa.c Allow build without libdl and libpthread 2007-03-22 00:48:18 +01:00
pcm_lfloat.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_linear.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_local.h String array for default rate plugin list 2007-03-22 00:58:42 +01:00
pcm_meter.c fix various warnings 2006-10-06 13:18:34 +02:00
pcm_misc.c Fix type-punning 2005-09-29 19:11:50 +00:00
pcm_mmap.c pcm - fix the buffer allocation for NONINTERLEAVED mmap access 2006-01-02 12:16:59 +00:00
pcm_mulaw.c Fix infinite parse of recursive definitions 2006-01-30 14:41:51 +00:00
pcm_multi.c Trivial fix of compile warning 2007-03-22 01:17:22 +01:00
pcm_null.c Fix buffer allocation and mmap with plugins 2005-09-02 16:36:40 +00:00
pcm_params.c Fix compile warnings with gcc-4 2005-06-28 10:24:44 +00:00
pcm_plug.c String array for default rate plugin list 2007-03-22 00:58:42 +01:00
pcm_plugin.c More better fix for linked start/stop 2007-03-13 02:52:33 +01:00
pcm_plugin.h Make plugin functions static 2006-03-29 09:35:14 +00:00
pcm_rate.c Add config and plugin directory options to configure 2007-05-03 20:55:54 +02:00
pcm_rate_linear.c Create rate converter plugin SDK 2006-04-06 18:37:55 +02:00
pcm_route.c Allow negative coefficients in route plugin 2006-04-06 19:03:16 +02:00
pcm_share.c remove superfluous free() checks 2006-02-27 09:58:32 +00:00
pcm_shm.c remove superfluous free() checks 2006-02-27 09:58:32 +00:00
pcm_simple.c Fix doxygen documents 2005-05-24 14:14:28 +00:00
pcm_softvol.c Add support for gain in softvol plugin 2007-05-18 15:04:12 +02:00
pcm_symbols.c Fix build of static library 2006-10-27 16:08:21 +02:00
plugin_ops.h Improve the sample conversion in plug layer 2007-03-09 17:06:23 +01:00