summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/source-output.c
Commit message (Collapse)AuthorAgeFilesLines
* * add new state changed hook for streamsLennart Poettering2007-09-241-0/+8
| | | | | | | * update sink->n_corked properly when moving streams git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1900 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix IDLE vs. RUNNING state handling of sinks/sources when changing cork ↵Lennart Poettering2007-09-241-0/+5
| | | | | | status for streams git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1899 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add hooks for name/description changes of sinks/source and streamsLennart Poettering2007-09-241-1/+4
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1897 fefdeb5f-60dc-0310-8127-8f9354f1896f
* allow _unlink() functions to be called as many times as people want, even ↵Lennart Poettering2007-09-211-10/+21
| | | | | | before _put() was called git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1878 fefdeb5f-60dc-0310-8127-8f9354f1896f
* maintain the attach status in a boolean variable 'attach' accessible from ↵Lennart Poettering2007-09-201-7/+10
| | | | | | the IO thread for sink_inputs/source_outputs git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1872 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add proper boolean type pa_bool_tLennart Poettering2007-09-161-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1836 fefdeb5f-60dc-0310-8127-8f9354f1896f
* count corked streams per sink/source and make pa_sink_used_by() return only ↵Lennart Poettering2007-09-151-0/+6
| | | | | | 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
* simplify rt loops a bit by moving more code into pa_rtpoll. It is now ↵Lennart Poettering2007-09-141-2/+0
| | | | | | 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
* minor cleanupLennart Poettering2007-09-101-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1792 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix copynpaste errorLennart Poettering2007-09-061-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1775 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Lots of assorted minor cleanups and fixes:Lennart Poettering2007-08-301-11/+34
| | | | | | | | | | | | | | | | | | * s/disconnect/unlink/ at many places where it makes sense * make "start_corked" a normal pa_sink_input/pa_source_output flag instead of a seperate boolean variable * add generic process() function to pa_sink_input/pa_source_output vtable that can be used by streams to do some arbitrary processing in each rt loop iteration even the sink/source is suspended * add detach()/attach() functions to pa_sink_input/pa_source_output vtable that are called when ever the rtpoll object of the event thread changes * add suspend() functions to pa_sink_input/pa_source_output vtable which are called whenever the sink/source they are attached to suspends/resumes * add PA_SINK_INIT/PA_SOURCE_INIT/PA_SINK_INPUT_INIT/PA_SINK_OUTPUT_INIT states to state machines which is active between _new() and _put() * seperate _put() from _new() for pa_sink/pa_source * add PA_SOURCE_OUTPUT_DONT_MOVE/PA_SINK_INPUT_DONT_MOVE flags * make the pa_rtpoll object a property of pa_sink/pa_source to allow streams attached to them make use of it * fix skipping over move_silence * update module-pipe-source to make use of pa_rtpoll * add pa_sink_skip() as optimization in cases where the actualy data returned by pa_sink_render() doesn't matter git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1733 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add makefiles to speex/ and ffmpeg/ to easy compilation from emacsLennart Poettering2007-08-241-4/+7
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1715 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add comments describing the context these functions are called fromLennart Poettering2007-08-111-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1648 fefdeb5f-60dc-0310-8127-8f9354f1896f
* restore the ability move record streams between sourcesLennart Poettering2007-08-111-42/+52
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1641 fefdeb5f-60dc-0310-8127-8f9354f1896f
* use single array for storing pa_core hook lists, add sink state changed ↵Lennart Poettering2007-08-111-6/+5
| | | | | | hook, drop NO_HOOKS flags for sink inputs/source outputs, listen for resume events in module-suspend-on-idle.c git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1640 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add a couple of additional hooks for modules to useLennart Poettering2007-08-091-2/+9
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1600 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rename pa_source_output_new_data::corked to start_corked to match ↵Lennart Poettering2007-07-311-1/+1
| | | | | | pa_sink_input_new_data::start_corked git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1563 fefdeb5f-60dc-0310-8127-8f9354f1896f
* A lot of updates, all necessary to get the native protocol ported:Lennart Poettering2007-07-311-9/+9
| | | | | | | | | | | | | * add an int64_t argument to pa_asyncmsgq because it is very difficult to pass 64 values otherwise * simplify subclassing in pa_object * s/drop/unlink/ at some places * port the native protocol to the lock-free core (not tested, compiles fine) * move synchronisation of playback streams into pa_sink_input * add "start_corked" field to pa_sink_input_new_data * allow casting of NULL values in pa_object git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1562 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Increase ref counter of sink input as long as it is included in the sink idxsetLennart Poettering2007-07-261-1/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1542 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix another ugly typo, which made source outputs unusableLennart Poettering2007-06-141-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1483 fefdeb5f-60dc-0310-8127-8f9354f1896f
* rework sink input/source output state machineLennart Poettering2007-06-141-23/+30
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1478 fefdeb5f-60dc-0310-8127-8f9354f1896f
* A lot of more work to get the lock-free stuff in placeLennart Poettering2007-06-131-27/+31
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1474 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make eolspaceLennart Poettering2007-06-111-14/+14
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1470 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Merge HUGE set of changes temporarily into a branch, to allow me to move ↵Lennart Poettering2007-06-111-145/+179
| | | | | | them from one machine to another (lock-free and stuff) git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1469 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-32/+32
| | | | | | | mmmkay? git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a bad memory accessLennart Poettering2006-08-191-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1302 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove all occurences of Lennart Poettering2006-08-181-6/+6
| | | | | | | | | | | | 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/+2
| | | | | | | | | | | | | | | 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
* implement hook_source_ouput_new. For this I modified the ↵Lennart Poettering2006-08-131-39/+80
| | | | | | 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
* clean up event generation a little: suppress unnecessary events and generate ↵Lennart Poettering2006-08-121-0/+6
| | | | | | new ones on owner change git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1212 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Implement pa_source_input_move_to() for moving record streams between sourcesLennart Poettering2006-08-031-3/+74
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1181 fefdeb5f-60dc-0310-8127-8f9354f1896f
* big s/polyp/pulse/gLennart Poettering2006-06-191-0/+241
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1033 fefdeb5f-60dc-0310-8127-8f9354f1896f