summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
Commit message (Collapse)AuthorAgeFilesLines
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-198-270/+317
| | | | | | | | | | | | | | | | | | | | | | | - We now implement a logic where the sink maintains two distinct volumes: the 'reference' volume which is shown to the users, and the 'real' volume, which is configured to the hardware. The latter is configured to the max of all streams. Volume changes on sinks are propagated back to the streams proportional to the reference volume change. Volume changes on sink inputs are forwarded to the sink by 'pushing' the volume if necessary. This renames the old 'virtual_volume' to 'real_volume'. The 'reference_volume' is now the one exposed to users. By this logic the sink volume visible to the user, will always be the "upper" boundary for everything that is played. Saved/restored stream volumes are measured relative to this boundary, the factor here is always < 1.0. - introduce accuracy for sink volumes, similar to the accuracy we already have for source volumes. - other cleanups.
* source: rework volume handlingLennart Poettering2009-08-192-20/+27
| | | | | | | | | | | | | - drop the 'virtual_' prefix from s->virtual_volume since we don't distuingish between reference and real volumes for sources - introduce an accuracy for source volumes: if the hardware can control the volume "close enough" don't necessarily adjust the rest in software unless it is beyond a certain threshold. This should save a little bit of CPU at the expensive of a bit of accuracy in volume handling. - other minor cleanups
* macro: extend comments a bitLennart Poettering2009-08-191-4/+4
|
* macro: simplify page/word alignment macros a bitLennart Poettering2009-08-171-12/+8
|
* macro: add PA_ROUND_UP/PA_ROUND_DOWN macrosLennart Poettering2009-08-171-4/+30
|
* aupdate: implicitly call _write_swap() if it wasn't called explicitlyLennart Poettering2009-08-162-0/+12
|
* core: add to FIXMEsLennart Poettering2009-08-162-0/+2
|
* modules: add various checks to avoid selecting objects that are not linked ↵Lennart Poettering2009-08-161-8/+22
| | | | or in another unclear state
* thread-mq: do final q flush only when we aren't dispatching anywayLennart Poettering2009-08-151-3/+5
|
* asyncmsgq: introduce pa_asyncmsgq_dispatching()Lennart Poettering2009-08-152-0/+8
|
* core: introduce pa_{sink|source}_update_flags()Lennart Poettering2009-08-154-3/+41
|
* database: simple hashmap based database implementationJuho Hämäläinen2009-08-151-0/+510
|
* hook-list: make use of PA_LLIST_FOREACHLennart Poettering2009-08-151-1/+1
|
* native-protocol: downgrade volume change log messagesLennart Poettering2009-08-151-3/+9
|
* core: document difference between IO and main thread view on requested latencyLennart Poettering2009-08-151-0/+3
|
* core: don't update latency range if not changedLennart Poettering2009-08-151-2/+5
|
* core: call pa_sink_get_latency_within_thread() instead of going directly via ↵Lennart Poettering2009-08-151-8/+2
| | | | process_msg()
* core: make fixed latency dynamically changeableLennart Poettering2009-08-159-50/+210
| | | | | | | | | | | | | This of course makes the name 'fixed' a bit of a misnomer. However the definitions are now like this: fixed latency: the latency may change during runtime, but is solely controlled by the backend, the client has no influence. dynamic latency: the latency may change during runtime, influenced by the requests of the clients. i.e. fixed vs. dynamic is from the perspective of the client.
* core: move rtpoll to thread_info sub structureLennart Poettering2009-08-154-13/+13
|
* log: place more rate limit invocationsLennart Poettering2009-08-151-1/+3
|
* core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPENDLennart Poettering2009-08-158-15/+18
|
* native: handle moving() callback with NULL destination properlyLennart Poettering2009-08-151-1/+7
|
* core: introduce pa_{sink_input|source_output}_fail_move()Lennart Poettering2009-08-156-12/+52
|
* protocol-native: log explicitly each time a client triggers a volume changeLennart Poettering2009-08-141-3/+12
|
* resampler: round up when estimating input/output sizesLennart Poettering2009-08-141-2/+6
|
* thread-mq: never drop queued messages for the main loopLennart Poettering2009-08-141-0/+7
| | | | | | | | Previously we might have dropped messages from IO trheads to the main thread. This tuend out to be problematic since this cause SHM release messages to be lost. More visibly however this could cause playback freezing when moving streams between sinks and removing the old sink right away.
* asyncmsgq: add pa_asyncmsgq_flush() callLennart Poettering2009-08-142-4/+34
|
* memblockq: add pa_memblockq_get_maxrewind() APILennart Poettering2009-08-142-0/+9
|
* shm: bump shm size limit to 1GBLennart Poettering2009-08-141-1/+2
|
* core: add functions to query max_rewind/max_request values from streamsLennart Poettering2009-08-134-0/+33
|
* core: add assert macros for verifying calling contextLennart Poettering2009-08-139-31/+234
| | | | | | | This adds pa_assert_io_context() and pa_assert_ctl_context() in addition to a few related macros. When called they will fail when the current execution context is not IO resp. not control context. (aka 'thread' context vs. 'main' context)
* start-child: clean up child environment a bit betterLennart Poettering2009-08-121-7/+8
|
* memblock: rate limit 'Pool full' messageLennart Poettering2009-08-121-1/+2
|
* core-util: move personality resetting into core-utilLennart Poettering2009-08-122-0/+15
|
* conf: add pa_config_parse_not_bool() for parsing inverse boolean ↵Lennart Poettering2009-08-122-0/+25
| | | | configuration options
* ladspa/remap: make sure we process all requested rewinds unconditionallyLennart Poettering2009-08-072-5/+8
| | | | | | | In some situations a rewind request travelling downstream might be optimized away on its way and an upstream rewind processing might never come back. Hence, call _process_rewind() before each _render()just to make sure we processed them all.
* core: save volume/mute changes coming from the hardware automaticallyLennart Poettering2009-08-074-25/+30
| | | | | Volume changes coming from the lower layers are most likely changes triggered by the user, so let's save them automatically.
* smoother: readd #ifdef protectionLennart Poettering2009-08-051-2/+2
|
* autospawn: if creating the lock file fails, pass error code cleanly back to ↵Lennart Poettering2009-08-011-21/+45
| | | | | | | | | main process This makes sure PA clients don't hang if $HOME is for some reason unsuitable for autospawn lockfiles. Closes #539
* core-util: replace remaining fixed size destination string functions by ↵Lennart Poettering2009-08-015-33/+91
| | | | | | | | | | _malloc() versions This helps portability to GNU/Hurd. Patch originally from Samuel Thibault but modified. Closes ticket #546
* core-util: rework pa_strlcpy() to not rely on strncpy()Lennart Poettering2009-08-011-2/+10
| | | | | strncpy() is very slow since it resets the entire destination buffer. Replace usage of strncpy by memcpy().
* pipe: replace PIPE_BUF macro pa pa_pipe_buf callLennart Poettering2009-08-012-0/+19
| | | | | | | This should help portability to platforms that lack PIPE_BUF. Based on a patch from Samuel Thibault. See ticket #546
* alsa: throw timing data away after device resumeLennart Poettering2009-07-242-22/+21
|
* memblock: try to hit an assert earlier when ref counting doesn't workLennart Poettering2009-07-241-9/+14
|
* daemon: replace colons by dash in per-machine directory names for compat ↵Lennart Poettering2009-07-231-2/+2
| | | | with weird filesystems
* Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudioLennart Poettering2009-07-232-3/+3
|\ | | | | | | | | Conflicts: src/daemon/main.c
| * Merge commit 'flameeyes/osx'Lennart Poettering2009-07-231-2/+2
| |\
| | * Again make sure that the wait() definition is not shadowed.Diego Elio 'Flameeyes' Pettenò2009-07-171-2/+2
| | | | | | | | | | | | Rename the parameter in pa_asyncmsgq_get() to wait_op.
| * | protocol-native: use the right samplerateWim Taymans2009-07-231-1/+1
| |/ | | | | | | | | The render_memblockq is expressed in the sample_spec of the sink, not of the particular stream before resampling.
* / memtrap: clarify that we are not interested in the return value of write()Lennart Poettering2009-07-201-1/+1
|/