Commit graph

1759 commits

Author SHA1 Message Date
Takashi Iwai
982786e9eb Fix bogus pause flag on dmix
Fix bogus PCM pause flag on dmix.  It doesn't support pause properly.
2006-07-25 15:36:13 +02:00
James Courtier-Dutton
5e3fc87888 Implement support for dB gain display in alsamixer. 2006-07-22 14:56:48 +01:00
Jaroslav Kysela
91273c228f Fix examples for PCM API. Fix dogygen warnings. 2006-07-11 21:48:51 +02:00
Jaroslav Kysela
c7a0708a23 Control API - add TLV support
snd_ctl_elem_tlv_read
snd_ctl_elem_tlv_write
snd_ctl_elem_tlv_command
snd_ctl_elem_info_is_tlv_readable
snd_ctl_elem_info_is_tlv_writable
snd_ctl_elem_info_is_tlv_commandable
snd_hctl_elem_tlv_read
snd_hctl_elem_tlv_write
snd_hctl_elem_tlv_command
2006-07-05 17:42:16 +02:00
Takashi Iwai
408697bfe2 Add config for new snd-aoa driver
Add a new config for new snd-aoa driver, aliased to PMacToonie.
2006-06-30 11:34:30 +02:00
Takashi Iwai
67ff9b7bf0 Fixed driver alias of Aureon 7.1 Universe
Fixed driver alias of Aureon 7.1 Universe.  Aureon71Universe was too long
as the driver name.  The corrected name is Aureon71Univ.
2006-06-29 16:43:56 +02:00
Takashi Iwai
f725af9987 Fix segfault with bindings parameters of dmix/dshare
Fix segfault with bindings parameters of dmix/dshare (bug#2235).
2006-06-27 12:08:38 +02:00
Takashi Iwai
bbbb06bc8f Turn on iec958 capture of iec1724 boards with spdif PCM
Automatically turn on iec958 capture of iec1724 boards
with spdif PCM via hooks plugin.
2006-06-23 14:42:59 +02:00
Takashi Iwai
da17b50892 Add default dmix rate and format definitions in alsa.conf
Added defaults.pcm.dmix_format and dmix_rate definitions to
alsa.conf.  They are referred as the default values of standard
dmix/dsnoop PCM.
2006-06-16 19:27:35 +02:00
Takashi Iwai
9984a0a4b4 Fix division-by-zero in snd_pcm_dump_hw_setup()
Fixed division-by-zero error in snd_pcm_dump_hw_setup().
2006-06-16 18:53:32 +02:00
Takashi Iwai
b3c3e355d9 Initialize all fields of slave PCM instance of direct plugins
Initialize all fields of slave PCM instance of direct plugins.
Some fields were not initialized properly.
2006-06-16 18:52:12 +02:00
Pierre Ossman
2a7f35347b Make snd_hctl_wait() respect the API
snd_hctl_wait() currently makes a lot of assumptions that fall outside
the defined API. snd_pcm_wait(), however, follows the API nicely so the
new version is based on that.

Signed-off-by: Pierre Ossman <ossman@cendio.se>
2006-05-26 17:27:00 +02:00
Pierre Ossman
3fd9369990 Allow ioplugins to override snd_pcm_delay()
Some io plug-ins might want to adjust the reported delay value and not
strictly follow the current buffer usage (that's why we have two calls
after all).

Allow them to specify a delay() callback and use the previous behaviour
if they don't.

Signed-off-by: Pierre Ossman <ossman@cendio.se>
2006-05-26 17:08:18 +02:00
Juan Carlos Castro y Castro
1d80c5b901 Addition of "infile" parameter (virtual mic) to the file plugin
When this new parameter is specified, the behavior of opening a file PCM
for input is changed to the following: reads from the device, instead of
being passed down to the slave PCM, will read the raw data from the
specified file. No file writes will take place in this case. In the
absence of this parameter, previous behavior is unchanged.

The input file name and descriptor are kept in the snd_pcm_file_t struct
in a manner analogous to the already existing output file parameter.

TODO:

(1) Only interleaved reads (snd_pcm_file_readi) have been implemented
for now.

(2) File read()'s that return a number of bytes that's not a multiple of
the frame size will result in data loss (choppiness). The rbuf,
rbuf_size_bytes, and rbuf_used_bytes members of the snd_pcm_file_t
struct will be used to address this problem in the future.

(3) Mind whether the PCM was opened in blocking mode. If so, we'll have
to loop until the buffer has been filled with read()'s.

Signed-off-by: Juan Carlos Castro y Castro <jcastro@vialink.com.br>
2006-05-19 18:26:41 +02:00
Takashi Iwai
daed233936 Fix surround40 config for ens1370
Fixed surround40 config for ens1370.  Added missing interface for
the hook control.
2006-05-18 11:26:00 +02:00
Takashi Iwai
ffebf01d61 Correction for fixing alsa-lib static build
Added the missing _snd_module_pcm_* definitions for static alsa-lib.

From: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2006-05-12 14:43:26 +02:00
Takashi Iwai
308f52e65a Fix a typo in pcm_file.c
Fix a typo in snd_pcm_file_readn().
2006-05-12 12:09:33 +02:00
Takashi Iwai
f9e0c56c46 Fix hwptr update in rate plugin
Fixed the update of hwptr in rate plugin.
This caused bad sounds on rate expansion and invalid memory access.
2006-05-03 19:18:28 +02:00
Takashi Iwai
ae363f57be Fix the description of return value of snd_config_search_definition()
Fixed the description of the return value of snd_config_search_definition().
2006-05-02 17:48:47 +02:00
Clemens Ladisch
123e2b7780 clarify SND_SEQ_PORT_TYPE_xxx documentation
Clarify the documentation for the SND_SEQ_PORT_TYPE_xxx flags, especially
for _SYNTH and *_SAMPLE where it was rather misleading.
2006-05-02 16:28:22 +02:00
Clemens Ladisch
c3ac7bdf87 add more sequencer port type information bits
Add four new information flags SNDRV_SEQ_PORT_TYPE_HARDWARE, _SOFTWARE,
_SYNTHESIZER, _PORT for sequencer ports.  This makes it easier for apps
like Rosegarden to make policy decisions based on the port type.
2006-05-02 16:08:36 +02:00
Takashi Iwai
c445fddab6 Fix device number of ICH4 iec958 controls
Fix device number of control emenets in ICH4 iec958 PCM hooks.
2006-05-02 14:30:33 +02:00
Takashi Iwai
eafb7ae5d8 Use O_APPEND mode with dmix & co plugins
Use O_APPEND mode (only if available) with dmix, dsnoop and dshare
plugins.  Using this mode, the plugin requires no resource server
any more.
2006-04-28 15:55:32 +02:00
Takashi Iwai
194ff97ea6 Fix delayed start with rate plugin
Add the internal start_pending state in the rate plugin for supporting
delayed start in the case no data is committed to slave PCM.

This fixes the problem of CPU hog with artsd.
2006-04-27 15:46:30 +02:00
Takashi Iwai
6ff727bb7f Add check of binding ranges in direct plugins
Add checks of slave channel numbers in bindings of dmix/dsnoop/dshare
plugins to avoid segfault.
Also, fix a possible memory leaks in the error path.
2006-04-26 18:30:44 +02:00
Takashi Iwai
4632e0f637 Fix segfault with dshare plugin
Fixed the segfault with dshare plugin at the second open.
2006-04-25 18:53:17 +02:00
Takashi Iwai
fc7bd60f0d Add missing snd_dlclose() in pcm_meter.c
Added the missing snd_dlclose() in snd_pcm_meter_close().
2006-04-25 17:32:48 +02:00
Takashi Iwai
9123203f8d Fix the error path of snd_pcm_hook_add_conf()
Fixed the segfault in the error path of snd_pcm_hook_add_conf()
(calling invalid install_func pointer).
Also, added the missing snd_dlclose() to release the handle properly.
2006-04-25 17:32:23 +02:00
Takashi Iwai
9c69158f31 Fix missing snd_dlclose() in sequencer
Call snd_dlclose() with the dlopen handle in snd_seq_close().
2006-04-25 17:27:26 +02:00
Takashi Iwai
b9c53dd962 Fix missing snd_dlclose() in timer handlers
Call snd_dlclose() properly for the dlopened handlers in timer
and timer_query closing functions.
2006-04-25 17:26:16 +02:00
Takashi Iwai
34e99ad251 Add missing snd_dlclose() in snd_hwdep_close()
Added the missing snd_dlclose() in snd_hwdep_close().
2006-04-25 17:24:39 +02:00
Takashi Iwai
701557db26 Fix compile error
Fix the declarations and code.
2006-04-18 13:00:57 +02:00
Takashi Iwai
0b9612772c Revert the last fix: finer sync of dmix in delay callback
The fix to enable finer sync of dmix in delay callback seems
rather harmful for some apps like xmms on SMP.
The problem of aoss was solved by max_periods=0, so better to
revert this change.
2006-04-12 12:31:39 +02:00
Takashi Iwai
69dda2f660 Fix compilation with assert()
Fix the position of assert() after the variable declarations.
2006-04-10 18:31:39 +02:00
Takashi Iwai
04a5f529db Add PCM definitions dpl and dpl2
Add PCM definitions "dpl" and "dpl2" in pcm/dpl.conf.
Include the file via
	<confdir:pcm/dpl.conf>
for use.
2006-04-06 19:08:27 +02:00
Takashi Iwai
8b79a92537 Allow negative coefficients in route plugin
Allow negative coefficients in route plugin (when handled as float).
2006-04-06 19:03:16 +02:00
Takashi Iwai
4c06a75a2f Finer sync of dmix in delay callback
Sync pointers in delay callback in dmix.  This solves some problems
of aoss with apps that don't check poll_revents.

The rate plugin is fixed to call delay of slave appropriately, too.
2006-04-06 19:01:02 +02:00
Takashi Iwai
a2ee8e20e8 Fix 32/64bit problem with multi plugin
Fix the problems of multi plugin with 32bit apps on 64bit kernel.
The forward/backward of hw plugin are fixed, too.
2006-04-06 18:55:59 +02:00
Takashi Iwai
1128efc7d4 Fix buffer size handling of direct plugins
Introduce "max_periods" option to specify the max number of periods
per buffer to each plugin.

- When max_periods = -1, the fixed buffer size as the slave size is
  used (old behavior).
- When max_periods = 0 (or 1), the number of periods is variable
  between 2 and the slave buffer size.
- When max_periods greater than 2 is given, it specifies the max
  periods of that pcm explicitly.

When no option is given in the PCM defintion, the value
"defaults.pcm.dmix_max_periods" is referred as default.
The default value is 0, as defined in alsa.conf.
You can override this in ~/.asoundrc or /etc/asound.conf as you like.
2006-04-06 18:49:11 +02:00
Takashi Iwai
33d69ef33b Create rate converter plugin SDK
Created a new rate converter plugin SDK.
A rate converter can be replaced as an extra plugin now.
The default rate converter is a built-in linear converter.

You can find a sample external converter in alsa-plugins package.
2006-04-06 18:37:55 +02:00
Takashi Iwai
ff176aa01a Make plugin functions static
Make plugin functions that are not referred from others static.
2006-03-29 09:35:14 +00:00
Takashi Iwai
d9dc944a75 Fix errors in partial reads/writes with rate plugin
Fix errors in partial reads/writes (e.g. draining) with rate plugin.
2006-03-29 09:33:46 +00:00
Takashi Iwai
18a6132a66 Fix PCM without control/status mmap
Fix the update of appl_ptr via mmap_commit when control/status structs
are not mmapped (e.g. 32bit compatible mode on 64bit kernel).
2006-03-29 09:32:18 +00:00
Takashi Iwai
504a2e34a4 Fix compile warnings
Fix compile warnings by adding cast.
2006-03-29 09:29:44 +00:00
Takashi Iwai
09c5db44a4 Fix noisy output of dmix with two periods
Fixed the noisy output of dmix with two (or less) periods.
The dmix tends to give noise or XRUN when running with two periods
because of its implementation nature.  To avoid this, the start
position is aligned to the period size, so that the updates are synced
with interrupts of slave PCM.
2006-03-24 14:53:41 +00:00
Takashi Iwai
1a9c520529 Fix PCM auto-start conditions
Fix the PCM auto-start conditions

- The capture stream should be started the PCM anyway before reads
- Fixed the endless poll() when the written size doesn't fit to the
  buffer size due to lack of auto-start
2006-03-24 14:51:24 +00:00
Takashi Iwai
912f0d5ddf Fix snd_pcm_write*() return values at start up
If an error occurs at starting the stream, snd_pcm_write*() should return
an error value instead of the size to be written.
2006-03-24 14:41:40 +00:00
Takashi Iwai
dc438157c5 Fix the description of snd_mixer_handle_events()
Fixed the description about the return value of snd_mixer_handle_events()
(ALSA bug#1932).
2006-03-21 16:58:32 +00:00
Juergen Kreileder
5ba4634ab5 Add support for S32_3LE and byte-swapped S16/S32 to softvol
Here's a patch which adds support for S24_3LE and byte-swapped S16 and
S32 to softvol.  I've tested S24_3LE and byte-swapped S16 on powerpc
with snd-usb-audio.  All other cases are untested so far.
(Config at http://blog.blackdown.de/static/alsa/USB-Audio.conf)

Signed-off-by: Juergen Kreileder <jk@blackdown.de>
2006-03-21 16:55:25 +00:00
Takashi Iwai
91066a98b9 Fix timer read from 32bit user-space on 64bit kernel
snd_timer_tread struct is a bad design for 32/64bit compatibility,
and reading this struct on 32bit program returns zero.  This results
in tight poll looping (bug#1938, #1945).

For avoiding this bug, now more bigger buffer is read to cover the
64bit tread struct, too.  Also this optimizes the read without
checking -EAGAIN in the case both user-space and kernel have the same
tread size.
2006-03-21 10:39:49 +00:00