Call change_cb() only when there's an actual change.

Calling change_cb() whenever anything happens in the ownership of the
bus name caused trouble in PulseAudio in this scenario:

1. PulseAudio is using a device and owns the corresponding service
   name.
2. Another application requests device release.
3. PulseAudio releases the device.
4. Change in the bus name ownership: PulseAudio gives up the
   ownership, and nobody owns the name.
5. reserve-monitor notices that, and notifies PulseAudio.
6. Since reserve-monitor reports the device as "not busy", PulseAudio
   decides to reserve the bus name immediately back to itself and
   opens the device again.

The other application will forcibly take the bus name to itself, as
it should according to the protocol, but the other application may
have trouble opening the device if it tries to do that before
PulseAudio has had time to react to the NameLost signal.

This can be solved by not calling change_cb() if there are no changes
in the device busy status. In this scenario the device is considered
"not busy" while PulseAudio is owning the bus name, so PulseAudio gets
no notification when the ownership changes from PulseAudio to nobody.
Initialize monitor's busy status to false if we own the device.

Bug found by David Henningsson.
i18n: Update Polish translation
device-port: Add a card pointer to the ports.

This way we can directly access the card that owns the port instead of
iterating over all cards.
device-port: Access the cards directly.

Since the ports now know which card owns them we don't need to iterate
through all of them anymore.
device-port: Cleanup of the sink/source subscription events.

Since it's now decided that we deprecated port info for sinks and
sources this isn't needed anymore.
device-port: Fire a hook when the latency offset changes.

This change adds a new hook type: PA_CORE_HOOK_PORT_LATENCY_OFFSET_CHANGED
And it is fired when the port latency offset changes.
card-restore: Only use hooks for the events.

Notification events can be error prone, this patch removes the use of
notification events from card-restore and replaces them with hooks.
jack: Don't fail module-jackdbus-detect loading if the channels argument is not given.

The u->channels <= 0 check failed if the channels argument was not
given at all, making the whole module loading fail. I don't think the
check is necessary at all - negative values are not possible, and if
someone gives 0 as the argument, it's probably ok if we act as if
there was no channels argument at all.
device-port: Return early from pa_device_port_set_latency_offset() if the offset doesn't change.

This avoids sending change notifications when nothing changes.
card: Remove some unnecessary checks.
build-sys: Bump D-Bus dependency version to 1.4.12.

We use DBUS_TIMEOUT_USE_DEFAULT, which was introduced in 1.4.12.
build-sys: Fix an outdated D-Bus version in an error message.
bluetooth: Fix potential assertion failure if MTU changes

The assertion in hsp_process_render() assumes that, if a memory block is
already set by the time the function is reached, its size matches
write_block_size.

This can however fail if a transport has been released and acquired
back, in the unlikely case where the MTU has changed in the meantime,
assuming the memory block wasn't released.
bluetooth: Fix sending D-Bus reply before internal callback

Make sure the reply to SetConfiguration() is sent before the internal
hook is fired. This is important because the hook could have side
effects including D-Bus interfactions (i.e. transport Acquire() being
called during module startup).
ladspa: Fix a couple of minor memory leaks.
pactl: Add the ability to toggle mute state.

This patch adds the ability to toggle mute for sink/sources and
sink-inputs and source outputs.

All mute commands now accept 1|0|toggle as an argument.
bluetooth: Detect BlueZ 5

Check the existence of ObjectManager to detect the version of the
running daemon. If the interface exists, it should be BlueZ 5.
bluetooth: Parse the tree returned by ObjectManager

Parse the result of ObjectManager.GetManagedObjects(), which includes
all objects registered, their interfaces and the corresponding
properties per interface.
bluetooth: Support ObjectManager interface add/remove

Install matches for signals ObjectManager.InterfacesAdded and
ObjectManager.InterfacesRemoved, and process the devices that are
registered and unregistered dynamically.