Commit graph

1046 commits

Author SHA1 Message Date
Takashi Iwai
5c91ee386d Check PCM format aliases
Check PCM format alias strings (e.g. "S16") as acceptable PCM formats.
2005-03-29 16:34:31 +00:00
Takashi Iwai
9207804912 Generic architecture support
Support dmix on generic architectures without atomic operations but
using a semaphore to avoid concurrent accesses.  This is less effective
than atomic operations but should work on every system.
2005-03-29 14:13:04 +00:00
Takashi Iwai
6a6a70ffe7 Do hwsync of slave PCM on dmix
Call hwsync of slave PCM on snd_pcm_hwsync() over dmix.
This reduces ocasional output noises, typically seen in xmms and bmp with
multi-threading on SMP/HT systems.

Disabled slowptr of default dmix definition again.
2005-03-29 14:10:16 +00:00
Takashi Iwai
5e325ea18b Delayed start for dmix
Introducing a private state for the delayed start of PCM stream.
This problem occurs when the rate plugin doesn't feed the data
properly before triggering START.  This results in weird problems,
e.g. an inifinte loop of artsd eating 100% CPU time.

To solve this problem, the state is marked as "pending" when no
data appears at the trigger, and the stream is started later at
the mmap commit.
2005-03-29 14:06:00 +00:00
Takashi Iwai
c5c9b2c8bb Fix noises on exapnd
Fixes noise on rate expansion (bug #1018).
2005-03-29 13:52:41 +00:00
Takashi Iwai
e64cab565e Fix noises in rate exapnsion
Fixed noises in rate exapnsion.
2005-03-24 20:28:56 +00:00
Takashi Iwai
248d0b285c Fix compilation with gcc-4.0
Fixed compilation with gcc-4.0
2005-03-22 18:49:07 +00:00
Takashi Iwai
dab2b58e0e Fix resume of dmix, dsnoop and dshare plugins
Fix the resume of dmix, dsnoop and dshare plugins.

[This replaces the timer mode with TREAD mode, and may trigger Oops
 with the older kernel...]
2005-03-15 11:39:51 +00:00
Takashi Iwai
8003e03b50 Small code clean up
Small code clean up for readability.
2005-03-09 12:00:37 +00:00
Takashi Iwai
73008debc3 Add snd_pcm_parse_control_id()
Added a new function snd_pcm_parse_control_id() for the user controls.
This can be used in external plugins, too.
2005-03-09 11:57:54 +00:00
Takashi Iwai
227441b2c8 More doxygen comments
Added more doxygen comments in pcm_extplug and pcm_ioplug codes.
2005-03-09 11:54:58 +00:00
Clemens Ladisch
85171640fa fix the file plugin
Call snd_pcm_file_hw_params instead of snd_pcm_generic_hw_params
to prevent a crash when the file plugin is used.
2005-02-28 08:25:12 +00:00
Takashi Iwai
809e31561a Initialize structs for ioctls
Initialize the argument structs before calling ioctls to make
valgrind happy.
2005-02-24 20:57:56 +00:00
Takashi Iwai
7e5a7fbdbf Remove JACK plugin
Removed JACK plugin.  It's in alsa-plugins now.
2005-02-24 10:16:51 +00:00
Takashi Iwai
145f85fff8 Accept string type card
Accept string type card entry to be compatible with others.
2005-02-22 20:21:23 +00:00
Takashi Iwai
cf6e569bd7 Code clean-up
Small code clean-up
2005-02-14 15:48:14 +00:00
Takashi Iwai
d8f7de1b16 Support dl-object cache
Added the support of dl-object caches for PCM plugins.
2005-02-14 15:09:09 +00:00
Takashi Iwai
5eb794fe0b Add filter-type external plugin SDK
Added the SDK for filter-type PCM plugins.
Share some codes with ioplug.
2005-02-14 13:33:08 +00:00
Takashi Iwai
f9b9015245 Fix resmgr support
Call normal open() before trying with res_open_device().
snd_open_device() is defined to do this procedure.
2005-02-11 16:35:24 +00:00
Takashi Iwai
237d46cfb6 Fix compile warnings
Fixed compile warnings with unused variables.
2005-02-09 17:28:08 +00:00
Takashi Iwai
94c4cdcd30 Add external PCM plugin SDK (draft version)
Added the external PCM plugin SDK (draft version).
This can be used to create external PCM plugins.
Example codes are found in alsa-plugins directory.
2005-02-08 20:57:51 +00:00
Takashi Iwai
d7a32ca06b Fix hw_params of lfloat plugin
Fixed the bogus hw_refine call in hw_params of lfloat plugin.
2005-02-08 20:48:39 +00:00
Takashi Iwai
22846c486f Split arch-dependent codes of dmix
Split arch-dependent codes of dmix to separate files.
2005-02-08 20:28:29 +00:00
Clemens Ladisch
c92969845d start pcm when draining in prepared state
For consistency with hw pcms, dmix/dshare pcms are started
when draining in the prepared state with a non-empty buffer.
2005-02-07 09:13:58 +00:00
Takashi Iwai
77c925a71f Add resmgr support
Added the support for resmgr.  A new configure option --with-resmgr is added
to enable the resmgr support.
2005-01-26 10:50:28 +00:00
Takashi Iwai
7e74f2ef1b Fix the available formats
Fixed the available formats to be set in hw_refine.
2005-01-21 19:38:10 +00:00
Takashi Iwai
680a60a688 Use snd_config_get_bool()
Cleanup using snd_config_get_bool() in possible places.
2005-01-21 19:37:00 +00:00
Jaroslav Kysela
a5831c7300 The stream linking problem for pcm_multi.c should be fixed now
- extended link_fd callback
- added snd_pcm_generic_link2()
- added _snd_pcm_link_descriptors()
2005-01-20 18:37:13 +00:00
Takashi Iwai
6cac58179b Add pcm_generic.h
Added the missing pcm_generic.h.
2005-01-20 17:46:33 +00:00
Jaroslav Kysela
836987aa99 improved stream linking and plugin code cleanups
- added link/unlink/link_fd fast_ops callbacks
- moved code from snd_pcm_link to pcm_hw.c
- moved "empty" routines pointing to slave to pcm_generic.c
- introduced snd_pcm_generic_t
2005-01-20 15:07:51 +00:00
Takashi Iwai
71ee169307 Fix compile warning
Fixed compile warning with printf() and timeval sizes.
2005-01-19 13:43:25 +00:00
Takashi Iwai
0994cf7aae Fixed compile warning
Fixed compile warning.  The strlen() returns size_t, not integer.
2005-01-19 13:37:14 +00:00
Takashi Iwai
340018db8a Fix a typo
Fixed a typo in comment by Kirill Smelkov <kirr@mns.spb.ru>
2005-01-13 17:28:11 +00:00
Takashi Iwai
ff9c030e65 Use snd_config_get_bool()
Clean up the code, using snd_config_get_bool().
2005-01-13 15:46:34 +00:00
Takashi Iwai
5211c26927 Fix compile warning
Fixed compile warning due to signed/unsigned comparison.
2005-01-12 11:19:47 +00:00
Takashi Iwai
c83e9d7451 Fix handling of DISCONNECT state
Fixed the handling of DISCONNECT state in dmix (not to set bogus error
values to state).
2005-01-11 17:42:49 +00:00
Takashi Iwai
c67584ec65 Clear sw_params struct at initialization
Do zero-clear the sw_params struct in hw_params, just to be sure.
This makes valgrind happy.
2005-01-11 15:11:09 +00:00
Takashi Iwai
a920ca39db Performance optimization
The performance of rate conversion is optimized.
- with S16 format, no format conversion is done
- linear polation of expansion uses 16bit resolution
2005-01-04 13:57:51 +00:00
Takashi Iwai
c7feb066b1 Support stereo volume control
softvol supports stereo volume controls.
Fixed the dB calculation, too.
2005-01-04 11:37:29 +00:00
Takashi Iwai
7e92411760 Fix missing declaration
Fixed the missing declration of softvol plugin.
2005-01-03 18:19:23 +00:00
Takashi Iwai
82e408d08b Set max volume as default for softvol
Set max volume as default for softvol.
2005-01-03 17:12:51 +00:00
Takashi Iwai
199d207423 Change the behavior with hardware volume controls
When a hardware volume control is given, softvol plugin simply
passes the slave PCM without any additional changes.
2005-01-03 14:37:39 +00:00
Takashi Iwai
0732cce6f0 Add accessor to user control elements
Added accessor functions to user control elements, snd_ctl_elem_add_*(),
and_ctl_elem_remove() and snd_ctl_elem_info_is_user().
2005-01-03 11:52:39 +00:00
Takashi Iwai
30f35c1f7a Add softvol PCM plugin
The softvol PCM plugin is added.  It applies the software volume attenuation,
which may be useful for codecs without volume controls.

Currently, the control is only mono.  The attenuation is applied to all
channels equally.  The control is probed and automatically created
when not exists yet.
2004-12-27 14:40:19 +00:00
Clemens Ladisch
5c9ee5ef03 fix changed error message handling
In the last error message handling change, some error conditions
didn't get properly inverted.
2004-12-23 08:15:46 +00:00
Takashi Iwai
2b54677fdb Change error message handling
Change the handling of non-fatal errors.  Now the non-fatal error
messages are not shown in stderr and no assert() as default.  The
behavior can be changed with LIBASOUND_DEBUG environment variable.
2004-12-21 14:11:00 +00:00
Takashi Iwai
73aa2549d9 Add preamble value configuration for iec958 plugin
The preamble values can be defined in iec958 plugin configuration.
As default, Z/Y/X=8/4/2 is used.  CMI8338 has different values,
so override in its configuration.
2004-12-15 15:17:36 +00:00
Kirill Smelkov
0256e1e8c9 Fixed few typos in documentation.
Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
2004-12-08 19:22:42 +00:00
Andreas Fenkart
0ed778404d Fixes variable shadow problem in capture direction
My gnomemeeting hung when accessing the microphone.
The problem was that the rate variable was not initialized when jumping to
the __partial label.
Signed-off-by: Andreas Fenkart <afenkart@gmx.ch>
2004-11-22 06:40:10 +00:00
Jaroslav Kysela
457b8777ab fix for capture for case when status/control structures are not mmaped 2004-11-16 16:03:01 +00:00