Jaroslav Kysela
d25e281230
Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz
2007-10-15 10:24:55 +02:00
Takashi Iwai
8048321c76
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.
2007-03-13 02:52:33 +01:00
Jaroslav Kysela
10cca7c03b
pcm direct plugins - fix memory leak (sconf must be deleted)
2006-10-12 14:42:45 +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
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
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
7e6c920836
dmix - Allow more flexible buffer sizes
...
With the patch, dmix allows apps to use more flexible buffer sizes.
The max buffer size is unlimited, and the minimal buffer size is
(period size * 2). The buffer size is aligned to period size.
The period size is still bound to the period size of slave PCM.
To back to the old behavior (the fixed buffer size), you can set
defaults.pcm.dmix_variable_buffer false
in your configuration.
2006-03-21 10:27:35 +00:00
Clemens Ladisch
8f61812f1c
return ENODEV for disconnected devices
...
Return -ENODEV instead of -ENOTTY for disconnected devices.
2006-03-03 14:08:58 +00:00
Clemens Ladisch
4433248bf3
remove superfluous free() checks
...
free() correctly handles NULL pointers, so we can omit explicit checks
for that condition.
2006-02-27 09:58:32 +00:00
Takashi Iwai
eccc92a34d
Fix infinite parse of recursive definitions
...
Fixed the infinite parse (and eventually segfault) of recursive definitions.
Also fixed the parse of a string slave PCM of direct plugins.
2006-01-30 14:41:51 +00:00
Takashi Iwai
7eff603576
Support multi-card/device for direct plugins
...
- Support multi-card/device for dmix/dsnoop/dshare plugins
The unique ipc key is calculated based on card/device/sub index
- Clean up and share the code among all d* plugins
- Refer the defaults.pcm.* configuration
The base ipc_key number, ipc_gid and ipc_perm are referred.
2006-01-16 13:15:32 +00:00
Jaroslav Kysela
bdfbbed5ca
pcm dump() routines update: use spaces to indent texts
2005-12-11 08:24:13 +00:00
Jaroslav Kysela
8b908f233d
direct plugins - fixed ipc_gid initialization when gid specified as number
2005-12-04 09:19:11 +00:00
Takashi Iwai
d4bbf241ba
Abort from snd_pcm_dshare_drain in XRUN state
...
Fixed the hang-up in snd_pcm_dshare_drain() when the state is XRUN.
2005-11-21 10:51:43 +00:00
Jaroslav Kysela
ba21d25808
direct pcm plugins - fixed dump output name for dshare and dsnoop
2005-11-01 13:35:52 +00:00
Takashi Iwai
ea77e08cc6
Misc fixes
...
Fixes of spots found via valgrind
- non-freed chunks after snd_config_get_ascii()
- zero-fill records (to make valgrind happy)
- compile warning fixes
2005-08-17 17:27:16 +00:00
Jaroslav Kysela
bac9a7de83
direct plugins (dmix) - suspend/resume fixes
...
- this patch adds support for suspend & result for dmix and other
direct plugins
- the timer detection / initialization (TREAD support) was redesigned and
the check for proper driver version was moved to the timer_hw.c
2005-08-16 12:19:15 +00:00
Takashi Iwai
e80f80866f
Fix direct plugins running on 32bit emulation with 64bit arch
...
Fix the problems of dmix/dsnoop/dshare plugins running on 32bit mode with
64bit biarch.
2005-08-12 15:53:02 +00:00
Jaroslav Kysela
4b7e3cff81
added ipc_gid for direct plugins
2005-05-30 10:13:54 +00:00
Takashi Iwai
087184b0f9
Fix doxygen documents
...
Fix the warnings of doxygen parsing.
Add some missing documentation.
2005-05-24 14:14:28 +00:00
Takashi Iwai
dd37bb20ee
Move poll_* callbacks to fast_ops
...
Moved poll_* callbacks to fast_ops.
These callbacks may be called frequently indeed.
2005-05-23 09:03:16 +00:00
Takashi Iwai
a3ae02d884
Fix semaphore deadlocks
...
- Fixed unbalanced semaphores (which may cause deadlock)
- Do semaphore-up before blocking calls for communication with the server
- Don't discard semaphores on the client side
- Open slave PCMs always in non-blocking mode to avoid blocking by semaphore
with the secondary open
2005-05-23 08:56:48 +00:00
Takashi Iwai
ddd9c29a0d
Fix dshare plugin codes
...
Modify dshare plugin codes to follow the recent change of dmix:
proper XRUN and poll handling, async data transfer.
2005-05-23 08:51:59 +00:00
Takashi Iwai
a6d3b9e4e0
Remove poll_ask callback
...
Removed poll_ask callbacks.
poll_ask function is merged to poll_descriptors callbacks.
2005-05-18 10:50:09 +00:00
Takashi Iwai
51313cb2dd
Remove pause and fix timer initialization in prepare
...
- Removed broken pause implementations.
- Fixed the timer initialization in prepare callback so that poll
works again after prepare.
2005-05-17 09:28:29 +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
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
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
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
Jaroslav Kysela
b7e8f57314
Try to fix period_time/period_size problems for direct plugin slaves
2004-10-29 10:56:13 +00:00
Jaroslav Kysela
eafb492512
- added SYNC_PTR ioctl support for pcm_hw plugin
2004-05-22 10:14:32 +00:00
Clemens Ladisch
ef11ba77ed
document all PCM plugin parameters
2004-04-26 07:40:12 +00:00
Jaroslav Kysela
7c201b510a
- added poll_ask callback to mangle avail_min (rate_plugin as example)
...
- added mangling of avail_min to rate_plugin
- added poll_fd_count variable
- FIXME: move poll_revents callback to fast_ops
2004-03-17 11:48:14 +00:00
Jaroslav Kysela
819a85fb2c
Added sync_ptr callback
2004-01-23 13:04:43 +00:00
Jaroslav Kysela
c508b496b4
Fixed poll() behaviour for direct plugins, also added snd_pcm_hwsync() call to start callback
2004-01-21 19:21:11 +00:00
Jaroslav Kysela
eeb5d6f0ac
Added slowptr options to direct plugins
2004-01-20 15:29:39 +00:00
Jaroslav Kysela
9105bb7fcd
Added SNDRV_PCM_STATE_DISCONNECTED state.
...
Changed direct plugins to handle DISCONNECT/SUSPEND states from slave.
2004-01-19 19:48:27 +00:00
Jaroslav Kysela
0545cf711d
Maik Broemme <mbroemme@plusserver.de>
...
- added ipc_perm for dmix plugin
Jaroslav Kysela <perex@suse.cz>
- added ipc_perm for dsnoop and dshare plugins
- added ipc_perm to doc/asoundrc.txt
2003-12-07 09:30:47 +00:00
Takashi Iwai
cdb9bc5139
added more documents and examples about plugins.
2003-10-23 14:42:47 +00:00
Jaroslav Kysela
95418afc67
Direct plugins update:
...
- moved more common code to pcm_direct.c
- added missing initialization of some variables in hw_params
2003-09-02 10:32:33 +00:00
Takashi Iwai
18927bfe9a
fixed dmix crashes by Clemens Ladisch <clemens@ladisch.de>:
...
pcm->name can be NULL (when an unnamed pcm node is embedded in another
pcm)
2003-08-07 14:20:32 +00:00
Takashi Iwai
7716fd1e3d
fixes by Art Haas <ahaas@airmail.net>:
...
rewritten with C99 struct initialization style.
2003-07-25 17:02:00 +00:00
Jaroslav Kysela
e03aaa1888
Added unlink of the communication socket name.
...
Added retry when the semaphore is lost (server is going down and removes
the global semaphore). Now the application creates a new direct server
automagically rather than the error return.
2003-07-15 19:15:10 +00:00
Jaroslav Kysela
6633460801
Clemens Ladisch <clemens@ladisch.de>
...
fix some wrong section/file/reference names
2003-07-01 09:23:38 +00:00
Jaroslav Kysela
573f85dc1d
- added shm area manager code
...
- fixed parsing of period_size/buffer_size options for dmix, dsnoop and
dshare plugins
2003-04-23 12:41:55 +00:00
Jaroslav Kysela
05d57ff3be
Added missing sync_ptr() call to pcm_status() function
2003-04-19 13:12:59 +00:00
Jaroslav Kysela
7470a5b9af
dshare and dsnoop plugins are working now
2003-03-19 16:35:35 +00:00
Jaroslav Kysela
bc28eccdcd
Extracted common code from dmix plugin.
...
Initial framework for dsnoop and dshare plugins.
2003-03-18 20:37:42 +00:00