Commit graph

1466 commits

Author SHA1 Message Date
Pierre Ossman
19bd9148c5 Fix error messages for failure connecting streams.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1419 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-01-04 14:06:24 +00:00
Pierre Ossman
521daf6f0a Huge trailing whitespace cleanup. Let's keep the tree pure from here on,
mmmkay?


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-01-04 13:43:45 +00:00
Pierre Ossman
1a460ee40a Fix silly copy-and-paste error. (closes #45)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1417 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-12-04 08:15:06 +00:00
Pierre Ossman
68bcbd2913 Fix incorrect assert.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1416 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-24 09:29:10 +00:00
Pierre Ossman
7933cbaf29 Add atomic.h as a dependency at relevant places.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1415 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-10 14:58:22 +00:00
Pierre Ossman
86f4c2108f Make sure we package version.h.in.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1414 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-10 12:20:16 +00:00
Pierre Ossman
0a37ec28ff Yet again try to fix the creation of necessary directories when srcdir !=
builddir.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1413 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-09 15:23:30 +00:00
Pierre Ossman
0ef2d7eb77 Support reversed endian floats. (closes #28) (closes #35)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1412 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-08 13:03:35 +00:00
Pierre Ossman
55c25c657e Check correct variable for return value. Closes #37.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1411 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-08 12:56:26 +00:00
Pierre Ossman
d4ca81fc2e Fix some missing line breaks.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1410 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-06 13:16:15 +00:00
Pierre Ossman
8dc6214276 Revert r1404 and keep it on a development branch until it is fully tested.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1409 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-06 13:06:01 +00:00
Pierre Ossman
6ca819354c The OSS spec is unclear what should happen when a reset is requested. Let's
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
2006-11-06 10:17:39 +00:00
Pierre Ossman
9776596848 Handle when threaded mainloop is freed before it is started.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1405 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-11-06 10:14:16 +00:00
Lennart Poettering
d210ebbb09 rework memory block management to be thread-safe and mostly lock-free.
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
2006-09-26 23:50:56 +00:00
Lennart Poettering
5ad143b3ab upgrade refcnt.h to make use of our new pa_atomic_xxx() API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1403 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:42:08 +00:00
Lennart Poettering
736de36f68 add asynchronous inter-thread notification API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1402 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-26 23:41:20 +00:00
Lennart Poettering
f1021b9e0b enable module-hal-detect in the default configuration file only if HAL support is enabled (closes #30)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1401 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-20 19:02:45 +00:00
Lennart Poettering
bf83a961d5 rename default realtime group from "realtime" to "pulse-rt", since it is pulseaudio specific. you may still pass --with-realtime-group=realtime to configure to get the old behaviour
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1400 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-20 19:01:59 +00:00
Pierre Ossman
71a6ceb29b Revert r1398 as it broke the srcdir != builddir patch. New fix that doesn't
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
2006-09-19 07:54:53 +00:00
Pierre Ossman
534eeb181e No need to create these dirs as they're part of the source tree.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1398 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-19 07:49:39 +00:00
Pierre Ossman
29ab939570 Stop using x86-isms and use ISO C (oversized shifts are undefined).
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1397 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-14 16:00:57 +00:00
Pierre Ossman
5f828c2c3d Fix debug output for SNDCTL_DSP_SETFRAGMENT.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1396 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-14 14:56:31 +00:00
Pierre Ossman
772645922a Fix up build structure for platform dependent modules. Also add implementation
on Win32 for pa_once().


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1395 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-11 07:56:03 +00:00
Pierre Ossman
a85b3e2dd4 Use platform independent sleep.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1394 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-11 07:54:41 +00:00
Pierre Ossman
7c6088d98a Fix typo.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1393 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-11 07:14:39 +00:00
Lennart Poettering
fc08db2391 ignore flist-test in the correct dir
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1392 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:59:26 +00:00
Lennart Poettering
6b1794dfba ignore flist-test
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1391 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:58:03 +00:00
Lennart Poettering
9358d28c21 update Makefile
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1390 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:56:58 +00:00
Lennart Poettering
0e96d8b7bc make pa_mutex_new() and pa_cond_new() succeed in all cases. Similar behaviour to pa_xmalloc().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1389 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:55:58 +00:00
Lennart Poettering
3ae98db1aa add pa_once testing code
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1388 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 23:54:56 +00:00
Lennart Poettering
d0dcde060b rework pa_once once again, because the once function needs to have 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
2006-09-09 23:54:19 +00:00
Lennart Poettering
6d532029ea update for newer APIs: replace direct usage of libatomic_ops by usage of our 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
2006-09-09 22:59:17 +00:00
Lennart Poettering
3426a399cc implement trival pa_once API based on atomic operations
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1385 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 22:55:51 +00:00
Lennart Poettering
c89cb6a00f add static initializer PA_ATOMIC_INIT()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1384 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 22:54:11 +00:00
Lennart Poettering
b93fedd49c add a test program for the free list
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1383 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 21:09:55 +00:00
Lennart Poettering
ee40a3439f implement a simple lock-free free list
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1382 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-09 21:05:31 +00:00
Lennart Poettering
bfaa358458 add a tiny wrapper around libatomic_ops: pa_atomic_int_t and pa_atomit_ptr_t.
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
2006-09-08 15:43:44 +00:00
Lennart Poettering
791bbd8e0e don't maintain a list of allocated mempool slots, we don't use it anyway
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1380 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 20:17:25 +00:00
Lennart Poettering
1728e3ac98 make pa_stream thread-safe: use new refcounting system, protect access using mutexes
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1379 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 19:08:19 +00:00
Lennart Poettering
0669c99fb6 add missing channel names (fixes a segfault when parsing invalid channel maps)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1378 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 13:31:53 +00:00
Lennart Poettering
40f18d97f6 fix alsa-sink example
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1377 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-07 13:29:59 +00:00
Lennart Poettering
40ecf869d0 don't hit an assert in the client if posix shm is not available
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1376 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-06 22:19:54 +00:00
Lennart Poettering
ead67cda48 fix indentation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1375 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-06 22:19:11 +00:00
Lennart Poettering
66ec460845 fix a bogus debug line
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1374 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-06 21:37:09 +00:00
Lennart Poettering
6569199778 implement a few more ioctl()s, including a subset of SNDCTL_DSP_GETOPTR. Just enough to make JavaSound work.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1373 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-06 19:47:53 +00:00
Lennart Poettering
e00ba020cb remove yet another occurence of pthread_yield() by pa_thread_yield()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1372 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 22:38:41 +00:00
Lennart Poettering
6bbfb43f2a add accessor functions for the userdata attached to a pa_thread object
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1371 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 22:15:15 +00:00
Lennart Poettering
3be920d9ae fix pa_thread_is_running() for foreign threads; fix a memory leak for foreign threads
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1370 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 22:04:33 +00:00
Lennart Poettering
813e95f3b8 port the threaded mainloop to our new abstract mutex/thread API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1369 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 21:29:17 +00:00
Lennart Poettering
8e7c2a3b0c make pa_thread_self() return a sensible pointer on foreign threads
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1368 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-09-04 21:28:34 +00:00