summaryrefslogtreecommitdiffstats
path: root/src/modules/module-combine.c
Commit message (Collapse)AuthorAgeFilesLines
* Adapt rtpoll and friends to Windows by replacing timespec with timeval andPierre Ossman2007-10-031-9/+9
| | | | | | | add a fallback when clock_gettime() isn't available. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1926 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework module-combine once again. We now run the data generation always in a ↵Lennart Poettering2007-09-281-336/+208
| | | | | | seperate thread. This should help use to avoid all the awful race conditions we had in previously git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1916 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix suspending in module-combine.cLennart Poettering2007-09-241-4/+4
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1903 fefdeb5f-60dc-0310-8127-8f9354f1896f
* drop the PA_SOURCE_CAN_SUSPEND and PA_SINK_CAN_SUSPEND flags, since they ↵Lennart Poettering2007-09-241-1/+1
| | | | | | were a bad idea in the first place. All sinks/sources are now *required* to handle suspending in one way or another. Luckily all current sink/source implementations handle it fine anyway. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1894 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't segfault when the master changesLennart Poettering2007-09-201-15/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1875 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework module-combine againLennart Poettering2007-09-201-187/+245
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1873 fefdeb5f-60dc-0310-8127-8f9354f1896f
* render new data always in the master sink's thread, fixing missing lockingLennart Poettering2007-09-191-65/+133
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1871 fefdeb5f-60dc-0310-8127-8f9354f1896f
* drop a couple of WARNING prefixes in log messages, since we have pa_log_warn ↵Lennart Poettering2007-09-171-1/+1
| | | | | | anyway for marking warnings especially git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1842 fefdeb5f-60dc-0310-8127-8f9354f1896f
* use priority inheritance on mutexes where applicableLennart Poettering2007-09-171-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1837 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a "length" argument to the seek functions, as an optimization to request ↵Lennart Poettering2007-09-161-4/+4
| | | | | | a certain block size if any data needs to be generated. this is merely a hint. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1833 fefdeb5f-60dc-0310-8127-8f9354f1896f
* trivial typoLennart Poettering2007-09-151-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1825 fefdeb5f-60dc-0310-8127-8f9354f1896f
* count corked streams per sink/source and make pa_sink_used_by() return only ↵Lennart Poettering2007-09-151-1/+1
| | | | | | the number of streams that are not corked. Introduce pa_sink_linked_by() returning the number of streams connected at all. This will allow suspending of sinks/sources when all streams connected to a sink are corked. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1824 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Move attaching/detaching from a pa_rtpoll into pa_sink proper, remove it ↵Lennart Poettering2007-09-141-25/+19
| | | | | | from module-combine git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1823 fefdeb5f-60dc-0310-8127-8f9354f1896f
* simplify rt loops a bit by moving more code into pa_rtpoll. It is now ↵Lennart Poettering2007-09-141-58/+27
| | | | | | possible to attach "work" functions to a pa_rtpoll_item, which will be called in each loop iteration. This allows us to hide the message processing in the RT loops and to drop the seperate sink_input->process hooks. Basically, only the driver-specific code remains in the RT loops. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1822 fefdeb5f-60dc-0310-8127-8f9354f1896f
* extend rtpoll API to allow registration of arbitray functions to be executed ↵Lennart Poettering2007-09-121-2/+2
| | | | | | in the event loop. Add priority system for specifying the order of these functions. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1816 fefdeb5f-60dc-0310-8127-8f9354f1896f
* change pa_modargs_get_channel_map() to take an extra argument for specifying ↵Lennart Poettering2007-09-121-2/+2
| | | | | | the name of the modargs attribute to parse git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1813 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add 'wait' parameter to pa_rtpoll_run(), if zero pa_rtpoll_runn will only ↵Lennart Poettering2007-09-111-1/+1
| | | | | | update the struct pollfd but not wait for an event git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1803 fefdeb5f-60dc-0310-8127-8f9354f1896f
* - fix suspend handlingLennart Poettering2007-08-311-23/+38
| | | | | | | | - set sink description properly - honour resample_method setting git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1735 fefdeb5f-60dc-0310-8127-8f9354f1896f
* port module-combine to new coreLennart Poettering2007-08-301-177/+933
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1734 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Convert most snprintf() calls to pa_snprintf()Lennart Poettering2007-07-251-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1534 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add copyright notices to all relevant files. (based on svn log)Pierre Ossman2007-02-131-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1426 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Huge trailing whitespace cleanup. Let's keep the tree pure from here on,Pierre Ossman2007-01-041-35/+35
| | | | | | | mmmkay? git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix module-combine when used on top of a tunnel sinkLennart Poettering2006-08-261-2/+15
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1333 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove all occurences of Lennart Poettering2006-08-181-16/+16
| | | | | | | | | | | | 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
* Rework memory management to allow shared memory data transfer. The central ideaLennart Poettering2006-08-181-2/+1
| | | | | | | | | | | | | | | 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
* allow hooking into the process of creating playback streams. To implement ↵Lennart Poettering2006-08-131-2/+12
| | | | | | 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
* make use of pa_sink_used_by()/pa_source_used_by() wherever applicableLennart Poettering2006-08-121-4/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1227 fefdeb5f-60dc-0310-8127-8f9354f1896f
* don't set the sink/source descriptions manually, use the new functions ↵Lennart Poettering2006-08-111-1/+1
| | | | | | pa_{sink,source}_set_description() instead git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1205 fefdeb5f-60dc-0310-8127-8f9354f1896f
* big s/polyp/pulse/gLennart Poettering2006-06-191-16/+16
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1033 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Move timeval calculation functions into their own file.Pierre Ossman2006-05-181-0/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@926 fefdeb5f-60dc-0310-8127-8f9354f1896f
* split polypcore/util.[ch] into polypcore/core-util.[ch] and polyp/util.[ch]Lennart Poettering2006-05-171-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@917 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Move xmalloc to the public side (libpolyp).Pierre Ossman2006-05-171-1/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@908 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * modify pa_channel_map_init_auto() to take an extra argument specifying the ↵Lennart Poettering2006-05-161-1/+1
| | | | | | | | | standard to use (ALSA, AIFF, ...) * add some more validity checks to pa_source_new(),pa_sink_new(),pa_sink_input_new(),pa_source_output_new() git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@888 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * add new parameter to pa_open_config_file() to specify open modeLennart Poettering2006-05-141-1/+1
| | | | | | | | * modify pa_sink_input_new() to take initial volume settings as argument * call pa_sink_input_set_volume() when changing stream volume in protocol-esound.c to make sure that subscribe events are issued properly git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@858 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fail if the channel map doesn't match the sample specsLennart Poettering2006-04-261-0/+5
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@810 fefdeb5f-60dc-0310-8127-8f9354f1896f
* support new channel_map argument in sink/source modulesLennart Poettering2006-04-261-3/+35
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@803 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix latency calculations of module-combineLennart Poettering2006-04-131-1/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@704 fefdeb5f-60dc-0310-8127-8f9354f1896f
* change pa_log() and friends to not require a trailing \n on all logged stringsLennart Poettering2006-02-231-13/+13
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@574 fefdeb5f-60dc-0310-8127-8f9354f1896f
* 1) Add flexible seeking support (including absolute) for memory block queues ↵Lennart Poettering2006-02-201-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | and playback streams 2) Add support to synchronize multiple playback streams 3) add two tests for 1) and 2) 4) s/PA_ERROR/PA_ERR/ 5) s/PA_ERROR_OK/PA_OK/ 6) update simple API to deal properly with new peek/drop recording API 7) add beginnings of proper validity checking on API calls in client libs (needs to be extended) 8) report playback buffer overflows/underflows to the client 9) move client side recording mcalign stuff into the memblockq 10) create typedefs for a bunch of API callback prototypes 11) simplify handling of HUP poll() events Yes, i know, it's usually better to commit a lot of small patches instead of a single big one. In this case however, this would have contradicted the other rule: never commit broken or incomplete stuff. *** This stuff needs a lot of additional testing! *** git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@511 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Reorganised the source tree. We now have src/ with a couple of subdirs:Pierre Ossman2006-02-161-0/+394
* daemon/ - Contains the files specific to the polypaudio daemon. * modules/ - All loadable modules. * polyp/ - Files that are part of the public, application interface or are only used in libpolyp. * polypcore/ - All other shared files. * tests/ - Test programs. * utils/ - Utility programs. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@487 fefdeb5f-60dc-0310-8127-8f9354f1896f