summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* The OSS spec is unclear what should happen when a reset is requested. Let'sPierre Ossman2006-11-061-1/+9
| | | | | | | have a nicer attitude and keep as much settings as possible. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1406 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Handle when threaded mainloop is freed before it is started.Pierre Ossman2006-11-061-1/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1405 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework memory block management to be thread-safe and mostly lock-free.Lennart Poettering2006-09-2636-502/+993
| | | | | | | | | | | | | | | | | | | | | pa_memblock is now an opaque structure. Access to its fields is now done through various accessor functions in a thread-safe manner. pa_memblock_acquire() and pa_memblock_release() are now used to access the attached audio data. Why? To allow safe manipulation of the memory pointer maintained by the memory block. Internally _acquire() and _release() maintain a reference counter. Please do not confuse this reference counter whith the one maintained by pa_memblock_ref()/_unref()! As a side effect this patch removes all direct usages of AO_t and replaces it with pa_atomic_xxx based code. This stuff needs some serious testing love. Especially if threads are actively used. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1404 fefdeb5f-60dc-0310-8127-8f9354f1896f
* upgrade refcnt.h to make use of our new pa_atomic_xxx() APILennart Poettering2006-09-261-8/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1403 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add asynchronous inter-thread notification APILennart Poettering2006-09-262-0/+181
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1402 fefdeb5f-60dc-0310-8127-8f9354f1896f
* enable module-hal-detect in the default configuration file only if HAL ↵Lennart Poettering2006-09-202-3/+5
| | | | | | support is enabled (closes #30) git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1401 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Revert r1398 as it broke the srcdir != builddir patch. New fix that doesn'tPierre Ossman2006-09-191-0/+3
| | | | | | | use the $(mkdir_p) define as it isn't present on many systems. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1399 fefdeb5f-60dc-0310-8127-8f9354f1896f
* No need to create these dirs as they're part of the source tree.Pierre Ossman2006-09-191-1/+0
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1398 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Stop using x86-isms and use ISO C (oversized shifts are undefined).Pierre Ossman2006-09-141-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1397 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix debug output for SNDCTL_DSP_SETFRAGMENT.Pierre Ossman2006-09-141-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1396 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix up build structure for platform dependent modules. Also add implementationPierre Ossman2006-09-113-56/+96
| | | | | | | on Win32 for pa_once(). git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1395 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Use platform independent sleep.Pierre Ossman2006-09-111-1/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1394 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix typo.Pierre Ossman2006-09-111-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1393 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update MakefileLennart Poettering2006-09-091-5/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1390 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make pa_mutex_new() and pa_cond_new() succeed in all cases. Similar ↵Lennart Poettering2006-09-091-13/+3
| | | | | | behaviour to pa_xmalloc(). git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1389 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add pa_once testing codeLennart Poettering2006-09-091-0/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1388 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework pa_once once again, because the once function needs to have ↵Lennart Poettering2006-09-092-9/+74
| | | | | | | | | terminated before pa_once returns, regardless whether the local call executes it or another thread does. With the previous code it might happen that an long-running initializing in a once function is not terminated yet when another thread thinks it already is. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1387 fefdeb5f-60dc-0310-8127-8f9354f1896f
* update for newer APIs: replace direct usage of libatomic_ops by usage of our ↵Lennart Poettering2006-09-092-43/+13
| | | | | | own atomic.h; remove pa_once implementation; always use our pa_once implementation instead of the POSIX version git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1386 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement trival pa_once API based on atomic operationsLennart Poettering2006-09-091-0/+42
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1385 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add static initializer PA_ATOMIC_INIT()Lennart Poettering2006-09-091-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1384 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a test program for the free listLennart Poettering2006-09-091-0/+104
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1383 fefdeb5f-60dc-0310-8127-8f9354f1896f
* 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