bluetooth: Use enum to represent form factors

Avoid using strings only to represent form factors in the bluetooth-util
API and instead use a new dedicated enum type: pa_bt_form_factor_t.
bluetooth: Add specific form factor for phones

When a phone is paired, use PA_BT_FORM_FACTOR_PHONE to properly specify
its form factor.
bluetooth: Use form factor to set port name and description

Use the information provided by the form factor to decide which name and
description should be used during port creation.
bluetooth: Never allow microphone output ports

If we find a microphone output port, it is probably something else
than a microphone. Therefore label it "Bluetooth output" instead of
"Microphone".

Same goes for Headphones and Speakers, but in the other direction.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
module: Don't use lt_dlerror(), it's useless
ltdl-bind-now: Log an error in case of failures
Bump the native protocol version

The previous AAC pass-through patch (commit: 53807e4a) introduced
a new encoding format type: PA_ENCODING_MPEG2_AAC_IEC61937,
which is mostly used in pa_format_info, but forgot to increment the
protocol version number. The version needs to be incremented, because
clients need some way of checking whether the server supports the new
encoding.
man: Remove reference to the .verbose CLI command

The .verbose metacommand was removed in commit
73eabece3365c1bb47bf6b009682219c4492fda5 (in 2004!).

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=62270
udev: Add tsched_buffer_size module argument

This makes it easier to configure the buffer size.
ladspa: Use volume sharing.

The previous volume handling could cause ear damage: by default the
ladspa sink volume was 100%, and with flat volumes that would cause
the master sink volume to jump to 100% too.
pulse: Document the operation state behavior on context disconnection.
port to gtk+-3.0

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
alsa: Add configuration for NI Traktor Audio 2

Mostly written by Jaroslav Janukevic.
zsh-completion: Add support for remote servers.

This patch adds support for completion of remote PulseAudio server
arguments it also suppresses error messages when unable to connect to
PulseAudio (only for the completion function).
zsh-completion: Add support for the new pactl commands.

This adds support for set-(sink|source)-default completion and adds
toggle to the supported arguments for the mute command.
zsh-completion: Fix pacat completion.

pacat --format needs = (--format=).
Also pacat should complete files firstly and command line arguments
secondly.
core, alsa: Better drain reporting

Previously, a drain request was acknowledged up to two hw buffers
too late, causing unnecessary delays.

This implements a new chain of events called process_underrun
which triggers exactly when the sink input has finished playing,
so the drain can be acknowledged quicker.

It could later be improved to give better underrun reporting to
clients too.

Tested-by: Dmitri Paduchikh <dpaduchikh@gmail.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
tests: Move ipacl-tests to TESTS_norun

ipacl-test fails if there is no SSH server running on your machine.
Since it is not a PulseAudio error not to have an SSH server running,
this test should not be run as part of the "make check" test suite.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
pacat: Fix mode detection for parecord

Due to the missing "else", parecord was interpreted as parec, causing
the raw flag to be set when it shouldn't have been set.
sink-input: Make sure the process_underrun callback is cleared

Otherwise sink unlinking could cause a segfault.

Reported-by: heftig
Signed-off-by: David Henningsson <david.henningsson@canonical.com>