Jaroslav Kysela [Thu, 8 Sep 2005 06:48:30 +0000 (06:48 +0000)]
direct plugins - change group according ipc_gid for the socket file
This patch fixes problem when ipc_perm are 0660 and you want to share dmix
with more users in the specified group.
Fixed the bug producing silent tones with some combinations of plugins.
The internal buffer handling is now better (cleaner) integrated with
snd_pcm_generic_*().
Jaroslav Kysela [Wed, 24 Aug 2005 10:41:16 +0000 (10:41 +0000)]
mixer API - extend simple enumerated controls for direction tests
Added snd_mixer_selem_is_enum_playback() and
snd_mixer_selem_is_enum_capture() functions.
Jaroslav Kysela [Mon, 22 Aug 2005 12:07:55 +0000 (12:07 +0000)]
moved simple mixer abstraction modules to modules/mixer/simple directory
Compile dynamic modules outside the alsa-lib tree to allow linking them
against libasound.so - proper versions of dynamic symbols.
Jaroslav Kysela [Thu, 18 Aug 2005 10:42:22 +0000 (10:42 +0000)]
PCM direct plugins - handle EINTR in the resource server
The poll() call in the resource server for PCM direct plugins might be
interrupted with an signal. Handle the case gracefuly and don't exit
the server (which brings another problems - cannot connect to socket -
later).
Jaroslav Kysela [Tue, 16 Aug 2005 12:19:15 +0000 (12:19 +0000)]
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
attached is an updated ICE1724.conf - I have added channels X parameters to
the .pcm.surroundXX-fields, because otherwise it's for example not possible
to play a 5.1-stream on surround51 and a stereo-stream on side simultaneous.
I need this feature to do multiroom-sound through one single sound-card (one
room playing a DVD with 5.1, another room playing some MP3s through channels
7 and 8).
I hope you could follow my explanations and will add this to the tree.
Jaroslav Kysela [Sun, 31 Jul 2005 09:08:43 +0000 (09:08 +0000)]
The simple mixer abstraction - more work
- separated the "base library" from ac97.c (dynamically loaded)
- added necessary handling of all private structures
- added selector and sid registration functions and handling code
- added basic code for hda.c (yeah, my notebook has this hw)
Takashi Iwai [Tue, 28 Jun 2005 13:35:22 +0000 (13:35 +0000)]
Fix compilation on a system with old alsa-lib headers
Fixed the compilation on a system with old alsa-lib headers.
A symlink alsa is created here to include all alsa-lib headers
locally even via #include <alsa/xxx.h>
Jaroslav Kysela [Thu, 16 Jun 2005 11:59:26 +0000 (11:59 +0000)]
more simple mixer - basic abstraction - work
- midlayer cleanups and simplification
- probably broke the "none" abstraction code somehow (not intensively tested
midlayer changes)
- trying to implement ac97 module
- far from finished
- common code should be moved to alsa-lib as core for other modules
- perhaps simple_abst.c can be based on this common code, too
Jaroslav Kysela [Fri, 3 Jun 2005 13:33:04 +0000 (13:33 +0000)]
big simple mixer update
- exported all necessary functions to create a mixer module outside alsa-lib
- separated simple mixer API from the simple mixer implementation
(using callbacks as usuall)
- src/mixer/simple.c is the core
- src/mixer/simple_none.c is the current (no-abstraction) implementation
based on control names; note that this module does not depend on
internal ALSA structures now
- src/mixer/simple_abst.c is the ongoing abstraction which will use
external dynamic modules; src/conf/smixer.conf will describe which
modules will be used depending on the components from the driver
Takashi Iwai [Mon, 30 May 2005 17:56:12 +0000 (17:56 +0000)]
Fix bugs in the last change of ipc_gid option
- Fix semaphore gid control
- Do semaphore discard for all semaphores (although currently defined as 1)
- Fix the wrong check of return value from shmctl
Takashi Iwai [Mon, 23 May 2005 08:56:48 +0000 (08:56 +0000)]
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
Takashi Iwai [Thu, 19 May 2005 16:59:04 +0000 (16:59 +0000)]
Add snd_pcm_hw_params_get/set_export_buffer()
Add snd_pcm_hw_params_get/set_export_buffer() API functions.
They control to ensure the buffer export to other processes.
If this flag is set, the local buffer of a plugin is exported over IPC shm.
Otherwise the buffer can be handled only locally (no shm).
Takashi Iwai [Thu, 19 May 2005 14:14:04 +0000 (14:14 +0000)]
Fix possible noises and optimization with dmix
dmix transfers data in asynchronously so that it doesn't write on the
last active period. This will allow the arbitrary buffer size in
future, too.
The hwsync call to slave is removed from commit and hwsync callbacks.
This hack was added to fix the noisy output (typically on xmms/bmp)
but it doesn't happen any more. Now the hwsync behavior is as same as
on 1.0.8 (i.e. hwsync is called only when slowptr option is set).