summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa/alsa-sink.c
Commit message (Collapse)AuthorAgeFilesLines
* alsa: properly report suspension error codesLennart Poettering2009-09-111-9/+14
|
* alsa: disable tsched for software devices before we configure the buffer ↵Lennart Poettering2009-09-091-5/+0
| | | | metrics so that we don't accidently set a buffer size that is suitable for tsched where we don't use tsched
* alsa: pass SND_PCM_NONBLOCK when opening device during unsuspend, the same ↵Lennart Poettering2009-09-091-1/+1
| | | | way we do it for initial opening
* alsa: rework buffer/period configurationLennart Poettering2009-09-091-20/+24
| | | | | | | | | | | | | - As discussed on alsa-devel it's probably better to initialize the buffer size first, followed by the period size. If that fails try the other way round. If that fails try to configure only buffer size. If that fails try to configure only period size. Finally, try to configure neither. - Don't require integral periods anymore. Both of these changes should help improving compatibility with various weirder sound devices, such as TV cards.
* alsa-sink: init after_avail earlier (llvm-clang-analyzer)Lennart Poettering2009-09-081-1/+1
|
* llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixesLennart Poettering2009-09-081-2/+1
|
* alsa: by default increase watermarks only on real underruns, don't try to be ↵Lennart Poettering2009-09-011-1/+4
| | | | smart
* alsa: distuingish real underruns from left_to_play=0Lennart Poettering2009-09-011-1/+3
|
* alsa: automatically decrease watermark after a time of stabilityLennart Poettering2009-08-241-34/+112
|
* alsa: increase interval between smoother updates exponentially for alsa ↵Lennart Poettering2009-08-231-5/+3
| | | | sources, following the scheme for sinks
* alsa-sink: reduce the amount of smoother updatesWim Taymans2009-08-201-4/+22
| | | | | | | Exponentially increase the amount of time between smoother updates. We start with a 2ms interval and increase up to 200ms intervals. Smoother updates and the resulting linear regression take a fair amount of CPU so we want to reduce the amount of updates.
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | - 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.
* udev: allow passing of ignore_dB= parameter to alsa modulesLennart Poettering2009-08-191-13/+24
|
* log: place more rate limit invocationsLennart Poettering2009-08-151-1/+2
|
* alsa: properly treat ESTRPIPE as system suspendLennart Poettering2009-08-041-2/+2
|
* Recover stream when it's suspended upon rewindLubomir Rintel2009-08-031-1/+7
| | | | | | | | | | | | | Error from snd_pcm_rewind() might mean we just woke up from suspend and didn't have a chance to try to recover the stream since we didn't write to it in between. Call try_recover() in such cases. Note that for this to work kernel must return ESTRPIPE instead of EBADF for rewind/forward attempts on suspended streams, so that snd_pcm_recover() can recognize it should snd_pcm_resume() the stream. This is not the case yet (2.6.31-rc5), patch is available. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
* alsa: throw timing data away after device resumeLennart Poettering2009-07-241-1/+5
|
* alsa: handle correctly if alsa returns us 0 or EAGAIN on snd_pcm_mmap_begin ↵Lennart Poettering2009-07-241-4/+18
| | | | if we didn't call snd_pcm_avail immediately before
* alsa: deal properly with IO functions asking us to write 0 bytesLennart Poettering2009-07-221-1/+5
|
* alsa: fix a few commentsLennart Poettering2009-07-011-2/+1
|
* Merge most of elmarco/rtclock2Lennart Poettering2009-06-221-10/+11
|\ | | | | | | Merge commit 'e4d914c945c13d23b131d7ba75fbdd03cb6d0043'
| * pulse: move pa_rtclock_now in pulsecommonMarc-André Lureau2009-06-201-4/+5
| |
| * perl -p -i -e 's/pa_rtclock_usec/pa_rtclock_now/g' `find . -name '*.[ch]'`Marc-André Lureau2009-06-191-6/+6
| |
* | core: get rid of rt sig/timer handling since modern Linux' ppooll() is ↵Lennart Poettering2009-06-191-1/+0
|/ | | | finally fixed for granularity
* alsa: unify alsa log handling and snd_config_update_free_global() handling ↵Lennart Poettering2009-06-181-1/+0
| | | | in one place
* alsa: when creating alsa sinks/sources include mapping name in device name ↵Lennart Poettering2009-06-181-3/+7
| | | | to allow profiles mit multiple sinks or multiple sources
* alsa: rework mixer logicLennart Poettering2009-06-171-255/+219
| | | | | | | | | | | | Completely rework mixer logic. This now allows controlling a full set of elements from a single sink's volume slider/mute button. This also introduces sink and source "ports" that can be used to choose different input or output ports with the UI. (i.e. "mic"/"line-in" or "speaker"/"headphones". The mixer paths and device maps are now configered in external configuration files and can be tweaked as necessary.
* core: make sure soft mute status stays in sync with hw mute statusLennart Poettering2009-06-081-1/+1
| | | | | | This should close rhbz #494851, mandriva bz #51234. Probably the same as our own #572, launchpad #352732.
* alsa: monitor device reservation status and resume automatically when device ↵Lennart Poettering2009-06-051-3/+62
| | | | becomes unused
* core: add a suspend cause flags fieldLennart Poettering2009-06-051-1/+1
|
* modules: add {sink|source|card}_properties argument to all modulesLennart Poettering2009-05-281-0/+6
|
* alsa: include mixer name in sink/source propertiesLennart Poettering2009-05-121-1/+7
|
* core: introduce pa_{sink,source}_set_fixed_latency()Lennart Poettering2009-05-081-2/+2
| | | | | This allows us to forward the fixed latency directly from the sink to the monitor source withut having to wait for pa_sink_put().
* alsa: don't hit an assert when invalid module arguments are passedLennart Poettering2009-05-011-1/+2
|
* alsa: properly convert return values of snd_strerror() to utf8Lennart Poettering2009-04-191-14/+14
|
* core: introduce new 'reference' volume for sinksLennart Poettering2009-04-131-1/+1
| | | | | | | | | | | | | | | The reference volume is to be used as reference volume for stored stream volumes. Previously if a new stream was created the relative volume was taken relatively to the virtual device volume. Due to the flat volume logic this could then be fed back to the virtual device volume. Repeating the whole story over and over would result in a device volume that would go lower, and lower and lower. This patch introduces a 'reference' volume for each sink which stays unmodified by stream volume changes even if flat volumes are used. It is only modified if the sink volumes are modified directly by the user. For further explanations see http://pulseaudio.org/wiki/InternalVolumes
* alsa: include the alsa mixer control that is used in the property listLennart Poettering2009-04-131-1/+1
|
* alsa: store mixer controls to use in profile dataLennart Poettering2009-04-131-1/+1
| | | | | This allows us to easily use different mixer controls for analog and spdif output.
* make sure we never overflow when calculating sleep timeLennart Poettering2009-04-131-2/+14
| | | | Issue pointed out by Jaroslav Kysela
* set fixed latencies at more places where appropriateLennart Poettering2009-04-101-5/+5
|
* alsa: when printing warning about bogus data from alsa include snd_pcm_dump()Lennart Poettering2009-04-101-1/+1
|
* Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudioLennart Poettering2009-04-051-2/+7
|\
| * refuse to initialize on modem devicesLennart Poettering2009-04-041-0/+5
| |
| * various spelling fixesMaarten Bosmans2009-04-041-2/+2
| |
* | Modify smoothing code to make cubic interpolation optional and allow 'quick ↵Lennart Poettering2009-04-051-6/+9
|/ | | | | | | | | | | | | | | fixups' on resuming The primary reason for this change is to allow time graphs that do not go through the origin and hence smoothing starting from the origin is not desired. This change will allow passing time data into the smoother while paused and then abruptly use that data without smoothing using the 'quick fixup' flag when resuming. Primary use case is allowing recording time graphs where the data recorded originates from a time before the stream was created. The resulting graft will be shifted and should not be smoothened to go through the origin.
* Specifying ALSA mixer controlKyle Cronan2009-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | On Fri, Mar 27, 2009 at 7:21 AM, Lennart Poettering <lennart@poettering.net> wrote: >> I tried installing the latest git sources on my Ubuntu Jaunty box but >> it just broke sound in all my applications.  For my own purposes, I'm >> going to need to start with the Ubuntu-patched 0.9.14.  However, if >> you are willing to accept this patch I will forward port it so that it >> applies to the latest sources.  It's a completely harmless change, so >> why not apply it? > > Yes, I am happy to apply it. Could you please update it for current git? > Great. An updated patch is attached. For symmetry, I added this option to the alsa source module as well. The Ubuntu folks have customized pulse so much that it is difficult for me to get this version working on my system. For this patch I have only made sure that it compiles. But it does pretty much the same thing as the one for 0.9.14, which is working great for me. Thanks, Kyle
* don't enabled tsched on software ALSA devicesLennart Poettering2009-03-301-0/+5
|
* use u->use_tsched everywhereLennart Poettering2009-03-251-1/+1
|
* set latency range only in tsched modeLennart Poettering2009-03-251-10/+11
|
* introduce new flag that marks sinks/sources which can adjust the latency ↵Lennart Poettering2009-03-251-1/+1
| | | | dynamically