summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa-util.c
Commit message (Collapse)AuthorAgeFilesLines
* apparently alsa expects us to free the memory for card namesLennart Poettering2008-05-071-0/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2384 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Yes, yet another evil all-in-one commit of intervowen changes. I suck.Lennart Poettering2008-05-011-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Drop "state" directory, fold that into "runtime directory" * No longer automatically rewind when a new stream connects * Rework sound file stream, to cause a rewind on initialisation, shorten _pop() code a bit * Fix reference counting of pa_socket_server in the protocol implementations * Rework daemon initialization code to be compatible with non-SUID-root setups where RLIMIT_RTPRIO is non-zero * Print warning if RT/HP is enabled in the config, but due to missing caps, rlimits, policy we cannot enable it. * Fix potential memory leak in pa_open_config_file() * Add pa_find_config_file() which works much like pa_open_config_file() but doesn't actually open the config file in question. Just searches for it. * Add portable pa_is_path_absolute() * Add pa_close_all() and use it on daemon startup to close leaking file descriptors (inspired from what I did for libdaemon) * Add pa_unblock_sigs() and use it on daemon startup to unblock all signals (inspired from libdaemon, too) * Add pa_reset_sigs() and use it on daemon startup to reset all signal handlers (inspired from libdaemon as well) * Implement pa_set_env() * Define RLIMIT_RTTIME and friends if not defined by glibc * Add pa_strempty() * rename state testing macros to include _IS_, to make clearer that they are no states, but testing macros * Implement pa_source_output_set_requested_latency_within_thread() to be able to forward latency info to sources from within the IO thread * Similar for sink inputs * generelize since_underrun counter in sink inputs to "playing_for" and "underrun_for". Use only this for ignore potential rewind requests over underruns * Add new native protocol message PLAYBACK_STREAM_MESSAGE_STARTED for notification about the end of an underrun * Port native protocol to use underrun_for/playing_for which is maintained by the sink input anyway * Pass underrun_for/playing_for in timing info to client * Drop pa_sink_skip() since it breaks underrun detection code * Move PID file and unix sockets to the runtime dir (i.e. ~/.pulse). This fixes a potention DoS attack from other users stealing dirs in /tmp from us so that we cannot take them anymore) * Allow setting of more resource limits from the config file. Set RTTIME by default * Streamline daemon startup code * Rework algorithm to find default configuration files * If run in system mode use "system.pa" instead of "default.pa" as default script file * Change ladspa sink to use pa_clamp_samples() for clamping samples * Teach module-null-sink how to deal with rewinding * Try to support ALSA devices with no implicit channel map. Synthesize one by padding with PA_CHANNEL_POSITION_AUX channels. This is not tested since I lack hardware with these problems. * Make use of time smoother in the client libraries. * Add new pa_stream_is_corked() and pa_stream_set_started_callback() functions to public API * Since our native socket moved, add some code for finding sockets created by old versions of PA. This should ease upgrades git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2329 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add new function pa_alsa_build_pollfd() to alsa-util to unify a bit more ↵Lennart Poettering2008-04-231-0/+24
| | | | | | common code from the sink and the source git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2303 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add new function pa_alsa_recover_from_poll() to merge common core from ↵Lennart Poettering2008-04-221-2/+49
| | | | | | module-alsa-sink and module-alsa-source git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2294 fefdeb5f-60dc-0310-8127-8f9354f1896f
* initialize properties for ALSA sinks/sources more elaborately, re #277Lennart Poettering2008-04-201-0/+73
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2287 fefdeb5f-60dc-0310-8127-8f9354f1896f
* make use of new alsa SND_PCM_NO_AUTO_xxx flags; redirect alsa errors to ↵Lennart Poettering2008-04-111-4/+40
| | | | | | normal PA log system git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2245 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add utility functions to dump alsa PCM stateLennart Poettering2008-04-071-0/+43
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2219 fefdeb5f-60dc-0310-8127-8f9354f1896f
* propery calculate min_avail in frames instead of bytes. don't use device_id= ↵Lennart Poettering2008-04-041-1/+1
| | | | | | parameter in alsa modules if parameter wasn't specified git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2218 fefdeb5f-60dc-0310-8127-8f9354f1896f
* commit glitch-free workLennart Poettering2008-03-151-18/+115
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2124 fefdeb5f-60dc-0310-8127-8f9354f1896f
* deal with a possibly failing pa_channel_map_init_auto() correctlyLennart Poettering2008-02-131-1/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2105 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Rework ALSA mixer channel detection code. This time we actually care about ↵Lennart Poettering2007-11-131-4/+128
| | | | | | the channel names the ALSA mixer exports for us git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2055 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Completely rework ALSA device selection code: choose the device to open ↵Lennart Poettering2007-11-131-18/+234
| | | | | | depending on the requested number of channels and channel map. In most cases it will now suffice to set default-channels=6 to enable 5.1 sound for all devices that support it git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2050 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add support for 32bit integer samplesLennart Poettering2007-11-091-3/+11
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2037 fefdeb5f-60dc-0310-8127-8f9354f1896f
* merge 'lennart' branch back into trunk.Lennart Poettering2007-10-281-94/+108
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1971 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add copyright notices to all relevant files. (based on svn log)Pierre Ossman2007-02-131-0/+3
| | | | 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-14/+14
| | | | | | | mmmkay? git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove all occurences of Lennart Poettering2006-08-181-11/+11
| | | | | | | | | | | | 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
* fix bad memory access and a leak when detructing ALSA fd listsLennart Poettering2006-08-111-2/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1198 fefdeb5f-60dc-0310-8127-8f9354f1896f
* change order of the ALSA event dispatch code to make sure that the code ↵Lennart Poettering2006-08-111-2/+2
| | | | | | survives if the event dispatcher frees the ALSA client git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1193 fefdeb5f-60dc-0310-8127-8f9354f1896f
* big s/polyp/pulse/gLennart Poettering2006-06-191-7/+7
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1033 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * make hw param settings easier to debug by splitting up long ifLennart Poettering2006-06-171-6/+18
| | | | | | | | * actually set the sample rate * disable resampling done by ALSA git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1024 fefdeb5f-60dc-0310-8127-8f9354f1896f
* if S16NE is not supported, fall back to S16RE. If FLOAT32NE is not ↵Lennart Poettering2006-06-161-14/+70
| | | | | | supported, fall back to FLOAT32NE. If still nothing is supported, try everything else in order git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1020 fefdeb5f-60dc-0310-8127-8f9354f1896f
* decrease maximum allowed sample frequency for ALSA devices to 5%, since ↵Lennart Poettering2006-05-311-1/+1
| | | | | | 48000 would otherwise match with 44100 git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@995 fefdeb5f-60dc-0310-8127-8f9354f1896f
* downgrade a log messageLennart Poettering2006-05-301-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@994 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * alsa-sink: if "PCM" is not found as mixer track name, fallback to "Master"Lennart Poettering2006-05-301-6/+17
| | | | | | | * alsa-source: if "Capture" is not found as mixer track name, fallback to "Mic" git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@993 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * if an ALSA device doesn't support the channel count requested, use what ↵Lennart Poettering2006-05-301-3/+14
| | | | | | | | | | ALSA suggests instead * if an ALSA device doesn't support the sampling freq requested, use what ALSA suggests and resample if this deviates more than 10% from what we requested * fix segfault freeing an unitialized mixer_fdl field git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@992 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-44/+0
| | | | | | | | | 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
* first set buffer size, and afterwards period sizeLennart Poettering2006-05-131-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@854 fefdeb5f-60dc-0310-8127-8f9354f1896f
* use default alsa channel map for alsa devicesLennart Poettering2006-05-131-0/+44
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@851 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Zero the fd list since we do a memcmp on it later.Pierre Ossman2006-04-281-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@818 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix a couple of issues I found when compiling polypaudio with gcc 2.95Lennart Poettering2006-04-181-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@754 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Fix ALSA fd handling to be compatible with blocking deferred events.Pierre Ossman2006-04-161-2/+4
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@724 fefdeb5f-60dc-0310-8127-8f9354f1896f
* It's safer to set buffer size than to try setting number of periods.Pierre Ossman2006-03-051-1/+3
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@628 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Return the proper error code so that we get a correct error message.Pierre Ossman2006-03-051-12/+12
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@627 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Get notifications about mixer changes from ALSA.Pierre Ossman2006-02-261-7/+37
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@607 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Handle ALSA file descriptors more correctly. This means a bit more overhead,Pierre Ossman2006-02-261-43/+182
| | | | | | | but following their API properly should avoid problems in the future. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@606 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Hardware volume support in ALSA modules.Pierre Ossman2006-02-261-0/+39
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@604 fefdeb5f-60dc-0310-8127-8f9354f1896f
* change pa_log() and friends to not require a trailing \n on all logged stringsLennart Poettering2006-02-231-1/+1
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@574 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fix snd_pcm_hw_params_set_rate_near() usageLennart Poettering2006-02-201-1/+6
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@540 fefdeb5f-60dc-0310-8127-8f9354f1896f
* move alsa-util.[ch], oss-util.[ch] and howl-wrap.[ch] to the modules ↵Lennart Poettering2006-02-161-0/+125
directory since they are just helper source used exclusively by the modules git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@489 fefdeb5f-60dc-0310-8127-8f9354f1896f