Sjors Gielen [Sun, 8 Jul 2012 21:24:18 +0000 (23:24 +0200)]
osx: Add a single "On" profile to coreaudio devices. Fixes crash on OS X.
Since commit
12af302a last month, cards always have at least one
profile, so there is also always an active_profile (this makes the code
more simple). However, module-coreaudio-device did not create a profile
yet, causing a crash of PulseAudio when used on OS X. This patch fixes
this crash, by adding a single "On" profile. I've also added a TODO for
adding an "Off" profile which removes all sinks and sources -- I can
work on resolving this TODO later on.
Jarkko Nikula [Thu, 22 Mar 2012 09:29:12 +0000 (11:29 +0200)]
alsa: Merge pa_alsa_setting_select with pa_alsa_path_select
As these functions are called together and are related, we might merge
them and call setting_select from pa_alsa_path_select by passing
optional pa_alsa_setting argument.
Make also the setting_select static as it is not called outside of
alsa-mixer.c after this change.
[Additional note from Tanu Kaskinen: this change improves the
mute-during-activation feature, because now the mixer changes related
to selecting the setting happen while the hw is muted.]
Jarkko Nikula [Thu, 22 Mar 2012 09:29:11 +0000 (11:29 +0200)]
alsa: move pa_alsa_setting_select close to pa_alsa_path_select
Move pa_alsa_setting_select call just after the pa_alsa_path_select in
[sink | source]_set_port_cb functions as there is no dependency to volume
calculations that are done between these two calls. Idea here is to make
possible to merge these two functions since they are called together from
other places too.
Tanu Kaskinen [Thu, 22 Mar 2012 09:29:10 +0000 (11:29 +0200)]
alsa-mixer: Implement a new path option: "mute-during-activation".
Peter Meerwald [Wed, 22 Feb 2012 12:07:17 +0000 (13:07 +0100)]
memblock: Fix typos.
Tanu Kaskinen [Sat, 30 Jun 2012 10:00:25 +0000 (13:00 +0300)]
card-restore: Handle reading NULL profile name from the database.
It's assumed in a couple of places that entry_read()
initializes entry->profile to a non-NULL string. This patch
makes those assumptions hold.
Tested-by: Mikel Astiz <mikel.astiz.oss@gmail.com>
poljar (Damir Jelić) [Wed, 27 Jun 2012 20:55:35 +0000 (22:55 +0200)]
card-restore: Add the ability to save and restore the latency offset.
module-card-restore now saves the latency offsets.
This change includes a entry version bump.
The entry now consists of a port count and a port name and offset for
every port that belongs to the relevant card.
Frédéric Dalleau [Wed, 4 Jul 2012 14:48:27 +0000 (16:48 +0200)]
bluetooth: module-bluetooth-policy initial commit
This is a basic module for enabling loopback as soon as a new bluetooth A2DP
source is created. The module is given a source and a media role using command
line. This allows module-intended-roles or module-device-manager to choose a
target sink for the stream.
Frédéric Dalleau [Wed, 20 Jun 2012 15:33:35 +0000 (17:33 +0200)]
loopback: Enable routing on loopback streams
At module-loopback load, if no sink is given, the default sink is used. If the
stream has a media.role property, the property cannot be used because a the
source or sink is forced to default. Both module-intended-roles and
module-device-manager are affected. The same apply to sources.
With this patch, if sink or source is missing, routing modules can be used.
Arun Raghavan [Tue, 3 Jul 2012 12:41:54 +0000 (18:11 +0530)]
role-cork: Fix another minor leak
Credit to David for finding this one.
Arun Raghavan [Tue, 3 Jul 2012 12:34:48 +0000 (18:04 +0530)]
Revert "Revert "role-cork: Fix a minor leak""
This reverts commit
a2c4bf22e0813d529f153c01d7421345a792f3bc.
As Tanu points out, I'm stupid. The pa_xstrdup(n) was unnecessary
because pa_split() allocates a new string for us.
Arun Raghavan [Tue, 3 Jul 2012 12:22:36 +0000 (17:52 +0530)]
role-cork: Fix incorrect check at deinitialisation time
Arun Raghavan [Tue, 3 Jul 2012 12:30:36 +0000 (18:00 +0530)]
Revert "role-cork: Fix a minor leak"
This reverts commit
51c8d5a477d36f0646243a092994036b3781e9c1.
As David points out, this was incorrect.
David Henningsson [Tue, 3 Jul 2012 08:31:30 +0000 (10:31 +0200)]
alsa-mixer: Add "Front Headphone Jack" (fixup)
I forgot half of the front headphone patch, i e, to hide the
speaker output when the front headphone is connected. Thanks to
Shih-Yuan Lee for noticing.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Arun Raghavan [Tue, 3 Jul 2012 03:19:26 +0000 (08:49 +0530)]
core-util: Fix permissions handling while creating directories
This makes updating of permissions on existing directories optional with
pa_make_secure_dir() and pa_make_secure_parent_dir(). This makes sure
that the recursive directory creation doesn't end up modifying existing
directories, and also fixes a problem where creating an auth cookie
(specifically ~/.esd_auth) would end up modifying permissions on ~.
Thanks to Frédéric Danis for reporting this.
Deng Zhengrong [Thu, 28 Jun 2012 07:27:57 +0000 (15:27 +0800)]
add a new log target that enables to create new log file if it exists
David Henningsson [Mon, 2 Jul 2012 10:17:30 +0000 (12:17 +0200)]
alsa-mixer: Document "state.plugged" and "state.unplugged"
Put explanation of state.plugged and state.unplugged in
analog-output.conf.common.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Mon, 2 Jul 2012 10:09:06 +0000 (12:09 +0200)]
alsa-mixer: Add "Front Headphone" jack
Many desktops have headphone on the front and line outs on the back.
Sometimes this means that the headphone is labelled "Front Headphone Jack",
but the volume controls are only "Headphone Playback Volume", i e,
without the "Front" prefix.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 28 Jun 2012 13:40:17 +0000 (15:40 +0200)]
alsa-mixer: Always turn "Inverted Internal Mic" off
Some devices have inverted right channel, so when you add left and right,
the result is silence, or very faint sound. In recent kernels (3.5,
perhaps also 3.4) these are starting to be marked with a special
"Inverted Internal Mic" capture switch.
While we might want to add some reverse summing mechanism in the
future, for now, we just turn the thing off to avoid the problem of
recording silence.
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 28 Jun 2012 13:35:38 +0000 (15:35 +0200)]
alsa-mixer: Add Phantom Jack support
For kernel 3.6, "phantom jack" kctls have been added. They serve as
a marker that a particular port exist. They were made so we can detect
that there actually are speakers and internal mic on a laptop, even if
there are no other indications (volume controls etc).
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
David Henningsson [Thu, 3 May 2012 13:39:18 +0000 (15:39 +0200)]
alsa-mixer: Add special profiles for some laptops missing speaker and/or internal mic
Several laptops have speaker ports, and/or internal mic ports, but we have
no way of detecting that. So we make the port(s) always show up for these
devices.
BugLink: https://bugs.launchpad.net/bugs/946232
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
poljar (Damir Jelić) [Thu, 28 Jun 2012 13:02:27 +0000 (15:02 +0200)]
man: Add latency offset documentation to the cli syntax.
The new latency offset command is now documented in the
pulse-cli-syntax man page.
poljar (Damir Jelic) [Thu, 28 Jun 2012 13:00:46 +0000 (15:00 +0200)]
pactl: Add set-latency-offset command.
This introduces a new command to allow setting the latency offset.
Also the card list command now shows the latency offset on the ports.
poljar (Damir Jelic) [Thu, 28 Jun 2012 13:00:45 +0000 (15:00 +0200)]
introspect: Add functions to handle the latency offset.
This includes updating the native protocol and the client API.
A new command was added to allow setting the latency offset.
Also the card list command now shows the latency offset if there
are ports available.
Update protocol to 27.
Paul Menzel [Sat, 19 May 2012 08:03:01 +0000 (10:03 +0200)]
Fix spelling of separated: s, sepera, separa, g
The used command for fixing the script is the following.
$ git grep sepera | cut --delimiter=: --fields=1 | xargs sed -i s,sepera,separa,g
This patch is motivated by a patch in Debian from Martin-Éric Racine [1].
[1] http://anonscm.debian.org/gitweb/?p=pkg-pulseaudio/pulseaudio.git;a=commitdiff;h=
70e7261a615141908c0cf366fd49e0fc0f550fbf
poljar (Damir Jelić) [Thu, 28 Jun 2012 11:17:21 +0000 (13:17 +0200)]
device-port: Send a subscription event when the offset changes.
When the offset changes a subscription event should be sent to the
relevant card.
poljar (Damir Jelić) [Fri, 29 Jun 2012 21:19:52 +0000 (23:19 +0200)]
conf-parser: Initialize the state to zero immediately.
Set the state variable immediately to zero so if we fail to open the
configuration file we don't check an uninitialized pointer and free an
nonexistent proplist.
Tanu Kaskinen [Fri, 8 Jun 2012 18:49:12 +0000 (21:49 +0300)]
Assume that the ports hashmap of cards is always non-NULL.
The hashmap is created in pa_card_new_data_init().
Tanu Kaskinen [Fri, 8 Jun 2012 18:49:11 +0000 (21:49 +0300)]
Assume that the profiles hashmap of ports is always non-NULL.
It's a valid assumption nowadays, because the hashmap is
created in pa_device_port_new().
Tanu Kaskinen [Fri, 8 Jun 2012 18:49:10 +0000 (21:49 +0300)]
card: Ensure that there's always at least one profile.
In practice there is always at least one profile, and I
don't think there will ever be cards without profiles.
Therefore, I added assertions to pa_card_new() stating that
the card new data must always contain at least one profile.
Now a lot of code can be simplified, because it's guaranteed
that the profiles hashmap and the active_profile field are
always non-NULL.
Tanu Kaskinen [Fri, 8 Jun 2012 18:49:09 +0000 (21:49 +0300)]
sink, source: Always create a hashmap for ports.
Having the hashmap sometimes NULL requires a lot of checking
here and there, so ensuring that the hashmap is always
non-NULL simplifies the code.
Tanu Kaskinen [Fri, 8 Jun 2012 16:36:45 +0000 (19:36 +0300)]
card: Don't crash if someone gives NULL name to pa_card_set_profile().
In my opinion, pa_card_set_profile() should assert that name
is not NULL, and it would be the job of the client interface
to filter out NULLs from the client input, but this is done
this way also when setting sink and source ports, so for
consistency I'll do this this way for now.
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:30 +0000 (14:48 +0300)]
pactl: Print card port properties with the "list" command.
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:29 +0000 (14:48 +0300)]
native: Send the actual port proplists with card info.
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:28 +0000 (14:48 +0300)]
alsa-mixer: Add support for defining port property lists in the path configuration files.
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:27 +0000 (14:48 +0300)]
conf-parser: Add support for parsing property lists.
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:26 +0000 (14:48 +0300)]
conf-parser: Pass parser state in a struct also for parse callbacks.
As suggested by Maarten Bosmans:
http://article.gmane.org/gmane.comp.audio.pulseaudio.general/12079
Tanu Kaskinen [Fri, 13 Apr 2012 11:48:25 +0000 (14:48 +0300)]
conf-parser: Pass parser state in a struct instead of function parameters.
I don't like long function parameter lists, and I plan to
add some more state data to the parser which would make the
parameter lists even longer without this refactoring.
Tanu Kaskinen [Fri, 13 Apr 2012 11:40:32 +0000 (14:40 +0300)]
tagstruct: Allow NULL proplist with pa_tagstruct_get_proplist().
module-tunnel doesn't care about the proplist contents, so
pa_tagstruct_get_proplist() is only used for removing the
data from the tagstruct buffer. In that case it's more
convenient to just pass NULL as the proplist argument.
Tanu Kaskinen [Fri, 13 Apr 2012 11:40:31 +0000 (14:40 +0300)]
proplist: Change proplist_name_valid() to be public function pa_proplist_key_valid().
I want to check the validity in pa_tagstruct_get_proplist(),
and I think also client applications might have use for this
function.
Tanu Kaskinen [Fri, 13 Apr 2012 11:32:12 +0000 (14:32 +0300)]
pulse: Use more intuitive indexing with port infos in introspect.c.
Tanu Kaskinen [Fri, 13 Apr 2012 11:31:44 +0000 (14:31 +0300)]
Fix a copy-paste error in PROTOCOL.
Arun Raghavan [Thu, 28 Jun 2012 14:01:37 +0000 (19:31 +0530)]
glib: Stop using g_source_get_current_time()
This function is now marked as deprecated. It is functionally identical
to g_get_current_time(), so we use that instead. The GLib API docs
suggest g_source_get_time(), but that does not provide wallclock time
(which is what the pa_time_event API expects), so we don't use it.
Tanu Kaskinen [Thu, 28 Jun 2012 13:34:56 +0000 (16:34 +0300)]
sink, source: Fix setting the latency offset when the sink/source is unlinked.
poljar (Damir Jelić) [Wed, 27 Jun 2012 15:38:42 +0000 (17:38 +0200)]
device-port: Change the latency offset type to a signed int.
The latency offset type should be signed (int64_t) so we can also add
a negative latency offset.
This also includes changing the type of the sink/source
offsets and updating pacmd so it handles negative numbers.
Ismo Puustinen [Fri, 15 Jun 2012 14:35:59 +0000 (17:35 +0300)]
ladspa: Added a python script for testing.
The python script uses the ladspa D-Bus interface for IPC testing.
Ismo Puustinen [Fri, 15 Jun 2012 14:35:58 +0000 (17:35 +0300)]
ladspa: D-Bus interface for setting algorithm parameters on-the-fly.
A new external D-Bus interface is registered and LADSPA algorithm
control parameters are exposed as a D-Bus property with setter and
getter support.
Deng Zhengrong [Sat, 23 Jun 2012 11:16:26 +0000 (19:16 +0800)]
xen: add the HAVE_CONFIG_H macro guard
Deng Zhengrong [Sat, 23 Jun 2012 11:15:14 +0000 (19:15 +0800)]
pacmd: add help info for 'set-log-target'
Deng Zhengrong [Sat, 23 Jun 2012 11:14:12 +0000 (19:14 +0800)]
build: Add gcov coverage support
Arun Raghavan [Thu, 28 Jun 2012 06:49:27 +0000 (12:19 +0530)]
pactl: Print sink-input/source-output corked status
Sending this out for review before committing since it changes pactl output.
poljar [Fri, 22 Jun 2012 18:55:55 +0000 (20:55 +0200)]
pacmd: Add functions to handle the latency offset
pacmd was extended so it can handle the new latency offset.
A new function was added so we can set the latency also the list
commands were extended to print the latency offset on the ports.
poljar [Fri, 22 Jun 2012 18:55:54 +0000 (20:55 +0200)]
sink, source: Add a latency offset which is inherited from the port
A latency offset variable was added to the sink/source struct.
Also a function was introduced to update the latency offset of the
sink/source and a new message type was introduced so we can send the latency
offset to the IO thread.
The latency offset is automatically populated with the latency from the
currently active port.
poljar [Fri, 22 Jun 2012 18:55:53 +0000 (20:55 +0200)]
device-port: Add a latency variable to the port struct
A latency offset variable was added to the port struct and a function to
set the latency offset.
The latency offset does nothing for now, but it will be later added to
the sink/source latency.
Mihai Moldovan [Tue, 29 May 2012 07:21:54 +0000 (09:21 +0200)]
core-util: use the generic PATH_MAX variant of pa_realpath on Mac OS X
realpath() on OS X behaves GNUish and accepts NULL for resolved_name
only on 10.6 and higher. Older versions will crash, if resolved_name is
NULL.
All versions define PATH_MAX, though. Better play it safe and use the
generic PATH_MAX version of pa_realpath on Mac OS X systems.
Signed-off-by: Mihai Moldovan <ionic@ionic.de>
Frédéric Danis [Tue, 12 Jun 2012 13:49:50 +0000 (15:49 +0200)]
bluetooth: Fix bluetooth.nrec property not updated
PropertyChanged signal of org.BlueZ.MediaTransport is processed in
pa_bluetooth_transport_parse_property() which updates t->nrec.
This is called by :
- First by filter_cb() of bluetooth-util.c
- Then by filter_cb() of module-bluetooth-device.c which retrieve value
of t->nrec before calling parse function, then it checks if t->nrec
has changed before updating bluetooth.nrec property.
As t->nrec has alreday been changed during first process, property
update is never performed.
This patch creates a new hook in pa_bluetooth_transport called
PA_BLUETOOTH_TRANSPORT_HOOK_NREC_CHANGED.
The hook is fired by bluetooth-util.c when the transport's NREC
property changes.
module-bluetooth-device.c won't listen the PropertyChanged signal of
MediaTransport anymore. Instead, it will use the hook in
pa_bluetooth_transport to get a notification when the NREC property
changes, and update the sink or source proplist accordingly.
const qualifier for returned pointer of
pa_bluetooth_discovery_get_transport() is removed.
Arun Raghavan [Mon, 11 Jun 2012 07:45:00 +0000 (13:15 +0530)]
auth: Create cookie directory if it doesn't exist
Makes sure the cookie directory exists before trying to create the
cookie. This might be the case on freshly installed headless systems.
Arun Raghavan [Mon, 11 Jun 2012 07:42:50 +0000 (13:12 +0530)]
core-util: Make pa_make_secure_dir() act like mkdir -p
This makes pa_make_secure_dir() create any missing parent directories in
the given path as well. This is useful, for example, on a pristine
system with a clean $HOME that needs ~/.config/pulse/ to be created when
~/.config does not exist.
Arun Raghavan [Wed, 13 Jun 2012 11:01:59 +0000 (16:31 +0530)]
core-util: Add a pa_split_in_place() string utility function
For specialised uses of pa_split() such as finding substrings for
comparison, this avoids the need to repeatedly allocate and deallocate
memory.
Arun Raghavan [Wed, 13 Jun 2012 10:59:35 +0000 (16:29 +0530)]
role-cork: Fix a minor leak
Tanu Kaskinen [Thu, 5 Apr 2012 13:24:48 +0000 (16:24 +0300)]
native: Don't save device, volume or mute of new streams.
Specifying the volume when creating a new stream is not an
equivalent act as setting the volume with a volume control
application. When creating a new stream, stream-restore
shouldn't save the volume, but when changing the volume,
then saving it is ok. For example, when I say
"paplay --volume=10000 somefile.wav", I mean that I want the
new stream to have volume 10000. I don't mean that also
future paplay invocations (without the --volume option)
should have that same volume.
This patch effectively reverts
546bcf3f2f9711f0d08c21c3b775994844e7e2a2.
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:16 +0000 (01:28 +0530)]
daemon: use pa_streq instead of strcmp
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:15 +0000 (01:28 +0530)]
tests: use pa_streq instead of strcmp
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:14 +0000 (01:28 +0530)]
pulsecore: Use pa_streq instead of strcmp.
Arti Trivedi Bora [Tue, 5 Jun 2012 19:58:13 +0000 (01:28 +0530)]
modules: Use pa_streq instead of strcmp.
Tanu Kaskinen [Fri, 8 Jun 2012 16:00:14 +0000 (19:00 +0300)]
device-port: Remove an out-of-date comment.
poljar [Mon, 4 Jun 2012 17:35:41 +0000 (19:35 +0200)]
bluetooth: Add ports to the bluetooth sink/source
The bluetooth device should have ports so we can attach a latency to
the ports.
Every profile (a2dp, hsp...) has his own set of ports depending on the
number of sinks and sources it provides.
Tanu Kaskinen [Mon, 4 Jun 2012 14:44:20 +0000 (17:44 +0300)]
device-port: Create the profiles hashmap at initialization.
I doesn't make sense to require all callers of
pa_device_port_new() to create the hashmap themselves. There
are and there will be no cases where a port without any
profiles would be desired.
Deng Zhengrong [Wed, 6 Jun 2012 20:16:51 +0000 (04:16 +0800)]
x11: fix the wrong parameter sequence in pax11publish
poljar [Wed, 30 May 2012 12:27:26 +0000 (14:27 +0200)]
pacmd: Add unloading modules by name.
pacmd should allow unloading modules by name.
The command_unload() function was expanded to handle names while
unloading modules.
If there are multiple modules with the same name all
of them will be unloaded.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=48289
poljar [Wed, 30 May 2012 12:27:25 +0000 (14:27 +0200)]
pactl: Add unloading modules by name.
pactl should allow unloading modules by name.
If there are multiple modules with the same name all
of them will be unloaded.
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=48289
Eero Nurkkala [Thu, 31 May 2012 07:44:23 +0000 (10:44 +0300)]
alsa-source: add missing header 'signal.h'
Compilation with -DDEBUG_TIMING fails due to a missing header:
modules/alsa/alsa-source.c: In function 'check_left_to_record':
modules/alsa/alsa-source.c:426:9: warning: implicit declaration of function 'raise' [-Wimplicit-function-declaration]
modules/alsa/alsa-source.c:426:9: error: 'SIGTRAP' undeclared (first use in this function)
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
Eero Nurkkala [Thu, 31 May 2012 07:44:22 +0000 (10:44 +0300)]
alsa-sink: add missing header 'signal.h'
Compilation with -DDEBUG_TIMING fails due to a missing header:
modules/alsa/alsa-sink.c: In function 'check_left_to_play':
modules/alsa/alsa-sink.c:453:9: warning: implicit declaration of function 'raise' [-Wimplicit-function-declaration]
modules/alsa/alsa-sink.c:453:9: error: 'SIGTRAP' undeclared (first use in this function)
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
Harsh Prateek Bora [Tue, 29 May 2012 12:28:12 +0000 (17:58 +0530)]
pulsecore: Use PA_IDXSET_FOREACH wherever applicable.
Signed-off-by: Harsh Prateek Bora <harsh.bora@linaro.org>
Harsh Prateek Bora [Tue, 29 May 2012 12:28:11 +0000 (17:58 +0530)]
modules: Use PA_IDXSET_FOREACH wherever applicable.
Signed-off-by: Harsh Prateek Bora <harsh.bora@linaro.org>
Jarkko Suontausta [Tue, 22 May 2012 12:58:33 +0000 (15:58 +0300)]
bluetooth: Release transport when the pa_rtpoll_run loop finishes.
Based on a patch by Marko Ollonen.
Marc-Antoine Perennou [Thu, 17 May 2012 20:50:22 +0000 (22:50 +0200)]
udev: Don't use deprecated udev_get_*_path() functions
[These symbols were removed in libudev.so.1.0.0. Replace them with
hardcoded strings. -- heftig]
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Peter Meerwald [Thu, 24 May 2012 15:52:56 +0000 (17:52 +0200)]
pipe: check return value of mkfifo()
Peter Meerwald [Thu, 24 May 2012 15:52:55 +0000 (17:52 +0200)]
pipe: whitespace and log output cleanup
Deng Zhengrong [Fri, 25 May 2012 02:17:51 +0000 (10:17 +0800)]
daemon: use pa_streq instead of plain strcmp
Just noticed that in daemon-conf.c, it uses plain strcmp(),
while in PulseAudio, it should be better to use pa_streq().
Deng Zhengrong [Fri, 25 May 2012 02:16:04 +0000 (10:16 +0800)]
cli: Add set-log-target command for pacmd
David Henningsson [Fri, 18 May 2012 20:29:41 +0000 (22:29 +0200)]
once: Fix race causing pa_once to sometimes run twice
There was a race in the existing code that could cause the pa_once code
to be run twice, see:
http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-April/013354.html
Therefore the existing implementation was rewritten to instead look like
the reference implementation here:
http://www.hpl.hp.com/research/linux/atomic_ops/example.php4
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
poljar [Mon, 21 May 2012 19:42:20 +0000 (21:42 +0200)]
native: Use foreach to iterate trough modules.
The PA_IDXSET_FOREACH is easier to read than the standard for loop.
Also pa_streq() should be used for checking string equality.
Frédéric Danis [Tue, 15 May 2012 13:55:36 +0000 (15:55 +0200)]
bluetooth: Fix crash on disconnection
When a Bluetooth headset is connected only to HFP profile (not connected
to A2DP) and host streams to it, a crash occurs if host disconnects.
When HFP disconnects, audio thread will fail on POLLHUP then generate
a message to set PA profile to Off before ending.
If this message is managed before PA unload bluetooth device module,
all works fine.
But, if this message is managed during module unload, this finish by
re-entrance in release code (stop_thread) and a crash.
This fix prevents to process profile change when module is unloading.
Lennart Poettering [Tue, 15 May 2012 23:06:17 +0000 (01:06 +0200)]
gnome: start PA early in the gnome session
Lennart Poettering [Tue, 15 May 2012 21:59:33 +0000 (23:59 +0200)]
auth: move cookie file to ~/.config/pulse/cookie
In order to follow XDG basedir, read the cookie file from
~/.config/pulse/cookie if possible, but fall back to the old file.
if it doesn't exist.
Lennart Poettering [Tue, 15 May 2012 21:25:00 +0000 (23:25 +0200)]
core-util: when searching for configuration files, honour XDG basedir spec
Lennart Poettering [Tue, 15 May 2012 21:24:09 +0000 (23:24 +0200)]
man: update man pages to only refer to the new place for the configuration files
Lennart Poettering [Tue, 15 May 2012 21:13:28 +0000 (23:13 +0200)]
core-util: move configuration home directory from ~/,pulse to ~/.config/pulse to follow XDG basedir spec
If ~/.pulse/ already exists we stick to it in order not to lose
configuration and so that pulse configuration may still be shared across
the network with different PA versions.
Lennart Poettering [Tue, 15 May 2012 17:06:53 +0000 (19:06 +0200)]
util: hook up pa_get_runtime_dir() with XDG_RUNTIME_DIR
Lennart Poettering [Tue, 15 May 2012 14:24:22 +0000 (16:24 +0200)]
context: get rid of really old runtime dir logic, i.e. break compat with >4y-old PA
Lennart Poettering [Tue, 15 May 2012 14:08:40 +0000 (16:08 +0200)]
rtkit: update drop-in files
Lennart Poettering [Tue, 15 May 2012 14:06:42 +0000 (16:06 +0200)]
build-sys: remove HAL support, it's obsolete since years
Lennart Poettering [Tue, 15 May 2012 12:17:58 +0000 (14:17 +0200)]
build-sys: readd stub makefiles to subdirectories to make building with emacs easier
Lennart Poettering [Tue, 15 May 2012 12:12:38 +0000 (14:12 +0200)]
util: use the return value of gethosid() as fallback, not the address of the function
Yikes!
Lennart Poettering [Tue, 15 May 2012 12:10:34 +0000 (14:10 +0200)]
util: /etc/machine-id should be tried first, the D-Bus only as fallback for legacy systems
Lennart Poettering [Tue, 15 May 2012 12:06:46 +0000 (14:06 +0200)]
proplist: document new meaning of the session ID
Lennart Poettering [Tue, 15 May 2012 12:04:31 +0000 (14:04 +0200)]
util: XDG_SESSION_COOKIE is unsuitable as session ID
XDG_SESSION_COOKIE was supposed to be used for access control to the
session and should not be exposed to other users.
Replace usage of XDG_SESSION_COOKIE by XDG_SESSION_ID which is the right
choice here since it is actually a proper session ID that may be
published.
Arun Raghavan [Mon, 14 May 2012 06:51:45 +0000 (12:21 +0530)]
sink-input,source-output: Avoid unneccessary rate updates
This makes sure we only call sink/source update_rate() if the stream
being woken up has a sample spec that doesn't match the corresponding
device'.
https://bugs.freedesktop.org/show_bug.cgi?id=49875
poljar [Sun, 6 May 2012 14:10:51 +0000 (16:10 +0200)]
pacmd: Added --help and --version descriptions to the man page.
The pacmd man page should show the available options. A simple
description for the --version and --help option was added.