summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* implement a simple lock-free free listLennart Poettering2006-09-092-0/+265
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1382 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a tiny wrapper around libatomic_ops: pa_atomic_int_t and pa_atomit_ptr_t.Lennart Poettering2006-09-081-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reasoning: This wrapper fixes a few API issues I found with atomic_ops: * AO_t is an int, which can be written to with "=". pa_tomic_int_t however is a struct which due to type-safety enforces proper access with pa_atomic_xx(). (Inspired by the way the Linux kernel handles this) * AO_load()'s parameter is lacking a "const" * Explicitly choosing the proper memory barrier for each call is very difficult and especially hard to debug because most CPUs support only two different barrier types which the eight types defined by atomic_ops are mapped to. Most other software (i.e. glib, Linux kernel) which provides atomic variable access usually do a full barrier in all cases and so should we. Eventually we might choose to add additional memory barrier calls, in which case we can add special versions of the current function with special suffixes. * The function names are unnecesarily long * Atomic pointer accesses are only supported with manual casts. The new pa_atomic_xxx interface borrows heavily from the GLib and Linux kernel atomicity API, though it is different from both of them. In addition this abstract API makes it easy to port PA to different atomicty APIs, if libatomic_ops should ever become out-of-fashion or if the system OS supports atomic primitives anyway. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1381 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't maintain a list of allocated mempool slots, we don't use it anywayLennart Poettering2006-09-071-6/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1380 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_stream thread-safe: use new refcounting system, protect access using ↵Lennart Poettering2006-09-071-28/+93
| | | | | | mutexes git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1379 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add missing channel names (fixes a segfault when parsing invalid channel maps)Lennart Poettering2006-09-071-0/+16
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1378 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix alsa-sink exampleLennart Poettering2006-09-071-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1377 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't hit an assert in the client if posix shm is not availableLennart Poettering2006-09-061-2/+14
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1376 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix indentationLennart Poettering2006-09-061-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1375 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a bogus debug lineLennart Poettering2006-09-061-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1374 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement a few more ioctl()s, including a subset of SNDCTL_DSP_GETOPTR. ↵Lennart Poettering2006-09-062-5/+72
| | | | | | Just enough to make JavaSound work. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1373 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove yet another occurence of pthread_yield() by pa_thread_yield()Lennart Poettering2006-09-041-15/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1372 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add accessor functions for the userdata attached to a pa_thread objectLennart Poettering2006-09-042-0/+15
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1371 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix pa_thread_is_running() for foreign threads; fix a memory leak for ↵Lennart Poettering2006-09-042-1/+27
| | | | | | foreign threads git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1370 fefdeb5f-60dc-0310-8127-8f9354f1896f
* port the threaded mainloop to our new abstract mutex/thread APILennart Poettering2006-09-042-288/+49
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1369 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_thread_self() return a sensible pointer on foreign threadsLennart Poettering2006-09-041-2/+19
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1368 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add missing g_type_init()Lennart Poettering2006-09-021-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1367 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework handling of srcdir != builddir (patch from Flameeyes)Lennart Poettering2006-09-021-7/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1366 fefdeb5f-60dc-0310-8127-8f9354f1896f
* allow building when srcdir != builddir (patch from Flameeyes)Lennart Poettering2006-09-021-1/+6
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1363 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix esdcompat for non-gnu systemsLennart Poettering2006-09-021-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1361 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make esdcompat executableLennart Poettering2006-09-021-0/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1360 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Merge FreeBSD compatibility patch (from Flameeyes)Lennart Poettering2006-09-022-0/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1359 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix call to pa_mutex_new().Pierre Ossman2006-09-011-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1358 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add pthread_once() equivalent support.Pierre Ossman2006-09-013-31/+55
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1357 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Thread implementation for Win32.Pierre Ossman2006-09-013-3/+392
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1356 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a race condition with stream connection vs. latency measuremtn (found by ↵Lennart Poettering2006-09-011-17/+19
| | | | | | theBear) git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1355 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Also wrap yield functionality so that it can be platform independent.Pierre Ossman2006-08-313-3/+11
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1353 fefdeb5f-60dc-0310-8127-8f9354f1896f
* work around bug in firefox which apparently misuses access() as NULL pointer ↵Lennart Poettering2006-08-311-0/+7
| | | | | | test. Original patch by "alon". (Closes #27) git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1352 fefdeb5f-60dc-0310-8127-8f9354f1896f
* define AO_REQUIRE_CAS in the Makefile instead of each source file, ↵Lennart Poettering2006-08-314-3/+1
| | | | | | effectively reversing r1348 git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1351 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix handling of "running" variableLennart Poettering2006-08-301-3/+8
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1349 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add AO_REQUIRE_CAS as we do.Pierre Ossman2006-08-303-0/+5
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1348 fefdeb5f-60dc-0310-8127-8f9354f1896f
* We need to have a callback when changing volume or we might deadlock.Pierre Ossman2006-08-301-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1345 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a threading primitive APILennart Poettering2006-08-296-3/+498
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1344 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_mempool_stat thread-safe/lock-freeLennart Poettering2006-08-295-71/+76
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1343 fefdeb5f-60dc-0310-8127-8f9354f1896f
* modify memory block reference counting to use the new reference counting APILennart Poettering2006-08-293-15/+18
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1342 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add lock-free reference counting macros, based on libatomic-opsLennart Poettering2006-08-292-1/+44
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1341 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix an misdesigned assert()Lennart Poettering2006-08-281-6/+5
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1339 fefdeb5f-60dc-0310-8127-8f9354f1896f
* increase operation timeoutLennart Poettering2006-08-271-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1336 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix module-combine when used on top of a tunnel sinkLennart Poettering2006-08-262-5/+22
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1333 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update module-tunnel to latest protocolLennart Poettering2006-08-251-16/+51
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1332 fefdeb5f-60dc-0310-8127-8f9354f1896f
* activate HAL in the default configLennart Poettering2006-08-251-6/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1331 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add missing header.Pierre Ossman2006-08-241-0/+4
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1330 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix handling of "mtu" module argument (patch by "theBear")Lennart Poettering2006-08-231-0/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1329 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix typoPierre Ossman2006-08-231-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1328 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Make the recording a bit more chunky so that we can fit in the pool and havePierre Ossman2006-08-231-1/+13
| | | | | | | efficient blocks. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1327 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Remove silence generation in solaris module.Pierre Ossman2006-08-221-29/+26
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1326 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Remove silence generation in waveout module.Pierre Ossman2006-08-221-50/+33
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1325 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Proceed with connect even when no cookie is loaded. Allows you to connectPierre Ossman2006-08-221-6/+2
| | | | | | | to server which do not require a cookie under all circumstances. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1324 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix memory leak in waveout module.Pierre Ossman2006-08-221-0/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1323 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Log when there is a problem opening the waveOut/waveIn device.Pierre Ossman2006-08-221-3/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1322 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fall back to creating a "normal" memory pool if unable to get a shared one.Pierre Ossman2006-08-221-4/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1321 fefdeb5f-60dc-0310-8127-8f9354f1896f