Commit graph

79 commits

Author SHA1 Message Date
Julia Lawall
fef6e6fd58 src/pcm/pcm_mmap.c: add missing free
The mmap_channels and running_areas fields are allocated using calloc, but
are not freed on an error path.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Suman Saha <sumsaha@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-22 14:11:10 +02:00
Takashi Iwai
67399e35ff Fix wrong offset calculation in snd_pcm_{read|write}_mmap()
The offset used in snd_pcm_{read|write}_mmap() is not the linear offset
but the offset in a ring buffer.  It has to be rounded.
2007-09-20 13:20:03 +02:00
Takashi Iwai
4cdb17c601 Split mmap-emulation code from hw layer
Move out mmap-emulation code from hw layer to its own plugin.
This cleans up the mess in pcm_hw.c.
2007-07-11 17:44:09 +02:00
Jaroslav Kysela
b08e01ca9e pcm - fix the buffer allocation for NONINTERLEAVED mmap access
The previous code did not allocated a separate buffer for all channels
when a NONINTERLEAVED access was used. The result was that only one
"shared" buffer was incorrectly allocated.

Also, the code was a bit cleaned (cosmetic change only).
2006-01-02 12:16:59 +00:00
Takashi Iwai
3ffeaf4cb1 Minor optimization on mmap
Minor optimization on mmap.
2005-11-30 11:39:21 +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
6e1bc68070 Minor clean up
Minor clean up.
2005-05-23 09:04:15 +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
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
Jaroslav Kysela
131d6610fc Fixed file plugin - mmap access was broken and revents were not handled correctly 2004-02-08 10:19:52 +00:00
Jaroslav Kysela
b798d89c0f <atlka@pg.gda.pl>
- shm memory patch
- optimized a bit sample mixing routines in c and x_86 asm
2004-01-24 16:34:35 +00:00
Jaroslav Kysela
852b0c6129 Adam Tla/lka <atlka@pg.gda.pl>
SHM memory leak fix
2004-01-20 12:47:05 +00:00
Jaroslav Kysela
63c19961b9 Takashi: added shadow pcm to avoid problem with plug plugin and mmaped access 2003-08-08 09:06:41 +00:00
Jaroslav Kysela
b004a9d791 Added snd_pcm_munmap() call to snd_pcm_close() - free all resources 2003-06-22 09:59:03 +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
8faee9967f Fixed nasty bug when we used more ipc buffers for interleaved access 2003-02-28 20:32:07 +00:00
Jaroslav Kysela
8720faaccb Cleanups in IPC stuff.
Cleanups in snd_pcm_close().
Added initial code for dmix plugin:
  - only skeleton, but all major problems should be solved
2003-02-04 14:48:51 +00:00
Takashi Iwai
12e89c5307 fixed compile warning (conversion between signed and unsigned). 2002-06-18 16:06:14 +00:00
Jaroslav Kysela
c941c548f8 Moved ring buffer pointers and added a mechanism to transfer them via shm 2002-04-23 15:51:29 +00:00
Jaroslav Kysela
853304bbf4 Corrections by Kevin Conder <kconder@interaccess.com> 2002-03-12 20:14:33 +00:00
Jaroslav Kysela
e128bf856e Cleaned the mmap_commit implementations in plugins.
Added undo callbacks for snd_pcm_plugin based plugins.
  - helpers when mmap_commit proceed only a partial transfer
Fixes to avail_update implementation in pcm_hw.c.
2002-02-21 15:01:34 +00:00
Jaroslav Kysela
3e3df2d32b Updated GNU GPL license (address).
Changed GNU LGPL licence from 2.0 to 2.1.
2001-12-30 09:22:54 +00:00
Jaroslav Kysela
6113d83e08 Fixed munmap sizes (SIGSEGV) 2001-12-15 17:22:31 +00:00
Jaroslav Kysela
b63e44aab0 Synchronized snd_pcm_write_areas and snd_pcm_read_areas with the kernel
write/read functions.
Changed snd_pcm_xfer_areas_func_t to return snd_pcm_sframes_t (pass errors).
2001-12-09 12:32:42 +00:00
Jaroslav Kysela
8ca451f0e1 Improved mmap_write and mmap_read functions 2001-12-08 21:00:51 +00:00
Jaroslav Kysela
78f86ed011 Added mmap_write & mmap_readi functions to include/pcm.h. 2001-10-18 18:05:41 +00:00
Jaroslav Kysela
c20c954f3d Added documentation for instrument and midi event functions.
Removed snd_enum_() macros.
Documentation changes in asoundlib.h.
2001-07-11 14:09:01 +00:00
Jaroslav Kysela
00c749f080 Reverted back the previous read/write_areas code 2001-05-14 15:21:18 +00:00
Jaroslav Kysela
808fb82d1f Enhanced snd_pcm_mmap_read/write_areas to support the blocking behaviour.
Removed wrong asserts.
2001-05-14 14:31:45 +00:00
Abramo Bagnara
6a3b962d06 Better PCM mmap API. Fixed pcm_multi 2001-04-13 15:40:53 +00:00
Abramo Bagnara
5b50ec848a Lot of cleanings with the help of gcc3 2001-03-29 17:50:28 +00:00
Abramo Bagnara
ddc9a186cf Completed PCM documentation 2001-03-24 16:14:44 +00:00
Abramo Bagnara
5e2c5cab92 Removed obsolete code 2001-03-08 14:21:15 +00:00
Abramo Bagnara
3830b168ef Improved plugin code (simpler, faster and multithread ready) 2001-02-27 13:42:12 +00:00
Abramo Bagnara
c663f4f4f7 Transformed PAGE_SIZE in sysconf(_SC_PAGE_SIZE) 2001-02-21 21:59:35 +00:00
Abramo Bagnara
a2d3434961 Completed mixer API. Improved iterators. Renamed control values struct. Rewritten simple elements implementation 2001-02-11 15:45:35 +00:00
Abramo Bagnara
8f0cb26fdf Control API encapsulation. Better names for kernel API. Simpler PCM hw_params API. Added missing const. 2001-02-06 23:48:10 +00:00
Abramo Bagnara
4ecd9eaa46 Fixed some typos 2001-02-04 22:59:24 +00:00
Abramo Bagnara
a7561a9c7e Corrected and completed encapsulation for PCM and rawmidi. Remove SND_PCM_HW_PARAM_* and use functions. Separated rawmidi info between streams 2001-02-04 17:03:17 +00:00
Abramo Bagnara
de19407578 Removed card type from devices info. Added card number to devices info. Completed encapsulation of PCM API. Removed snd_pcm_card(). All copy functions now have the form copy(dst, src). 2001-01-31 17:26:56 +00:00
Abramo Bagnara
b4e80abc53 Rewritten mmap_{read,write} following alsa-driver current code 2001-01-20 12:56:30 +00:00
Abramo Bagnara
aa813e1f39 Uniformed some internal names. Bug fixes 2001-01-15 15:15:24 +00:00
Abramo Bagnara
cc90e32557 New PCM model with fragment concept removal and two interrupt sources
Renamed size_t/ssize_t to snd_pcm_sframes_t/snd_pcm_uframes_t
2001-01-15 11:06:53 +00:00
Abramo Bagnara
e618ef6f00 Fixed a bug in interval printing. Added missing mmap functions. Added _try hw_params variant. 2000-12-30 17:20:23 +00:00
Abramo Bagnara
6425734d82 Fixes to mmap size computing 2000-12-23 16:46:17 +00:00
Abramo Bagnara
5860beac69 Some cleaning to mmap 2000-12-11 15:54:55 +00:00
Abramo Bagnara
61e95094e7 Fixed constness wrt snd_pcm_channel_area_t 2000-11-30 14:15:52 +00:00
Abramo Bagnara
ae549cf739 Fixed mmap size computation 2000-11-28 22:48:35 +00:00
Jaroslav Kysela
41bb7068f2 Merged pcmfinal branch. 2000-11-20 20:10:46 +00:00
Abramo Bagnara
a380edd64f Fixed pointers use 2000-10-14 18:34:51 +00:00