summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-09-27build-sys: Switch to the tar-ustar format (as per a lot of GNOME stuff for ↵Colin Guthrie1-1/+1
3.2) and distribute .xz files. We will drop .gz support after 1.0
2011-09-25Fix crash in threaded message queuesDavid Henningsson1-1/+1
Once in a million or so, this typo causes a crash when two threads simultaneously try to call "pa_asynqmsgq_write_poll". BugLink: http://bugs.launchpad.net/bugs/853560 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-22dbus: Don't crash if the module does not loadDavid Henningsson1-3/+5
If module-dbus-protocol fails to start, pa__done is still called, which falsified the assumption that u->connections was always set. BugLink: http://bugs.launchpad.net/bugs/855729 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-21sink,source: Handle missing in the shared volume caseArun Raghavan6-30/+72
This makes sure that when we're traversing the device chain for sources and sinks with shared volume, we handle the case that a sink-input or source-output of one of these might be unlinked (while unloading a module, for example).
2011-09-15build-sys: bump sonamev0.99.4Colin Guthrie1-1/+1
2011-09-15conf: Make sure module-dbus-protocol is loaded after ↵David Henningsson2-11/+20
module-default-device-restore module-dbus-protocol gets the default sink, which sets the default sink if not already set. This is turn makes module-default-device-restore do nothing. To solve the problem, make sure module-default-device-restore is loaded before module-dbus-protocol and not the other way around. BugLink: http://bugs.launchpad.net/bugs/843780 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-14sink,source: Avoid crash by not updating volume on shutdownDavid Henningsson4-0/+14
Sometimes the ALSA mixer can be modified during a point at shutdown which causes a race condition trying to update the volume of an unlinked sink. Includes typo fix by our Chief Typo Spotter, Colin, and a clarifying comment by me. BugLink: http://bugs.launchpad.net/bugs/841968 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-14echo-cancel: Use volume sharing by defaultArun Raghavan2-11/+24
Uses the shared volume infrastructure by default with an option to fallback on the old pretend-volume-sharing-that-kind-of-works if someone wants it that way. Users who keep left != right (or any sort of unbalanced channel volumes) will likely want to disable shared volumes since it will cause their master sink/source volume to be balanced. This really isn't a very pleasant scenario since users would need to manually set up echo cancellation in their config for this (until we have a way to store module configuration). That said, the majority case benefits from the volume sharing, so let's not wait for the configuration infrastructure to be ready to use this.
2011-09-14equalizer: Use volume sharing by defaultArun Raghavan2-6/+17
Uses the shared volume infrastructure by default with an option to fallback on the old pretend-volume-sharing-that-kind-of-works if someone wants it that way.
2011-09-14virtual: Make volume sharing on by defaultArun Raghavan2-2/+2
People who use this code (i.e. mostly filters) would presumably want volume sharing on by default.
2011-09-14volume: Handle varying channel count for shared volumesArun Raghavan2-0/+6
This handles the case where a virtual sink/source and it's master have different channel counts. The solution is not ideal because if the former has fewer channels and the master has channel volumes that are not all at the same level, it will lose this information and have all channels at the same level. This is not just a theoretical problem, since module-echo-cancel prefers a mono virtual source/sink and will usually be sitting on top of a stereo ALSA source/sink. That said, I don't really see a good solution to this problem, so the idea is to make volume sharing optional (on by default) in module-echo-cancel, so that the few people who care can then disable it if they so desire.
2011-09-14def: Hide server-side sink/source flagsArun Raghavan3-22/+30
This makes sure that sink/source flags that are used on the server side only are not leaked to clients.
2011-09-14stream: Relax assert for extended APIArun Raghavan1-1/+1
For some reason this assert wasn't triggered earlier -- we shouldn't be looking at the stream sample_spec if the formats API is used.
2011-09-14doc: Add info about running pulseaudio from the build dirAntonio Ospite1-0/+9
2011-09-14doc: Update README with fresh links.Colin Guthrie1-6/+6
2011-09-14raop: Don't crash if fd is not open when trying to close itDavid Henningsson1-4/+6
BugLink: http://bugs.launchpad.net/bugs/845286 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-09-13volume: Rename 'sync volume' to 'deferred volume'.Colin Guthrie20-141/+143
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-09build-sys: Oops forgot to add the Kinect profile to the build system.Colin Guthrie1-1/+2
2011-09-09raop: Properly deal with the name coming from the device.Colin Guthrie1-3/+5
We need to properly quote our proplist arguments passed to the module.
2011-09-09modargs: Ensure modargs can be accessed in their raw form.Colin Guthrie2-36/+66
When dealing with proplists passed as modargs, we need the unescaped form in order to properly deal with quotes (ticks + double quotes). As the previous code always called pa_unescape() before adding it into the modarg hashmap, this was impossible. This modification simply stores two proplists. If the unescaped value is different from the raw value, we also keep the raw form. When parsing proplist arguments, we use this raw form and do the unescaping ourselves when processing it. This changes the current behaviour which required you to double escape proplists arguments. This double escape mechanism did allow you to mix and match what types of quotes you used to delimit the individial proplist values, but it made the actual data much harder to pass in. This approach has the drawback that you cannot mix and match the quotes you use, but this is a very minor issue and IMO pales in comparison to the general clarity gained. See the discussion on the mailing list for more background: http://lists.freedesktop.org/archives/pulseaudio-discuss/2011-September/011220.html
2011-09-09alsa-mixer: Add support for the Microsoft Kinect Sensor deviceAntonio Ospite2-0/+40
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-09module-suspend-on-idle: Move vacuum code to coreMaarten Bosmans2-46/+24
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-07alsa: Tidy up argument descriptionsColin Guthrie5-6/+6
2011-09-07bluetooth: Bump DBus version to 1.3.0 and drop conditional code.Colin Guthrie2-20/+2
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-07loopback: New modargs: sink_input_properties and source_output_properties.Tanu Kaskinen1-22/+24
The new modargs replace sink_input_name, sink_input_role, source_output_name and source_output_role.
2011-09-05raop: Use the port supplied by avahi when connecting to RAOP devices.Colin Guthrie3-12/+20
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-05device-restore: Fix use-after-free error.Colin Guthrie1-2/+5
2011-09-05formats: Export more functions needed for a clean build.Colin Guthrie1-0/+4
All of these functions are not actually defined in format.h (they are defined in internal.h) and thus should really be included only in libpulsecommon and implemented in a separate source file. However if that approach was taken, and these functions were included in libpulsecommon, then they would have a link time dependancy on libpulse (as these four functions use other pa_format_info_* functions). As the opposite is already true (libpulse depends on libpulsecommon), this is not possible as it creates a circular dependancy. Thus the only option is to just to include these four functions in the map-file, but not actually export any public headers for them. Of course users could use this implementation by defining them in their own headers, but the only practical problem with this approach is naming conflicts which is unlikely to happen. fdo#40616
2011-09-05formats: The format code should be in libpulse, not libpulsecommonColin Guthrie2-5/+6
Without this change any applications calling e.g. pa_format_info_new() and friends will be explicitly linked against libpulsecommon-$MAJORMINOR.so which is something we specifically avoid as it may contain ABI/API unstable functions. Also ensure we export pa_format_info_from_string() for external use. fdo#40616
2011-09-04stream-restore: Add proper data validity checks to the legacy database entry ↵Colin Guthrie1-0/+20
read.
2011-09-04stream-restore: Add in some variable sets that were missing from 9ffa93.Colin Guthrie1-0/+8
This broke the conversion of the stream-restore database from previous versions.
2011-09-03device-restore: Simplify the migration of data to per-port keys.Colin Guthrie1-65/+65
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-03Make gcc --std=c99 happyMaarten Bosmans5-1/+14
We're now more or less C99 compliant
2011-09-03Squash the last gcc warningsMaarten Bosmans2-2/+3
2011-09-03module-equalizer-sink: Use correct limit in loopMaarten Bosmans1-1/+1
2011-09-03bluetooth/sbc: Use __asm__ keywordMaarten Bosmans4-25/+25
2011-09-03module-equalizer-sink: Use = in initialising variablesMaarten Bosmans1-13/+13
This makes the compiler in C99 mode happy
2011-09-03module-equalizer-sink: Use %z for printf of size_t variablesMaarten Bosmans1-5/+5
2011-09-03alsa-mixer: Set "Front" control to 0 dB on headphone pathDavid Henningsson2-4/+6
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-08-31module-switch-on-connect: Don't switch unlinked sink input and source outputsDavid Henningsson1-2/+2
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-31vala: Add has_type_id=false to all enums, structs and classesArun Raghavan1-51/+51
Since none of our types is derived from GType, explicitly signal this. The default value for this attribute changed at some point, breaking our bindings.
2011-08-29build-sys: bump sonamev0.99.3Colin Guthrie1-1/+1
2011-08-29equalizer: Comment out unused functionArun Raghavan1-0/+2
Gets rid of a compiler warning
2011-08-29echo-cancel: Get rid of annoying compiler warningsArun Raghavan1-3/+4
2011-08-29echo-cancel: Don't allow streams to attach while unloadingArun Raghavan1-0/+14
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-29echo-cancel: Make save_aec modarg a bool instead of an intArun Raghavan1-3/+3
2011-08-29pacat: make pacat respond to cork/uncork eventsLu Guanqun1-0/+20
Pacat remembers the number of cork requests, and then cork/uncork the stream accordingly. With this change, it makes below test script work correctly: pacat -p --property=media.role="music" <long-sound> & sleep 2 pacat -p --property=media.role="phone" <short-sound> wait Initial idea by Lu Guanqun, but modified by Colin Guthrie (so blame me if it's broken)
2011-08-29Set better priorities on input pathsDavid Henningsson7-7/+7
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-29passthrough: Fix setting volume to unamplified againArun Raghavan2-2/+2
Thanks to Tanu for pointing out the (possibly pathological?) case that base_volume might be >0dB.
2011-08-29device-restore: Restore volumes on port change.Colin Guthrie1-0/+89
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.