Commit graph

93 commits

Author SHA1 Message Date
Lennart Poettering
c6ca9a85c3 print per-type memory block statistics on "stat"
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1294 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 16:25:41 +00:00
Lennart Poettering
57f0b08cc1 generate per-type memory block statistics
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1293 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 16:25:15 +00:00
Lennart Poettering
af87c7d21b rework the resample to allocate temporary memory with pa_memblock_new() instead of pa_xrealloc()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1291 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 02:23:52 +00:00
Lennart Poettering
206ac6f3ee allow importing of external shm data blocks unconditionally, even when local SHM support is disabled
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1283 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:16:38 +00:00
Lennart Poettering
046bdd9b30 deal properly with pa_mempool_new() failing
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1282 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:15:48 +00:00
Lennart Poettering
8c9bdb838c fix allocation of anonymous memory
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1281 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:15:22 +00:00
Lennart Poettering
c2db5f8864 fix a memory leak
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1280 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-19 01:14:59 +00:00
Lennart Poettering
e33abc3089 activate SHM support on the server side only when new client supports it and when client and server have the same UID.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1277 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:44:35 +00:00
Lennart Poettering
c313b23d5f one s/0/NULL/
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1276 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:43:27 +00:00
Lennart Poettering
7ac79098a6 remove export/import objects when SHM is disable for a pa_pstream object
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1275 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:42:14 +00:00
Lennart Poettering
fd3fe96ce5 add new function pa_mempool_is_shared() to test whether a memory pool is suitable for SHM data transfers
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1274 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 23:40:48 +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
1bc62d5ec6 rework logging subsystem, to implicitly include __FILE__ in pa_log() calls. In addition we now record the line numbers and function names of pa_log calls. However, those are only shown If $PULSE_LOG_META is set.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1271 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 21:26:01 +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
ff48681aae add abstracted shared memory API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1265 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:46:20 +00:00
Lennart Poettering
20d0823e35 fix a bad type cast
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1264 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:45:19 +00:00
Lennart Poettering
dfa17b9f36 cleanup hashmap.[ch] a little: use hash/compare func prototypes defined in idxset.h, add pa_hashmpa_{get,steal}_first
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1263 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:43:46 +00:00
Lennart Poettering
8be0cf6007 cleanup idxset.[ch] a little: define proper types for the hash/compare funcs, do ptr->int/int->ptr conversions with clean macros
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1262 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-18 19:42:14 +00:00
Lennart Poettering
c3df1ceb38 fix a PA_LLIST_HEAD_INIT invocation
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1261 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:03:38 +00:00
Lennart Poettering
a847f74ed0 add missing #include
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1260 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:03:09 +00:00
Lennart Poettering
99db0672c7 make PA_LLIST_HEAD_INIT thread safe
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1258 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-17 20:01:04 +00:00
Lennart Poettering
d182a0b1cb minor optimization
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1251 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 20:43:22 +00:00
Lennart Poettering
a75e1ed9ef implement hook_source_ouput_new. For this I modified the pa_source_output_new constructor to take a struct similar to what I already did for pa_sink_input_new()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1250 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:55:17 +00:00
Lennart Poettering
e0f7e8614c split a validity check into two
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1249 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:53:35 +00:00
Lennart Poettering
79cb80c574 implement hook_source_disconnect
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1248 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:53:18 +00:00
Lennart Poettering
8f91b1f4c4 define new hooks: hook_source_output_new, hook_source_disconnect
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1247 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 19:52:43 +00:00
Lennart Poettering
8180832898 properly implement a pa_sink_disconnect() hook
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1243 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:33:32 +00:00
Lennart Poettering
abbabd848a ignore if we recieved a memory block for an invalid stream, since this might happen unwillingly due to the asychnronous nature of the protocol
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1241 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:31:58 +00:00
Lennart Poettering
72cf2118df remove pa_sink_input::variable_rate field since it has been folded into pa_sink_input::flags
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1240 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 17:30:51 +00:00
Lennart Poettering
a621d90285 allow hooking into the process of creating playback streams. To implement this I modified the pa_sink_input_new() signature to take a pa_sink_input_new_data structure instead of direct arguments.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1237 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:19:56 +00:00
Lennart Poettering
db3f561ec4 rework hook list stuff once again: change the callback prototype to recieve three data pointers: one to the data for the hook, once for the slot and once for the call
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1235 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 16:13:36 +00:00
Lennart Poettering
281125c727 rework hook list stuff again, and replace macros with real functins. We loose type safety but things are much cleaner now
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1234 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-13 01:43:34 +00:00
Lennart Poettering
82a913d73e reall add type safe hook list
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1232 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 23:55:22 +00:00
Lennart Poettering
80d73dd21b implement typeafe hook chain
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1231 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 23:35:44 +00:00
Lennart Poettering
7f70ca31a1 extend maximum sink/source name length, because HAL UDIs can get ridiculously long
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1230 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:59:10 +00:00
Lennart Poettering
02e083cbc4 test if sink->monitor_source is set before making use of it
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1228 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 17:06:39 +00:00
Lennart Poettering
b5207fc9ca add pa_sink_used_by()/pa_source_used_by()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1226 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 16:50:58 +00:00
Lennart Poettering
0547b0fd4a there's no need to queue subscription events if noone is listening, hence don't do it!
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1218 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 15:08:53 +00:00
Lennart Poettering
3aba099fc3 clean up event generation a little: suppress unnecessary events and generate new ones on owner change
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1212 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 02:19:36 +00:00
Lennart Poettering
47d009afd6 rework subscription code: try to drop redundant queued events
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1211 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 02:18:24 +00:00
Lennart Poettering
f8e5f47e23 fix a compiler warning
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1210 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 02:16:47 +00:00
Lennart Poettering
e9d9356d11 add new macro PA_LLIST_INSERT_AFTER
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1209 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-12 02:16:12 +00:00
Lennart Poettering
af1b0317f6 comment which values in pa_{sink,source,sink_input,source_output} structures may be NULL
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1204 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-11 23:31:59 +00:00
Lennart Poettering
c90dd53268 * introduce new functions pa_sink_set_description() and pa_source_set_description() for changing the description of a sink/source
* allow sinks without monitor sources attached


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1203 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-11 17:53:34 +00:00
Lennart Poettering
539612a5c2 do not export name validity checking routes and apply them only to sink/source names, not sample names
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1199 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-11 16:58:21 +00:00
Lennart Poettering
576c4dd96a rework name register a litle to only allow "valid" names.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1197 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-11 16:38:51 +00:00
Lennart Poettering
5fdc39dc26 wrap pa_source_output_move_to() in the native protocol
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1183 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-03 22:32:23 +00:00
Lennart Poettering
1c45061fe1 add new CLI command move-source-output as wrapper around pa_source_output_move_to()
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1182 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-03 22:31:35 +00:00
Lennart Poettering
2d00de5851 Implement pa_source_input_move_to() for moving record streams between sources
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1181 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-03 22:30:45 +00:00
Lennart Poettering
ddc69fccb5 - don't call pa_sink_notify in pa_sink_input_new() because the virtual methods are not yet initialized at this time
- some minor cleanups


git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1180 fefdeb5f-60dc-0310-8127-8f9354f1896f
2006-08-03 22:29:55 +00:00