alsa-util: Add functions for accessing mixer elements through mixer class

Instead of using the hctl interface, we can find controls belonging
to other iface types than "mixer". We do this by introducing a new
mixer class "SND_MIXER_ELEM_PULSEAUDIO" and create snd_mixer_elem's
for all PCM and CARD iface types (as Jacks are of the CARD type and
ELD controls are of the PCM type).

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
alsa-mixer/card: Move to use the new mixer interface

Use the new mixer API to get callbacks, instead of using the hctl
API. Using the hctl API caused a memory leak, because alsa-lib itself
used the hctl callbacks, which we were previously overriding.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
alsa: Remove unnecessary hctl handles being passed around

Now that we have switched to using the mixer handle only,
there is no use for sending hctl handles around.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
i18n: Add Slovak translation
bluetooth: Implement org.ofono.HandsfreeAudioAgent.NewConnection()
Merge branch 'master' of git://anongit.freedesktop.org/pulseaudio/pulseaudio
raop: Remove useless param in pa_raop_client_new

The given pa_core alredy contains a pointer to the sample spec. No need for
an argument to pass this information.

Patch by Martin Blanchard <tchaik@gmx.com>
raop: Extract encryption related code into a separate file

That makes the raop_client.c code smaller/cleaner and will simplify
addition of more crypto related stuffs like authentication.
raop: Correct #include guard in raop_crypto.h
raop: Add a MD5 hashing fuction

MD5 hashing will be needed during the authentication process. Base64 and
MD5 code is now in a commun file called raop_util.c. Old Base64 files are
removed but copyright is preserved.
raop: Remove Base64 implementation files
raop: Correct the MD5 hashing helper function

The MD5 digest must be converted to a proper characters hash.
raop: Add BA (Basic) and DA (Digest) HTTP authentication helpers

RAOP authentication is using standard HTTP challenge-response authentication
scheme. This patch adds two helper functions that generate the proper hash
(for both techniques) given a username, a password and session related tokens.
raop: Add the core implementation of RAOP authentication

RAOP authentication (password) is based on BA and DA HTTP authentication
schemes. This patch adds the RSTP client the ability to specify the caller
of server response status. Tracking the '401 Unauthorized' status allow
the RAOP client to respond the server challenge authentication request.
This patch adds the core implementation but does not introduce the
authentication scheme in the RAOP connection process yet.
raop: Feed the Base64 encoder with the correct data size

pa_raop_base64_encode() works with bit-sized, not byte-sized, data length.
raop: Rename files to better match pulseaudio naming rules

Most of pulseaudio source code files seem to be using '-' instead of '_'
as a word separator. This patch simply renames RAOP files accordingly.
raop: Merge TCP and UDP code paths + refactoring

TCP and UDP implementation are following two diffrent code path while code
logic is quite the same. This patch merges both code path into a unique one
and, thus, leads to a big refactoring. Major changes include:
  - moving sink implementation to a separate file (raop-sink.c)
  - move raop-sink.c protocol specific code to raop-client.c
  - modernise RTSP session handling in TCP mode
  - reduce code duplications between TCP and UDP modes
  - introduce authentication support
  - TCP mode does not constantly send silent audio anymore

About authentication: OPTIONS is now issued when the sink is preliminary
loaded. Client authentication appends at that time and credential is kept
for the whole sink lifetime. Later RTSP connection will thus look like this:
ANNOUNCE > 200 OK > SETUP > 200 OK > RECORD > 200 OK (no more OPTIONS). This
behaviour is similar to iTunes one.
raop: Prefer ALAC encoding to raw PCM if supported by server

ALAC encoding is to be prefered simply because ALAC audio packet reverse-
engineering and implementation is in better shape than raw PCM. Sending ALAC
audio does not mean compressing audio and thus linking an external library to
do so. ALAC packets has the ability to carry uncompressed PCM frames, and
that's what is implemented at the time.
raop: Update and standardise source file headers
roap: Rework packet's store memory management

This patch switch the packet-buffer to use core memory pool instead of
manually allocating the room required for storing TCP/UDP packets. Packets
are now stored using pa_memchunk instead of internal struct. Quite a few
malloc saved compare to previous design.