Commit graph

1989 commits

Author SHA1 Message Date
Arun Raghavan
baccd26b6a virtual: Make volume sharing on by default
People who use this code (i.e. mostly filters) would presumably want
volume sharing on by default.
2011-09-14 14:15:01 +05:30
David Henningsson
f0ad6fd413 raop: Don't crash if fd is not open when trying to close it
BugLink: http://bugs.launchpad.net/bugs/845286
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-14 09:23:38 +01:00
Colin Guthrie
aa3142ab20 volume: Rename 'sync volume' to 'deferred volume'.
This just covers Lennart's concern over the terminology used.

The majority of this change is simply the following command:
 grep -rli sync[-_]volume . | xargs sed -i 's/sync_volume/deferred_volume/g;s/PA_SINK_SYNC_VOLUME/PA_SINK_DEFERRED_VOLUME/g;s/PA_SOURCE_SYNC_VOLUME/PA_SOURCE_DEFERRED_VOLUME/g;s/sync-volume/deferred-volume/g'

Some minor tweaks were added on top to tidy up formatting and
a couple of phrases were clarified too.
2011-09-13 21:15:49 +01:00
Colin Guthrie
27343ed79a raop: Properly deal with the name coming from the device.
We need to properly quote our proplist arguments passed to the module.
2011-09-09 19:51:02 +01:00
Antonio Ospite
e93b32744c alsa-mixer: Add support for the Microsoft Kinect Sensor device
The Kinect shows up as a UAC device after the firmware has been loaded,
but in order to be detected by pulseaudio a 4-channels input only
mapping is needed. Provide a new profile for that and set it with a udev
rule.

fdo#39664
2011-09-09 19:48:03 +01:00
Maarten Bosmans
3ebc8f8e88 module-suspend-on-idle: Move vacuum code to core
pa_core_maybe_vacuum now vacuums if there are either no streams or all devices are suspended.
The mempool_vacuum argument to module-suspend-on-idle is gone and defaults to true now.
2011-09-09 09:55:48 +01:00
Colin Guthrie
db704130d6 alsa: Tidy up argument descriptions 2011-09-07 21:16:03 +01:00
Colin Guthrie
69fe26206f bluetooth: Bump DBus version to 1.3.0 and drop conditional code.
We used to support older DBus versions but 1.3.0 is two years old
now and by requiring it we cut down of deviated code paths at
runtime and thus have less support issues.

fdo#40635
2011-09-07 20:33:13 +01:00
Tanu Kaskinen
badc32adb9 loopback: New modargs: sink_input_properties and source_output_properties.
The new modargs replace sink_input_name, sink_input_role,
source_output_name and source_output_role.
2011-09-07 20:31:50 +01:00
Colin Guthrie
d36a9df63c raop: Use the port supplied by avahi when connecting to RAOP devices.
The Apple TV for example uses a non-default port, but we previously ignored
this. We now correctly parse the server string but in so doing, we end up
parsing the address twice. As we need a pure IP/hostname of the device itself
to use in our requests, this is somewhat unavoidable.

Sadly there are still other problems with Apple TVs, but this is still
one step closer.

Fixes part of #950
2011-09-05 22:23:17 +01:00
Colin Guthrie
8e298848be device-restore: Fix use-after-free error. 2011-09-05 20:29:36 +01:00
Colin Guthrie
2b96fdfd25 stream-restore: Add proper data validity checks to the legacy database entry read. 2011-09-04 12:54:41 +02:00
Colin Guthrie
e7b65d310d stream-restore: Add in some variable sets that were missing from 9ffa93.
This broke the conversion of the stream-restore database from
previous versions.
2011-09-04 12:28:07 +02:00
Colin Guthrie
47c9d8cf92 device-restore: Simplify the migration of data to per-port keys.
Rather than write all the keys out for each port, simply write a 'null'
port entry and modify the read code to 'fallback' to this when it cannot
find a key. This is needed as the code used when writing the key may not
actually have the sink ports available at the time it uses them,
and thus can cause a segv. This approach adds some degree of overhead
but it's relatively minimal and it can be mitigated by compiling
without support for legacy database formats if so desired.

Thanks to David Henningsson for pointing out the problem.
2011-09-03 12:47:10 +02:00
Maarten Bosmans
9133c6c935 Make gcc --std=c99 happy
We're now more or less C99 compliant
2011-09-03 12:17:28 +02:00
Maarten Bosmans
647048ebc4 module-equalizer-sink: Use correct limit in loop 2011-09-03 12:16:54 +02:00
Maarten Bosmans
3d04a05736 bluetooth/sbc: Use __asm__ keyword 2011-09-03 12:16:49 +02:00
Maarten Bosmans
918f168c15 module-equalizer-sink: Use = in initialising variables
This makes the compiler in C99 mode happy
2011-09-03 12:15:51 +02:00
Maarten Bosmans
fc3ddfb7f5 module-equalizer-sink: Use %z for printf of size_t variables 2011-09-03 12:15:36 +02:00
David Henningsson
96369919e5 alsa-mixer: Set "Front" control to 0 dB on headphone path
I've seen more than one system where the volume control named
"Front" is a part of audio path for headphones. This is somewhat
of a compromise: While we don't merge it into the path, as that
would be regressing machines where "Front" isn't a part of the
audio path, it would still enable sound on these machines.

BugLink: http://bugs.launchpad.net/bugs/804178
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-03 12:14:54 +02:00
David Henningsson
c7bba2464d module-switch-on-connect: Don't switch unlinked sink input and source outputs
Unlinked streams can not be moved, so don't try.

BugLink: http://bugs.launchpad.net/bugs/837386
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-31 18:49:44 +05:30
Arun Raghavan
3fd07a33ee equalizer: Comment out unused function
Gets rid of a compiler warning
2011-08-29 22:14:04 +05:30
Arun Raghavan
394d8a6b6b echo-cancel: Get rid of annoying compiler warnings 2011-08-29 22:13:44 +05:30
Arun Raghavan
837ac4c225 echo-cancel: Don't allow streams to attach while unloading
When unloading, some module may end up trin to move a sink-input or
source-output back onto our virtual sink/source, causing an infinite
loop of us moving the stream away and having it moved back.

We prevent this from happening by preventing any stream from being
attached during unload.
2011-08-29 21:42:57 +05:30
Arun Raghavan
fe52c351c3 echo-cancel: Make save_aec modarg a bool instead of an int 2011-08-29 21:42:57 +05:30
David Henningsson
c862c5caa4 Set better priorities on input paths
The priorities should be set in the approximately likeliness that someone
would like to use them. This is hard to guess of course, but this is
a better guess compared to the existing configuration.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-29 10:05:24 +01:00
Colin Guthrie
a13a402ed3 device-restore: Restore volumes on port change.
This will allow for volumes to be saved separately for e.g. Headphones vs. Speakers.

At present it is possible that no volume will be saved for the device prior to the port
switch. In this case the volume will not change from the value set under the other port.
In an ideal world we would save the volume before switching port, but that would require
a new hook.
2011-08-29 09:59:47 +01:00
Colin Guthrie
1ee97e57ca device-restore: Split device restore database into two parts.
The device restore saves both the current port for a device, and the volume/mute/formats.
The latter three are really related to the device+port, not the device on it's own.

Thus we store just the port for a device in one key and the volume/mute/formats
under a different key that includes both the device and the port.
2011-08-29 09:59:47 +01:00
Maarten Bosmans
55fdb0162c Remove extra ; s where they are not allowed in strict C99 2011-08-25 18:21:49 +05:30
Maarten Bosmans
168254f3bf echo-cancel: Use stream index in debug message
instead of the less useful stream pointer.
2011-08-25 18:19:41 +05:30
Arun Raghavan
7dfb166dba echo-cancel: Move speex preprocessing out of the main module
I initially included put the Speex preprocessing assuming that we'd want
to use the digital gain control and noise suppression from Speex for all
echo cancelling implementations. In practice, we're probably going to
get entire implementations all processing in one package (WebRTC, custom
modules from various vendors, etc.).

This moves out this preprocessing and related knobs into the speex
implementation, which serves to clean out all implementation-specific
details from the module-echo-cancel core.
2011-08-25 18:08:42 +05:30
Arun Raghavan
af6229cbe1 echo-cancel: Use pa_streq instead of strcmp 2011-08-25 17:53:37 +05:30
Arun Raghavan
ba69d66c33 echo-cancel: Add multiple include protection for header 2011-08-25 17:53:37 +05:30
Maarten Bosmans
c5dca7cf2b More spelling fixes 2011-08-25 11:27:47 +01:00
David Henningsson
112c300ae1 Fix spelling sucess -> success
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-24 17:38:16 +05:30
David Henningsson
b746e09448 switch-on-connect: Don't switch to a monitor source
Buglink: http://bugs.launchpad.net/bugs/831675
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-24 17:38:05 +05:30
Colin Guthrie
d6b9e61b90 device-restore: Change the API to include type information (sink vs. source)
This changes the API, but as we have not released yet, this is OK.
2011-08-18 17:33:08 +01:00
Colin Guthrie
9600d0c4b1 dbus: Use pa_device_type_t rather than an internal equivalent 2011-08-18 17:10:51 +01:00
Arun Raghavan
2568542b18 Revert "device-restore: Make bools not be bit fields"
This reverts commit ba163b8b23.

After discussion with Colin, decided that we don't want to do this
piecemeal -- need some discussion on the mailing-list and then we should
do this across the tree in one fell swoop post 1.0.

Conflicts:

	src/modules/module-device-restore.c
2011-08-18 13:34:48 +05:30
Arun Raghavan
3179ed71c5 alsa: Fix bad function name
I've no idea how that slipped by.
2011-08-18 10:23:55 +05:30
Arun Raghavan
814c0371a4 alsa: Open iec958 device with NONAUDIO bit set in passthrough mode
This is required for E-AC3 streams, as well as to let receivers we're
sending non-PCM data (which avoids playing noise if the data is
incorrect for some reason).
2011-08-17 23:08:45 +05:30
Arun Raghavan
dde09c7fac alsa: Don't always suspend/unsuspend on sink-input removal
If the sink was already suspended, this avoids and assert when calling
suspend() again, and prevents an unnecessary unsuspend.
2011-08-17 13:33:50 +05:30
David Henningsson
5c86d76554 alsa-mixer: Add "Line HP Swap" element
The "Line HP Swap" element needs to be set correctly for some Dove
boards to work correctly. Thanks to Daniel T Chen for the patch.

BugLink: http://bugs.launchpad.net/bugs/451635
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-16 11:59:02 +01:00
David Henningsson
838672974e alsa-mixer: Mute IEC958 optical raw for several Audigy models
This switch needs to be off for analog output to work on several
Audigy cards.

Thanks to Daniel T Chen for the patch.

BugLink: http://bugs.launchpad.net/bugs/408370
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-16 11:58:49 +01:00
Arun Raghavan
e25e31fc80 alsa: Set SET_FORMATS flag when appropriate 2011-08-16 11:11:46 +05:30
Arun Raghavan
2c852061ee filter-heuristics: Don't force AEC on all phone streams
Removing the bit that automatically loads module-echo-cancel for phone
streams. Clients need to specifically opt in for this now with
filter.want, until we are reasonably certain this won't break other apps
(Skype for one, possibly others).
2011-08-15 16:08:40 +05:30
Maarten Bosmans
a1ce2426d8 Avoid read from freed memory
The order of freeing the hashmaps is important here, because otherwise a string used as key is freed before the hashmap
is freed.

Valgrind reports this as:
 Invalid read of size 1
    at 0x4107042: pa_idxset_string_hash_func (idxset.c:67)
    by 0x4106026: remove_entry (hashmap.c:93)
    by 0x41061BF: pa_hashmap_free (hashmap.c:110)
    by 0x71DD143: pa_dbusiface_core_free (iface-core.c:2105)
    by 0x71F2169: module_dbus_protocol_LTX_pa__done (module-dbus-protocol.c:595)
    by 0x406DC51: pa_module_free (module.c:162)
    by 0x406E01D: pa_module_unload_all (module.c:210)
    by 0x4068842: core_free (core.c:169)
    by 0x406FD5D: pa_object_unref (object.c:64)
    by 0x805224D: pa_core_unref (core.h:184)
    by 0x805560B: main (main.c:1159)
  Address 0x4d099c0 is 0 bytes inside a block of size 100 free'd
    at 0x4025BF0: free (vg_replace_malloc.c:366)
    by 0x40F128C: pa_xfree (xmalloc.c:131)
    by 0x71E4CEB: pa_dbusiface_device_free (iface-device.c:1293)
    by 0x71DCD7E: free_device_cb (iface-core.c:2062)
    by 0x41061D7: pa_hashmap_free (hashmap.c:113)
    by 0x71DD125: pa_dbusiface_core_free (iface-core.c:2104)
    by 0x71F2169: module_dbus_protocol_LTX_pa__done (module-dbus-protocol.c:595)
    by 0x406DC51: pa_module_free (module.c:162)
    by 0x406E01D: pa_module_unload_all (module.c:210)
    by 0x4068842: core_free (core.c:169)
    by 0x406FD5D: pa_object_unref (object.c:64)
    by 0x805224D: pa_core_unref (core.h:184)
2011-08-15 09:41:56 +01:00
Maarten Bosmans
92219b01b9 Initialise variables
These were detected using clang static analyzer.
2011-08-15 09:41:56 +01:00
Maarten Bosmans
3b76d8065f Plug some memory leaks
These were detected with valgrind.
2011-08-15 09:41:56 +01:00
Maarten Bosmans
1e4298be4d module-tunnel: Fix for new protocol versions
The commit 7ebc5033 resulted in segfaults, because format->plist was not allocated.
The solution is not to allocate pa_format_info on the stack, but to properly use pa_format_info_new().
Also a typo regarding pa_tagstruct_putu8 is corrected.
2011-08-15 09:41:56 +01:00