Commit graph

262 commits

Author SHA1 Message Date
Lennart Poettering
003264213c only browse for ipv4 pa servers for now. Needs better fixing which however is not trivial and probably breaks the API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1453 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 23:38:28 +00:00
Lennart Poettering
4a05bc9bdc don't allow excessively high sample rates
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1449 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 16:57:35 +00:00
Lennart Poettering
0e53f939c0 Treat empty :0.0 identically to unset :0.0 when trying to find a PA server. (Closes #87)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1443 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-05-23 12:32:37 +00:00
Pierre Ossman
06211b7c8f Add copyright notices to all relevant files. (based on svn log)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1426 fefdeb5f-60dc-0310-8127-8f9354f1896f
2007-02-13 15:35:19 +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
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
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
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
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
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
1ed33478e5 increase operation timeout
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1336 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-27 13:04:56 +00:00
Pierre Ossman
095f35725d Proceed with connect even when no cookie is loaded. Allows you to connect
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
2006-08-22 15:36:37 +00:00
Pierre Ossman
8a16c73151 Fix call to pa_pstream_send_tagstruct().
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1308 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:18:07 +00:00
Pierre Ossman
25c0640ac2 Add an ifdef for when we do not have creds.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1307 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-22 07:12:50 +00:00
Lennart Poettering
c9b6d55090 add default "disable-shm" option to client.conf
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1285 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:18:57 +00:00
Lennart Poettering
d785b8fa87 add new "disable-shm" option to client.conf
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1284 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:18:30 +00:00
Lennart Poettering
40875d6d05 enable SHM support on the client side only if both the client and the server run as the same user and the server supports it
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1278 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:45:23 +00:00
Lennart Poettering
e385d93e5a remove all occurences of
pa_logXXX(__FILE__":  
   
and replace them by 
  
   pa_logXXX("



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1272 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 21:38:40 +00:00
Lennart Poettering
0e436a6926 Rework memory management to allow shared memory data transfer. The central idea
is to allocate all audio memory blocks from a per-process memory pool which is
available as read-only SHM segment to other local processes. Then, instead of
writing the actual audio data to the socket just write references to this
shared memory pool.

To work optimally all memory blocks should now be of type PA_MEMBLOCK_POOL or
PA_MEMBLOCK_POOL_EXTERNAL. The function pa_memblock_new() now generates memory
blocks of this type by default.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1266 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:55:18 +00:00
Lennart Poettering
d89066036b modify pa_bytes_snprint() to return the string we just wrote to. This should be binary compat with older versions which returned void
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1259 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:02:46 +00:00
Lennart Poettering
e52436b6c4 implement pa_context_move_source_output_by_{name,index}()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1184 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-03 22:33:11 +00:00
Lennart Poettering
7f93d08d40 bump API and protocol version. Return PA_ERR_NOTSUPPORTED if pa_context_move_sink_input_by_*()is called for servers that don't support it
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1179 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-01 21:04:43 +00:00
Lennart Poettering
bb9b08758e wrap PA_COMMAND_MOVE_SINK_INPUT for libpulse
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1177 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-31 21:55:09 +00:00
Lennart Poettering
646deeaee6 don't hit an assetr if there are operations outstanding when the pa_context is destroyed
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1171 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-29 17:20:08 +00:00
Lennart Poettering
9310a2e3b8 fix calculation of pa_usec_to_bytes, to make sure that it never returns fractions of a frame size
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1165 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-29 15:02:53 +00:00
Lennart Poettering
6afb61efdc remove superfluous code
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1155 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-27 16:49:44 +00:00
Lennart Poettering
358e577403 remove two superfluous lines
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1154 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-26 22:39:56 +00:00
Lennart Poettering
0d7be3148e mainloop fixes: when disabling time events when dispatching them, make sure to adjust the cache time event and enabled time event counters
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1153 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-26 22:39:06 +00:00
Lennart Poettering
563fab983f Results of profiling PulseAudio with valgrind's callgrind module: rework the default event loop implementation to use PA_LLIST_xxx instead of pa_idxset; don't generate weakeup events if we aren't in STATE_POLLING; minimize dispatching of io events; cache next time event instead of traversing the list of time events on every event loop iteration; other optimizations
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1148 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-25 20:39:34 +00:00
Lennart Poettering
c41d7498d3 add a few more g_assert()s and change all assert()s to g_assert()s
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1145 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-25 20:09:22 +00:00
Lennart Poettering
07a1c45cc1 fix horribly broken glib timeout event handling
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1138 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-22 00:54:23 +00:00
Lennart Poettering
40b408990a remove access group setting from default client.conf
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1133 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-20 23:12:18 +00:00
Lennart Poettering
da1ec271bb remove configurable client access group, since can never work on Linux anway, since SCM_CREDENTAILS doesn't allow sending supplementary GIDs
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1127 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-20 21:28:44 +00:00
Pierre Ossman
a3e7595ac1 Make -1 mean "current group/user" so that some platform dependent calls
can be centralised.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1113 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-20 00:21:50 +00:00
Pierre Ossman
7ba93ebae2 Protect platform dependent headers with ifdefs.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1112 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-20 00:13:12 +00:00
Lennart Poettering
a382492204 * add new function pa_check_in_group()
* abstract credential APis a little bit by introducing HAVE_CREDS and a structure pa_creds
* rework credential authentication
* fix module-volume-restore and friends for usage in system-wide instance
* remove loopback= argument from moulde-*-protocol-tcp since it is a superset of listen= and usually a bad idea anyway since the user shouldn't load the TCP module at all if he doesn't want remote access
* rename a few variables in the jack modules to make sure they don't conflict with symbols defined in the system headers
* add server address for system-wide daemons to the default server list for the the client libs
* update todo


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1109 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-19 21:48:35 +00:00
Lennart Poettering
340803b30c use access group dedclared in ~/.pulse/client.conf instead of PA_ACCESS_GROUP
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1108 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-19 18:14:14 +00:00
Lennart Poettering
2b31a900d6 update @@ tokens according to recent Makefile.am change
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1107 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-19 18:11:12 +00:00
Lennart Poettering
9c87a65ce9 * add new --system command line parameter to the daemon for running PulseAudio as system-wide instance
* add PA_ prefixes to all global #defines
* modify auth-by-creds: define a new group "pulse-access" which is used for authentication
* add proper privilige dropping when running in --system mode
* create runtime directory once on startup and not by each module seperately


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1105 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-19 17:44:19 +00:00
Lennart Poettering
9db70682d6 remove glib 1.2 adapter. It started to bitrot and wasn't used by anything anyway.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1104 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-18 19:53:29 +00:00
Lennart Poettering
d7cdaf22a1 add two more \since
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1103 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-18 19:50:09 +00:00
Lennart Poettering
2c2abbb169 turn the glib adapter into a single GSource instead of creating a bunch of seperate GSources for each event
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1101 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-18 18:52:13 +00:00
Lennart Poettering
ddd5acf553 define proper typdefs for callback prototypes
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1100 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-18 18:51:35 +00:00
Pierre Ossman
4b352e5fac Restore SIGPIPE warning when the platform doesn't have MSG_NOSIGNAL.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1097 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-17 11:26:29 +00:00
Lennart Poettering
494fa68327 add new PA_SOURCE_HARDWARE/PA_SINK_HARDWARE flag
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1091 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-16 17:28:10 +00:00
Lennart Poettering
b8f9ae00f3 remove checking for SIGPIPE blocking from client code. Because we use
send(,,MSG_NOSIGNAL) for most socket writes now the reason for SIGPIPE blocking
is no longer give. We keep this check for the server side however, because
pipes create SIGPIPE too but cannot be used with MSG_NOSIGNAL. Some modules use
pipes for internal and external communication.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1086 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-14 23:06:44 +00:00
Lennart Poettering
860be2e70b try to use send(,,MSG_NOSIGNAL) instead of write() wherever possible (which
will allow us to drop the SIGPIPE check). Cache the results of the last
write()/send() to make sure that we do not issue more than necessary system
calls.



git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1083 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-14 22:42:01 +00:00
Lennart Poettering
881d4ddd39 * fall back to prctl(PR_GET_NAME) in pa_get_binary_name() if readlink() fails
* call pa_path_get_filename() in all cases before returning in pa_get_binary_name(). We already did so on Win32, but didn't on Linux.


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1077 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-14 00:17:31 +00:00
Lennart Poettering
76f93a07f9 * port libpulse-browse to use the native avahi API instead of the HOWL cruft
* add new function pa_browser_set_error_callback()
* add doxygen docs to browser.h


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1069 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-07-13 17:33:44 +00:00