Commit graph

1016 commits

Author SHA1 Message Date
Sasha Khapyorsky
474eb76b71 fix segfault then hooks list is empty
This fix prevents segfaulting then hooks list is empty.

Signed-off-by: Sasha Khapyorsky <sashak@smlink.com>
2005-09-12 10:35:07 +00:00
Jaroslav Kysela
19284bd325 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.
2005-09-08 06:48:30 +00:00
Takashi Iwai
4272742a2b Fix compile warnings
Fix compile warnings regarding uninitialized variable.
2005-09-05 15:57:31 +00:00
Takashi Iwai
ffdb04c3ea Fix buffer allocation and mmap with plugins
Fixed the bug producing silent tones with some combinations of plugins.
The internal buffer handling is now better (cleaner) integrated with
snd_pcm_generic_*().
2005-09-02 16:36:40 +00:00
Takashi Iwai
e62ecc876a Workaround for crash with knotify
Workaround for crash with knotify and KDEMM.
2005-09-01 17:31:52 +00:00
Takashi Iwai
6f938b1cc3 Fix call of semctl IPC_RMID
semctl IPC_RMID removes all semaphore set, so we need to call this only once.
2005-08-29 17:07:41 +00:00
Jaroslav Kysela
745062ee01 PCM API - handle EINTR from poll() in snd_pcm_wait() function 2005-08-24 14:13:47 +00:00
Jaroslav Kysela
f1acd7726c 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).
2005-08-18 10:42:22 +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
4bb0721a83 direct plugins - added graceful shutdown for the resource server
- direct plugins
  - added graceful shutdown for the resource server
  - fixed error paths (unclosed socket) in the make_local_socket() function
2005-08-17 14:00:32 +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
Takashi Iwai
7a89e3bbca Fix compile warnings with gcc-4
Fixed compile warnings with gcc-4 about pointer signedness.
2005-06-28 10:24:44 +00:00
Takashi Iwai
aa5a4d1f1a Remove the check of start_threshold in sw_params
Removed the invalid check of start_threshold with period_size
in snd_pcm_sw_params().
2005-06-23 10:04:56 +00:00
Takashi Iwai
6c7f60f7a9 Fix boundary overlap
Fixed the possible bug with boundary overlap in dmix code.
2005-06-16 14:03:15 +00:00
Jaroslav Kysela
555b870760 pcm_multi: Increased maximum slave channels to 64
From: Joachim Deguara <dga@idmt.fraunhofer.de>
2005-06-10 09:23:40 +00:00
Jaroslav Kysela
c9d343a0cc Change .so module name and installation patch (/usr/lib/alsa-lib/scopes) 2005-06-07 11:31:18 +00:00
Takashi Iwai
b69ab56881 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
2005-05-30 17:56:12 +00:00
Jaroslav Kysela
4b7e3cff81 added ipc_gid for direct plugins 2005-05-30 10:13:54 +00:00
Takashi Iwai
98ecc868ec Fix compile without debug option
Fixed the compile error (missing function) without debug option.
2005-05-27 09:25:16 +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
7651690858 Fix documentation of external PCM plugin SDK
Fix documentation of external PCM plugin SDK.
2005-05-24 09:42:01 +00:00
Takashi Iwai
6e1bc68070 Minor clean up
Minor clean up.
2005-05-23 09:04:15 +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
dae58c0192 Add area synchronization in poll_rsync of rate plugin
Try to sync areas as much as possible in poll_rsync callback of rate plugin.
2005-05-23 09:01:31 +00:00
Takashi Iwai
67420b8882 Fix poll of dsnoop plugin
Fixed the poll behavior of dsnoop plugin after commit.
2005-05-23 08:58:04 +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
1661759351 Minor clean up of dmix codes
Minor clean up of dmix codes.
2005-05-23 08:49:58 +00:00
Takashi Iwai
4c6809bf30 Fix poll after XRUN with dmix
Fix the behavior of poll after XRUN with dmix plugin.
Poll should return immediately with an XRUN stream.
2005-05-23 08:48:46 +00:00
Takashi Iwai
4d7c53d280 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).

Also fixed Version file for 1.0.9.
2005-05-19 16:59:04 +00:00
Takashi Iwai
18053076e2 Fix generic channel_info callbacks
Fixed generic channel_info callbacks for many plugins.
The allocation of unnecessary internal buffers is avoided.
2005-05-19 16:50:24 +00:00
Takashi Iwai
d81d6940ca Fix bugs in perm option
Fixed silly bugs in perm option.
2005-05-19 15:14:05 +00:00
Takashi Iwai
4e1723f9a5 More strict permission for IPC shm and sem
Use more strict permission for IPC shm and sem, too.
The permission follows to the value of ipc_perm config option, as
default 0600.
2005-05-19 14:36:04 +00:00
Takashi Iwai
13c7364997 Revert the shmget permission
Oops, a part of another patch was merged accidentally.  Reverted.
2005-05-19 14:20:07 +00:00
Takashi Iwai
5227c7e170 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).
2005-05-19 14:14:04 +00:00
Takashi Iwai
1cd04dba82 Add perm option
Added "perm" option to file plugin to specify the file permission.
Changed the default permission to 0600.
2005-05-19 13:59:43 +00:00
Takashi Iwai
d5b9823447 Fix snd_pcm_wait() for multiple pollfd's
Fixed snd_pcm_wait() to handle multiple pollfd's.
2005-05-18 13:28:06 +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
e61d385993 Add protocl version check
- Added protocl version check.  The caller of snd_pcm_{io|ext}plug_create()
  must fill version field with SND_PCM_{IO|EXT}PLUG_VERSION beforehand.

- Added poll_descriptors and poll_descriptors_count callbacks for ioplug.
2005-05-18 10:47:52 +00:00
Takashi Iwai
97010dbfdb Use snd_pcm_generic_t and its callbacks
Use snd_pcm_generic_t and its callbacks.
2005-05-18 10:46:03 +00:00
Takashi Iwai
842b573424 Add poll_descriptors and poll_descriptors_count callbacks
Added poll_descriptors and poll_descriptors_count callbacks for multiple
poll_fd's.
2005-05-18 10:45:06 +00:00
Takashi Iwai
cf4f4bc9c4 Fix drain of dmix without data
Fixed the drain of dmix plugin without any data.
It should return immediately.
2005-05-17 15:36:18 +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
e76bbd74d7 Set up pcm->info properly
Set up pcm->info properly for ioplug according to the avaialbe callbacks.
2005-05-17 09:27:17 +00:00
Takashi Iwai
3092edabf2 Propagate pcm->info
Propate pcm->info bit flags from the slave PCM in refine.
This will fix the bug indicating bogus pause/resume capabilities.
2005-05-17 09:26:34 +00:00
Takashi Iwai
48bff53b36 Check timer version for read-block workaround
Check the timer protocl version whether to use poll for a workaround
of read-block problems.
2005-05-15 14:48:19 +00:00
Takashi Iwai
1aaf4a50af Fix blocking during draining in dmix
Fix the blocking during draining in dmix plugin due to ioctl
conflicts (bug #1074).  This is a temporary workaround.
2005-05-15 13:54:00 +00:00
Takashi Iwai
10557ca6b9 Fix playback start with sync_ptr mode
Fix by Istvan Varadi <ivaradi@gmail.com>

- start the playback with snd_pcm_hw_start failed with -EPIPE, because
 some pointers were not updated. I attached a patch for alsa-lib 1.0.8,
 in which sync_ptr is called before SNDRV_PCM_IOCTL_START. It seems to
 solve the problem, though I don't know alsa-lib enough to be sure that
 this is the right solution...
2005-05-13 14:14:10 +00:00
Takashi Iwai
3403d9e622 Fix partial commit in drain
Fix the partial commit in draining with rate plugin.
2005-05-13 12:37:25 +00:00