summaryrefslogtreecommitdiffstats
path: root/src/modules
Commit message (Collapse)AuthorAgeFilesLines
...
* volume: Clamp volume to PA_VOLUME_MAXArun Raghavan2010-10-155-10/+10
| | | | | | This ensures that we always clamp the volume to PA_VOLUME_MAX. While this currently has no effect, it will be required for making sure we don't exceed PA_VOLUME_MAX when its value changes in the future.
* volume: Use a macro to check if a volume is validArun Raghavan2010-10-155-6/+6
| | | | | | | This adds a PA_VOLUME_IS_VALID() macro for checking if a given pa_volume_t is valid. This makes changes to the volume ranges simpler (just change PA_VOLUME_MAX, for example, without needing to modify any other code).
* bluetooth: Add support for Media APILuiz Augusto von Dentz2010-10-074-72/+1109
| | | | Make use of D-Bus to transfer file descriptors.
* augment-properties: Fix debug messages and statement bracketing.Colin Guthrie2010-10-061-2/+3
|
* device-manager: Ensure that sinks/sources populate the device manager lists ↵Colin Guthrie2010-09-291-5/+59
| | | | | | | in order of their priority. Currently the order of the sinks is simply that of their position in the idxset which is certainly not what the user would want.
* augment-properties: Search for .desktop files in subfolders too.Colin Guthrie2010-09-291-5/+39
|
* echo-cancel: Use S16NE for adrian moduleArun Raghavan2010-09-271-9/+5
| | | | | | This forces us to get native-endian samples in the adrian module so that we can rely on the existing endianness conversion mechanisms instead of doing it in the module.
* echo-cancel: Ensure correct handling of endiannessArun Raghavan2010-09-232-3/+4
| | | | | | The adrian module was using home-brewed endianness conversion instead of the appropriate mactos, and speex assumed a little-endian host. This fixes both of these.
* echo-cancel: orc-ify some bits for optimisationArun Raghavan2010-09-235-2/+329
| | | | | This uses Orc to optimise an inner loop in the core NLMS function of the Adrian echo canceller.
* echo-cancel: Add SSE optimisation to the adrian moduleArun Raghavan2010-09-237-12/+61
| | | | | | Optimises the core inner-product function, which takes the most CPU. The SSE-optimised bits of the adrian echo canceller only if the CPU that PA is running on actually supports SSE.
* x11: Use the default screen for X11 properties.Colin Guthrie2010-09-181-15/+22
| | | | | This commit restores the functionality originally included in 65e807 by Leszek Koltunski.
* x11: Partially convert to XCB.Colin Guthrie2010-09-181-18/+17
| | | | | | | | | This commit mostly converts the X11 handling to XCB. There are still some uses of XLib to deal with the X11 session handling modules, however all client-side code should now be free of XLib and thus this should fix Bug #799 Note that this removes the screen-based changes by Leszek Koltunski in 65e80, however this will be restored in due course.
* alsa: Only set the 'first' flag to false when we actually call snd_pcm_start()Colin Guthrie2010-09-141-1/+2
| | | | Previously, if work_done was false, we could conceivably not call snd_pcm_start().
* alsa: Set the rewind safeguard proportionally to sample specColin Guthrie2010-09-141-2/+3
| | | | | | | | | | | | | Currently when rewinding alsa, a fixed value of 256 bytes is used, which represents 1.33ms @ 48kHz (2ch, 16bit). This is typically fine and due to DMA constraints we would not want to rewind less than this. However with more demanding sample specs, (e.g. 8ch 192kHz 32bit) 256 bytes is likely not sufficient, so calculate what 1.33ms would be and use which ever value is bigger. Discussed with David Henningsson and Pierre-Louis Bossart here: http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/7286
* alsa-mixer: add profile for Traktor Kontrol S4Daniel Mack2010-09-122-0/+82
| | | | | This new audio interface from Native Instruments has 2 stereo channels for both input and output direction. This patch adds mappings for them.
* echo-cancel: pause timer when echo canceling is offWim Taymans2010-09-091-16/+25
| | | | | While the sink or source is in the suspended state, disable the timer callback because we are not doing any echo canceling then.
* echo-cancel: improve accuracyWim Taymans2010-09-091-1/+5
| | | | | Make the echo canceler drift up to 1ms now that things are more accurate. Add 10 samples of headroom to allow for timing inaccuracies.
* alsa: make defines for smoother configurationWim Taymans2010-09-092-4/+10
| | | | | | | | | | | | Make new defines for the smoother window size and adjust time constants instead of reusing some unrelated constant. Increase the smoother window size even more because the bigger it is, the better. Since we have a 200ms max update interval and the max smoother history is 64 entries, 10seconds is a good default. Decrease the smoother adjust time to 1 second. The previous value of 4 seconds was too much to adapt quickly after a resume.
* echo-cancel: rework alignment codeWim Taymans2010-09-091-59/+76
| | | | | Rework the code to align capture and playback samples so that we can keep more accurate timings.
* alsa: work around slightly broken _delay implementationsWim Taymans2010-09-094-6/+46
| | | | | | Use snd_pcm_avail_delay() in pa_alsa_safe_delay() so that we can check the delay value against the avail value and patch it up when it looks invalid. Only do this for capture.
* alsa-source: refactor smoother and device startWim Taymans2010-09-071-8/+18
| | | | | | | Move the code to start the capture and the smoother closer together to improve smoother accuracy. Rework things to look more like the alsa sink where the device is started in only one place.
* echo-cancel: Mark immutable parameters as const in vfuncArun Raghavan2010-09-073-5/+5
| | | | | Marks the recording and playback streams as const in the pa_echo_canceller->run method for clarity.
* echo-cancel: Make blocksize a module-wide parameterArun Raghavan2010-09-074-43/+25
| | | | | | Since all algorithms will need to specify a block size (the amount of data to be processed together), we make this a common parameter and have the implementation set it at initialisation time.
* echo-cancel: Allow selection of AEC method using modargsArun Raghavan2010-09-071-8/+27
| | | | | This adds an "aec_method" module argument to allow us to select the AEC implementation to use.
* echo-cancel: Add alternative echo-cancellation implementationArun Raghavan2010-09-077-0/+794
| | | | | | | | | | | | This adds Andre Adrian's AEC implementation from his intercom project (http://andreadrian.de/intercom/) as an alternative to the speex echo cancellation routines. Since the implementation was in C++ and not in the form of a library, I have converted the code to C and made a local copy of the implementation. The implementation actually works on floating point data, so we can tweak it to work with both integer and floating point samples (currently we just use S16LE).
* echo-cancel: Let AEC module determine source/sink specArun Raghavan2010-09-073-24/+49
| | | | | | | | | | | | | Since the source and sink specification will need to be determined by the AEC algorithm (can it handle multi-channel audio, does it work with a fixed sample rate, etc.), we negotiate these using inout parameters at initialisation time. There is opportunity to make the sink-handling more elegant. Since the sink data isn't used for playback (just processing), we could pass through the data as-is and resample to the required spec before using in the cancellation algorithm. This isn't too important immediately, but would be nice to have.
* echo-cancel: Pass arguments to the specific canceller moduleArun Raghavan2010-09-073-33/+53
| | | | | This allows us to tweak module parameters for whichever AEC module is chosen.
* echo-cancel: Split out speex code from the core moduleArun Raghavan2010-09-073-35/+183
| | | | | This splits out the echo-cancelling core from the PA-specific bits to allow us to plug in other echo-cancellation engines.
* echo-cancel: Move the module into it's own directoryArun Raghavan2010-09-071-0/+0
| | | | This will make splitting out the canceller parts cleaner.
* alsa: increase the smoother windowWim Taymans2010-09-031-2/+2
| | | | | 40ms for the smoother window is too small. Increase the size to 4 seconds, like we do for the sinks.
* echo-cancel: keep frame_size a power of 2Wim Taymans2010-09-021-1/+8
| | | | | | | The speex echo canceler prefers a power of 2 for the frame size. Round down the ideal frame_size to the nearest power of two. This makes sure we don't create more than the requested frame_size_ms latency while still providing a power of 2 to the speex echo canceller.
* echo-cancel: improve debugWim Taymans2010-09-021-11/+13
|
* echo-cancel: tweak the resync code a littleWim Taymans2010-09-021-5/+2
| | | | | | Try to keep the drift between source and sink within 4ms now that we have more accurate timings. Don't force a resync on latency changes but let the drift code handle it.
* echo-cancel: use the phone media roleWim Taymans2010-09-021-0/+2
| | | | | Tag the source and sink with the phone media roles so that they automatially connect to phone streams such as Empathy when using the intended-rols module.
* alsa-sink/source: Use the "namereg_fail" module argument.Tanu Kaskinen2010-08-302-2/+28
| | | | | | | | | This allows the name registry to mangle the names of auto-detected sinks and sources to be unique, which makes it possible to load multiple identical sound cards using module-udev-detect. At least for now the module argument can only be passed through module-alsa-card.
* alsa-sink: Get rid of a compiler warning regarding rewind_safeguard type.Tanu Kaskinen2010-08-241-2/+2
| | | | | GCC gave a warning, because the pointer given to pa_modargs_get_value_u32() had type size_t instead of uint32_t.
* module-udev-detect: When loading module-alsa-card, use namereg_fail=false.Tanu Kaskinen2010-08-241-0/+1
|
* module-alsa-card: New argument: namereg_fail.Tanu Kaskinen2010-08-241-0/+15
| | | | | | This is added so that module-udev-detect can load multiple module-alsa-card instances with the same card name - forcing namereg_fail to false allows the name registry to mangle the card names to be unique.
* echo-cancel: take into account snapshot delayWim Taymans2010-08-231-5/+13
| | | | | Take into account the delay between taking the snapshot from the source and the sink. Improves the quality of the timings.
* make echo-cancel module that exposes a new sink and sourceWim Taymans2010-08-231-0/+1609
| | | | | | Make a new echo-cancel module that exposes a new sink and source. All data sent to the sink is matched against the data captured from the source and echo-canceled using the speex echo canceler.
* alsa: resume smoother after unsuspendWim Taymans2010-08-231-1/+1
| | | | | | The smoother is paused when the device is suspended but never resumed on unsuspend. Pass the paused = FALSE flag to the pa_smoother_reset() call to make it unpause when unsuspending. This patch improves source timings quite a bit.
* loopback: Make stream names and roles configurable.Tanu Kaskinen2010-08-191-7/+34
|
* AC3 passthrough supportPierre-Louis Bossart2010-08-121-0/+7
| | | | | | | | | | | | Second version after Tanu's feedback TODO: - notify client that volume control is disabled - change sink rate in passthrough mode if needed - automatic detection of passthrough mode instead of hard coded profile names Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* dbusiface-core: Track sinks and sources using synchronous hooks instead of ↵Tanu Kaskinen2010-08-101-120/+130
| | | | | | | | | | | | | | | | asynchronous subscription events. Using the subscription events caused an assertion crash sometimes when a sink was removed and a new sink was created (i.e. card profile change) and a stream was moved from the removed sink to the new sink. The stream dbus object's subscription callback got a change event before the core dbus object's subscription callback got the sink remove/creation events. The stream's subscription callback then queried the core for the object path of the new sink, and since the core was not yet aware of the new sink, an assertion was hit in pa_dbusiface_device_get_path(). Now that the core uses synchronous hooks to keep the sink and source lists up to date, this particular problem can't occur anymore.
* udev: fix hex decodingLennart Poettering2010-07-191-2/+2
|
* alsa: add missing iec958 files from previous commitPierre-Louis Bossart2010-07-152-0/+38
|
* alsa: fix mixer profiles, add passthrough configPierre-Louis Bossart2010-07-132-6/+12
| | | | Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* alsa: disable rewinds when using ALSA pluginsPierre-Louis Bossart2010-07-131-2/+12
| | | | | | | | | | This is required to when playing on a52: device, rewind is broken in those plugins. Credits to Michael Rans <mcarans@yahoo.co.uk> for finding this workaround, and Tanu Kaskinen <tanuk@iki.fi> for providing valuable feedback. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* alsa: Fix assertion on mmap_write (triggered via a52 plugin)Colin Guthrie2010-07-131-0/+3
|
* Merge remote branch 'tanuk2/fixes'Colin Guthrie2010-06-055-35/+45
|\