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.
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.
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.
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>
memblock: Fix typos.
alsa-mixer: Implement a new path option: "mute-during-activation".
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.
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.]
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.
Merge remote-tracking branch 'upstream/master'
alsa-mixer: Add "Headphone Mic" support for 3-pin ASUS netbooks

Some ASUS netbooks, such as the 1015 CX, have only one 3.5 mm jack,
but it can be used either as a headphone or as a mic (but not both
simultaneously).

This patch adds support for the "Headphone Mic" path that is used
on these devices, so that we can use the jack as an external mic, and
doing so without muting the speaker.

BugLink: https://bugs.launchpad.net/bugs/1018262
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
alsa: Integrate UCM basic functions

UCM basic functions will provide another way to handle the alsa mixer
and controls. That means alsa card module will make use of alsa ucm
configurations provided by various audio systems instead of mixer and
paths configurations provided by PA. PA profiles come from UCM verb, PA
sinks/sources and ports come from UCM devices.

In case the proper UCM configurations are found, ucm branches are
activated, or we will still fall through to the original way.

Signed-off-by: Feng Wei <wei.feng@freescale.com>
alsa: Add UCM jack detection

Jack in UCM is decided by UCM device name, although in fact
not all UCM devices have "jacks". Because port is also mapped
to UCM device, we can always find target port when some jack
event happens.

Signed-off-by: Feng Wei <wei.feng@freescale.com>
alsa: Allow channel count probe on open by mapping

This allows opening a PCM given a mapping to work even if we don't have
a channel count for the device up-front.
alsa: Add a proplist to mappings

The proplist isn't used by the conventional alsa-mixer code path, but
can be used by UCM to transfer properties from UCM data to the
sinks/sources corresponding to a mapping. These properties could be used
later in policy, etc.

The specific use for which I'm writing this now is for UCM modifiers
that have their own PlaybackPCM/CapturePCM field. These will be
translated to a separate sink/source corresponding to the modifier by
adding an additional mapping per sink/source. These mappings' proplist
will be populated with the name of the modifier and corresponding
"device.intended_role" property. The latter will be used in the usual
routing-by-role way, and the former will be used during sink/source
activation and deactivation to know what UCM modifier is to be enabled
or disabled.
alsa: Add separate sinks/sources for UCM modifiers if needed

Modifiers may have their own PlaybackPCM/CapturePCM and for these, we
create separate sinks/sources. These are marked with the
device.intended_roles property to let role-based routing take care if
streams are tagged appropriately.
pacmd: Display inputs and outputs PASSTHROUGH flag
build: Fix static linking

fixes bug #52038:

gcc -static  x.c `PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pkg-config --static
--libs libpulse-simple`

/usr/bin/ld: error: cannot find -lpulsecommon-2.98
pulse/simple.c:373: error: undefined reference to 'pa_log_level_meta'
pulse/simple.c:374: error: undefined reference to 'pa_log_level_meta'

Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
bluetooth: add a parenthesis around pa_streq()

I know that pa_streq() is defined with an extra parenthesis, but everytime I
look at it, it makes me nervous. :D

So it's better to add the parenthesis here.
man: document option `set-log-target`