summaryrefslogtreecommitdiffstats
path: root/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch')
-rw-r--r--ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch853
1 files changed, 853 insertions, 0 deletions
diff --git a/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch b/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch
new file mode 100644
index 00000000..53ee3ad0
--- /dev/null
+++ b/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0001-build-and-link-with-a-shared-library.patch
@@ -0,0 +1,853 @@
+From 7625b67a687b7a365d9d758a86ed05e84b2b3a61 Mon Sep 17 00:00:00 2001
+From: Thierry Bultel <thierry.bultel@iot.bzh>
+Date: Mon, 3 Dec 2018 14:29:07 +0100
+Subject: [PATCH 1/3] build and link with a shared library
+
+Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
+---
+ configure.ac | 4 +-
+ includes/bluealsa/bluealsa.h | 21 ++++++
+ {src/shared => includes/bluealsa}/ctl-client.h | 2 +-
+ {src/shared => includes/bluealsa}/ctl-proto.h | 0
+ {src/shared => includes/bluealsa}/defs.h | 0
+ {src/shared => includes/bluealsa}/ffb.h | 0
+ {src/shared => includes/bluealsa}/log.h | 0
+ {src/shared => includes/bluealsa}/rt.h | 0
+ src/Makefile.am | 11 ++-
+ src/asound/Makefile.am | 15 ++--
+ src/asound/bluealsa-ctl.c | 6 +-
+ src/asound/bluealsa-pcm.c | 10 +--
+ src/at.c | 4 +-
+ src/bluealsa.h | 2 +-
+ src/bluealsalib/Makefile.am | 50 ++++++++++++++
+ src/bluealsalib/bluealsa.pc.in | 12 ++++
+ src/bluez-a2dp.c | 2 +-
+ src/bluez.c | 2 +-
+ src/ctl.c | 4 +-
+ src/ctl.h | 2 +-
+ src/io.c | 8 +--
+ src/main.c | 4 +-
+ src/ofono.c | 2 +-
+ src/rfcomm.c | 4 +-
+ src/shared/ctl-client.c | 4 +-
+ src/shared/ffb.c | 2 +-
+ src/shared/log.c | 4 +-
+ src/shared/rt.c | 2 +-
+ src/transport.c | 2 +-
+ src/utils.c | 2 +-
+ test/Makefile.am | 10 ++-
+ test/server-mock.c | 3 -
+ test/test-at.c | 1 -
+ test/test-bluealsalib.c | 96 ++++++++++++++++++++++++++
+ test/test-io.c | 3 -
+ test/test-utils.c | 8 +--
+ utils/Makefile.am | 11 ++-
+ utils/aplay.c | 8 +--
+ utils/rfcomm.c | 4 +-
+ 39 files changed, 252 insertions(+), 73 deletions(-)
+ create mode 100644 includes/bluealsa/bluealsa.h
+ rename {src/shared => includes/bluealsa}/ctl-client.h (98%)
+ rename {src/shared => includes/bluealsa}/ctl-proto.h (100%)
+ rename {src/shared => includes/bluealsa}/defs.h (100%)
+ rename {src/shared => includes/bluealsa}/ffb.h (100%)
+ rename {src/shared => includes/bluealsa}/log.h (100%)
+ rename {src/shared => includes/bluealsa}/rt.h (100%)
+ create mode 100644 src/bluealsalib/Makefile.am
+ create mode 100644 src/bluealsalib/bluealsa.pc.in
+ create mode 100644 test/test-bluealsalib.c
+
+diff --git a/configure.ac b/configure.ac
+index 0bb9452..6323d60 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,8 +152,10 @@ AC_CONFIG_FILES([
+ Makefile
+ src/Makefile
+ src/asound/Makefile
++ src/bluealsalib/Makefile
+ utils/Makefile
+- test/Makefile])
++ test/Makefile
++ src/bluealsalib/bluealsa.pc])
+ AC_OUTPUT
+
+ # warn user that alsa-lib thread-safety makes troubles
+diff --git a/includes/bluealsa/bluealsa.h b/includes/bluealsa/bluealsa.h
+new file mode 100644
+index 0000000..062856a
+--- /dev/null
++++ b/includes/bluealsa/bluealsa.h
+@@ -0,0 +1,21 @@
++/*
++ * BlueALSA - bluealsa.h
++ * Copyright (c) 2018 Thierry Bultel
++ *
++ * This file is a part of bluez-alsa.
++ *
++ * This project is licensed under the terms of the MIT license.
++ *
++ */
++
++#ifndef BLUEALSA_H
++#define BLUEALSA_H
++
++#include <bluealsa/ctl-client.h>
++#include <bluealsa/defs.h>
++
++typedef int (*transport_update_cb) (struct ba_msg_transport *transports);
++
++extern int bluelsa_register_transport_update_cb(const char * interfance, transport_update_cb cb);
++
++#endif
+diff --git a/src/shared/ctl-client.h b/includes/bluealsa/ctl-client.h
+similarity index 98%
+rename from src/shared/ctl-client.h
+rename to includes/bluealsa/ctl-client.h
+index 3dc93a6..b8af154 100644
+--- a/src/shared/ctl-client.h
++++ b/includes/bluealsa/ctl-client.h
+@@ -12,7 +12,7 @@
+ #define BLUEALSA_SHARED_CTLCLIENT_H_
+
+ #include <stdbool.h>
+-#include "shared/ctl-proto.h"
++#include <bluealsa/ctl-proto.h>
+
+ int bluealsa_open(const char *interface);
+
+diff --git a/src/shared/ctl-proto.h b/includes/bluealsa/ctl-proto.h
+similarity index 100%
+rename from src/shared/ctl-proto.h
+rename to includes/bluealsa/ctl-proto.h
+diff --git a/src/shared/defs.h b/includes/bluealsa/defs.h
+similarity index 100%
+rename from src/shared/defs.h
+rename to includes/bluealsa/defs.h
+diff --git a/src/shared/ffb.h b/includes/bluealsa/ffb.h
+similarity index 100%
+rename from src/shared/ffb.h
+rename to includes/bluealsa/ffb.h
+diff --git a/src/shared/log.h b/includes/bluealsa/log.h
+similarity index 100%
+rename from src/shared/log.h
+rename to includes/bluealsa/log.h
+diff --git a/src/shared/rt.h b/includes/bluealsa/rt.h
+similarity index 100%
+rename from src/shared/rt.h
+rename to includes/bluealsa/rt.h
+diff --git a/src/Makefile.am b/src/Makefile.am
+index fb1241d..5626ae5 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -2,12 +2,9 @@
+ # Copyright (c) 2016-2018 Arkadiusz Bokowy
+
+ bin_PROGRAMS = bluealsa
+-SUBDIRS = asound
++SUBDIRS = bluealsalib asound
+
+ bluealsa_SOURCES = \
+- shared/ffb.c \
+- shared/log.c \
+- shared/rt.c \
+ at.c \
+ bluealsa.c \
+ bluez.c \
+@@ -34,7 +31,8 @@ AM_CFLAGS = \
+ @APTX_CFLAGS@ \
+ @LDAC_CFLAGS@ \
+ @LDAC_ABR_CFLAGS@ \
+- @SBC_CFLAGS@
++ @SBC_CFLAGS@ \
++ -I$(top_srcdir)/includes
+
+ LDADD = \
+ @BLUEZ_LIBS@ \
+@@ -44,4 +42,5 @@ LDADD = \
+ @APTX_LIBS@ \
+ @LDAC_LIBS@ \
+ @LDAC_ABR_LIBS@ \
+- @SBC_LIBS@
++ @SBC_LIBS@ \
++ bluealsalib/libbluealsa.la
+diff --git a/src/asound/Makefile.am b/src/asound/Makefile.am
+index 923d884..24618f1 100644
+--- a/src/asound/Makefile.am
++++ b/src/asound/Makefile.am
+@@ -5,32 +5,35 @@ EXTRA_DIST = 20-bluealsa.conf
+
+ asound_module_ctl_LTLIBRARIES = libasound_module_ctl_bluealsa.la
+ asound_module_pcm_LTLIBRARIES = libasound_module_pcm_bluealsa.la
++
+ asound_module_conf_DATA = 20-bluealsa.conf
+
+ libasound_module_ctl_bluealsa_la_SOURCES = \
+- ../shared/ctl-client.c \
+- ../shared/log.c \
+ bluealsa-ctl.c
++
+ libasound_module_pcm_bluealsa_la_SOURCES = \
+- ../shared/ctl-client.c \
+- ../shared/log.c \
+- ../shared/rt.c \
+ bluealsa-pcm.c
+
+ asound_module_ctldir = @ALSA_PLUGIN_DIR@
+ asound_module_pcmdir = @ALSA_PLUGIN_DIR@
++
+ asound_module_confdir = @ALSA_CONF_DIR@
+
+ AM_CFLAGS = \
+ -I$(top_srcdir)/src \
++ -I$(top_srcdir)/includes \
+ @ALSA_CFLAGS@ \
+ @BLUEZ_CFLAGS@ \
+ @GLIB2_CFLAGS@
+
+-AM_LDFLAGS = -module -avoid-version
++AM_LDFLAGS = \
++ -module \
++ -avoid-version \
++ ../bluealsalib/libbluealsa.la
+
+ libasound_module_ctl_bluealsa_la_LIBADD = \
+ @ALSA_LIBS@
++
+ libasound_module_pcm_bluealsa_la_LIBADD = \
+ @ALSA_LIBS@ \
+ @BLUEZ_LIBS@
+diff --git a/src/asound/bluealsa-ctl.c b/src/asound/bluealsa-ctl.c
+index f4a0181..1b9d124 100644
+--- a/src/asound/bluealsa-ctl.c
++++ b/src/asound/bluealsa-ctl.c
+@@ -19,9 +19,9 @@
+ #include <alsa/asoundlib.h>
+ #include <alsa/control_external.h>
+
+-#include "shared/ctl-client.h"
+-#include "shared/ctl-proto.h"
+-#include "shared/log.h"
++#include <bluealsa/ctl-client.h>
++#include <bluealsa/ctl-proto.h>
++#include <bluealsa/log.h>
+
+
+ enum ctl_elem_type {
+diff --git a/src/asound/bluealsa-pcm.c b/src/asound/bluealsa-pcm.c
+index 258aebd..42cb61d 100644
+--- a/src/asound/bluealsa-pcm.c
++++ b/src/asound/bluealsa-pcm.c
+@@ -23,11 +23,11 @@
+ #include <alsa/asoundlib.h>
+ #include <alsa/pcm_external.h>
+
+-#include "shared/ctl-client.h"
+-#include "shared/ctl-proto.h"
+-#include "shared/defs.h"
+-#include "shared/log.h"
+-#include "shared/rt.h"
++#include <bluealsa/ctl-client.h>
++#include <bluealsa/ctl-proto.h>
++#include <bluealsa/defs.h>
++#include <bluealsa/log.h>
++#include <bluealsa/rt.h>
+
+
+ struct bluealsa_pcm {
+diff --git a/src/at.c b/src/at.c
+index e3d1703..bda2255 100644
+--- a/src/at.c
++++ b/src/at.c
+@@ -16,8 +16,8 @@
+ #include <stdio.h>
+ #include <string.h>
+
+-#include "shared/defs.h"
+-#include "shared/log.h"
++#include <bluealsa/defs.h>
++#include <bluealsa/log.h>
+
+
+ /**
+diff --git a/src/bluealsa.h b/src/bluealsa.h
+index 7968ba9..7eee34f 100644
+--- a/src/bluealsa.h
++++ b/src/bluealsa.h
+@@ -27,7 +27,7 @@
+ #include "bluez.h"
+ #include "bluez-a2dp.h"
+ #include "transport.h"
+-#include "shared/ctl-proto.h"
++#include <bluealsa/ctl-proto.h>
+
+ struct ba_config {
+
+diff --git a/src/bluealsalib/Makefile.am b/src/bluealsalib/Makefile.am
+new file mode 100644
+index 0000000..11d9e00
+--- /dev/null
++++ b/src/bluealsalib/Makefile.am
+@@ -0,0 +1,50 @@
++# BlueALSA - Makefile.am
++# Copyright (c) 2018 Thiery Bultel (thierry.bultel@iot.bzh)
++
++bluealsalib_LTLIBRARIES = libbluealsa.la
++
++libbluealsa_la_SOURCES = \
++ ../shared/ctl-client.c \
++ ../shared/ffb.c \
++ ../shared/log.c \
++ ../shared/rt.c
++
++EXTRA_DIST=bluealsa.pc.in
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = bluealsa.pc
++
++AM_CFLAGS = \
++ -I$(top_srcdir)/src \
++ -I$(top_srcdir)/includes \
++ @ALSA_CFLAGS@ \
++ @BLUEZ_CFLAGS@ \
++ @GLIB2_CFLAGS@
++
++libbluealsa_la_LIBADD = \
++ @ALSA_LIBS@ \
++ @BLUEZ_LIBS@
++
++libbluealsa_la_LDFLAGS = \
++ $(AM_LDFLAGS) \
++ -version-info 1:0:0
++
++bluealsalibdir = $(libdir)
++
++# install path for published headers
++bluealsalibincludedir=$(includedir)/bluealsa
++
++bluealsalib_headers_dir=../../includes/bluealsa
++
++bluealsalib_headers = \
++ $(bluealsalib_headers_dir)/bluealsa.h \
++ $(bluealsalib_headers_dir)/ctl-client.h \
++ $(bluealsalib_headers_dir)/ctl-proto.h \
++ $(bluealsalib_headers_dir)/defs.h \
++ $(bluealsalib_headers_dir)/ffb.h \
++ $(bluealsalib_headers_dir)/log.h \
++ $(bluealsalib_headers_dir)/rt.h
++
++libbluealsa_la_SOURCES += $(bluealsalib_headers)
++
++bluealsalibinclude_HEADERS = $(bluealsalib_headers)
+diff --git a/src/bluealsalib/bluealsa.pc.in b/src/bluealsalib/bluealsa.pc.in
+new file mode 100644
+index 0000000..93c3c4a
+--- /dev/null
++++ b/src/bluealsalib/bluealsa.pc.in
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: alsa
++Description: Bluez-Alsa - Library
++Version: @VERSION@
++Requires:
++Libs: -L${libdir} -lbluealsa
++#Libs.private: @ALSA_DEPLIBS@
++Cflags: -I${includedir}/bluealsa
+diff --git a/src/bluez-a2dp.c b/src/bluez-a2dp.c
+index 5f81e6e..4c7b07b 100644
+--- a/src/bluez-a2dp.c
++++ b/src/bluez-a2dp.c
+@@ -13,7 +13,7 @@
+ #endif
+
+ #include "bluez-a2dp.h"
+-#include "shared/defs.h"
++#include <bluealsa/defs.h>
+
+ static const a2dp_sbc_t a2dp_sbc = {
+ .frequency =
+diff --git a/src/bluez.c b/src/bluez.c
+index 537f0fe..591fdce 100644
+--- a/src/bluez.c
++++ b/src/bluez.c
+@@ -24,7 +24,7 @@
+ #include "ctl.h"
+ #include "transport.h"
+ #include "utils.h"
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+
+ /**
+diff --git a/src/ctl.c b/src/ctl.c
+index ae2b812..dd3ab45 100644
+--- a/src/ctl.c
++++ b/src/ctl.c
+@@ -32,8 +32,8 @@
+ #include "hfp.h"
+ #include "transport.h"
+ #include "utils.h"
+-#include "shared/defs.h"
+-#include "shared/log.h"
++#include <bluealsa/defs.h>
++#include <bluealsa/log.h>
+
+ /* Special PCM type for internal usage only. */
+ #define BA_PCM_TYPE_RFCOMM 0x1F
+diff --git a/src/ctl.h b/src/ctl.h
+index 0e3c46b..593a9fd 100644
+--- a/src/ctl.h
++++ b/src/ctl.h
+@@ -11,7 +11,7 @@
+ #ifndef BLUEALSA_CTL_H_
+ #define BLUEALSA_CTL_H_
+
+-#include "shared/ctl-proto.h"
++#include <bluealsa/ctl-proto.h>
+
+ /* Indexes of special file descriptors in the poll array. */
+ #define CTL_IDX_SRV 0
+diff --git a/src/io.c b/src/io.c
+index b3d7ac9..f81eeb0 100644
+--- a/src/io.c
++++ b/src/io.c
+@@ -44,10 +44,10 @@
+ #include "bluealsa.h"
+ #include "transport.h"
+ #include "utils.h"
+-#include "shared/defs.h"
+-#include "shared/ffb.h"
+-#include "shared/log.h"
+-#include "shared/rt.h"
++#include <bluealsa/defs.h>
++#include <bluealsa/ffb.h>
++#include <bluealsa/log.h>
++#include <bluealsa/rt.h>
+
+
+ /**
+diff --git a/src/main.c b/src/main.c
+index 35e6702..9cef402 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -37,8 +37,8 @@
+ #endif
+ #include "transport.h"
+ #include "utils.h"
+-#include "shared/defs.h"
+-#include "shared/log.h"
++#include <bluealsa/defs.h>
++#include <bluealsa/log.h>
+
+
+ static char *get_a2dp_codecs(
+diff --git a/src/ofono.c b/src/ofono.c
+index 902d099..bfd4e39 100644
+--- a/src/ofono.c
++++ b/src/ofono.c
+@@ -27,7 +27,7 @@
+ #include "ctl.h"
+ #include "ofono-iface.h"
+ #include "transport.h"
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+ #define OFONO_FAKE_DEV_ID 0xffff
+
+diff --git a/src/rfcomm.c b/src/rfcomm.c
+index a86ae61..2d76725 100644
+--- a/src/rfcomm.c
++++ b/src/rfcomm.c
+@@ -17,11 +17,11 @@
+ #include <string.h>
+ #include <unistd.h>
+
++#include <bluealsa/defs.h>
+ #include "bluealsa.h"
+ #include "ctl.h"
+ #include "utils.h"
+-#include "shared/defs.h"
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+
+ /**
+diff --git a/src/shared/ctl-client.c b/src/shared/ctl-client.c
+index 6cf9402..2da9a54 100644
+--- a/src/shared/ctl-client.c
++++ b/src/shared/ctl-client.c
+@@ -8,7 +8,7 @@
+ *
+ */
+
+-#include "shared/ctl-client.h"
++#include <bluealsa/ctl-client.h>
+
+ #include <errno.h>
+ #include <fcntl.h>
+@@ -19,7 +19,7 @@
+ #include <sys/types.h>
+ #include <sys/un.h>
+
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+
+ /**
+diff --git a/src/shared/ffb.c b/src/shared/ffb.c
+index b31d7d1..ab50f4a 100644
+--- a/src/shared/ffb.c
++++ b/src/shared/ffb.c
+@@ -8,7 +8,7 @@
+ *
+ */
+
+-#include "shared/ffb.h"
++#include "../../includes/bluealsa/ffb.h"
+
+
+ /**
+diff --git a/src/shared/log.c b/src/shared/log.c
+index 65f0fea..884540c 100644
+--- a/src/shared/log.c
++++ b/src/shared/log.c
+@@ -8,7 +8,7 @@
+ *
+ */
+
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+ #include <pthread.h>
+ #include <stdarg.h>
+@@ -17,7 +17,7 @@
+ #include <string.h>
+ #include <syslog.h>
+
+-#include "shared/rt.h"
++#include <bluealsa/rt.h>
+
+
+ /* internal logging identifier */
+diff --git a/src/shared/rt.c b/src/shared/rt.c
+index edcbebc..40bd721 100644
+--- a/src/shared/rt.c
++++ b/src/shared/rt.c
+@@ -8,7 +8,7 @@
+ *
+ */
+
+-#include "shared/rt.h"
++#include <bluealsa/rt.h>
+
+ #include <stdlib.h>
+
+diff --git a/src/transport.c b/src/transport.c
+index 7253925..1617dd1 100644
+--- a/src/transport.c
++++ b/src/transport.c
+@@ -34,7 +34,7 @@
+ #include "io.h"
+ #include "rfcomm.h"
+ #include "utils.h"
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+
+ static const char *transport_type_to_string(enum ba_transport_type type) {
+diff --git a/src/utils.c b/src/utils.c
+index 70d069e..27459d2 100644
+--- a/src/utils.c
++++ b/src/utils.c
+@@ -24,7 +24,7 @@
+
+ #include "a2dp-codecs.h"
+ #include "bluez.h"
+-#include "shared/log.h"
++#include <bluealsa/log.h>
+
+
+ /**
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 104dc63..8f7b2eb 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -6,7 +6,8 @@ TESTS = \
+ test-ctl \
+ test-io \
+ test-pcm \
+- test-utils
++ test-utils \
++ test-bluealsalib
+
+ check_PROGRAMS = \
+ server-mock \
+@@ -14,7 +15,8 @@ check_PROGRAMS = \
+ test-ctl \
+ test-io \
+ test-pcm \
+- test-utils
++ test-utils \
++ test-bluealsalib
+
+ check_LTLIBRARIES = \
+ aloader.la
+@@ -25,6 +27,7 @@ aloader_la_LDFLAGS = \
+
+ AM_CFLAGS = \
+ -I$(top_srcdir)/src \
++ -I$(top_srcdir)/includes \
+ @AAC_CFLAGS@ \
+ @ALSA_CFLAGS@ \
+ @APTX_CFLAGS@ \
+@@ -46,4 +49,5 @@ LDADD = \
+ @GLIB2_LIBS@ \
+ @LDAC_ABR_LIBS@ \
+ @LDAC_LIBS@ \
+- @SBC_LIBS@
++ @SBC_LIBS@ \
++ ../src/bluealsalib/libbluealsa.la
+diff --git a/test/server-mock.c b/test/server-mock.c
+index 8c3a90e..c88fa35 100644
+--- a/test/server-mock.c
++++ b/test/server-mock.c
+@@ -31,9 +31,6 @@
+ #include "../src/rfcomm.c"
+ #include "../src/transport.c"
+ #include "../src/utils.c"
+-#include "../src/shared/ffb.c"
+-#include "../src/shared/log.c"
+-#include "../src/shared/rt.c"
+
+ static const a2dp_sbc_t cconfig = {
+ .frequency = SBC_SAMPLING_FREQ_44100,
+diff --git a/test/test-at.c b/test/test-at.c
+index 8cff264..a847c22 100644
+--- a/test/test-at.c
++++ b/test/test-at.c
+@@ -11,7 +11,6 @@
+ #include <check.h>
+
+ #include "../src/at.c"
+-#include "../src/shared/log.c"
+
+ START_TEST(test_at_build) {
+
+diff --git a/test/test-bluealsalib.c b/test/test-bluealsalib.c
+new file mode 100644
+index 0000000..d5fa3ff
+--- /dev/null
++++ b/test/test-bluealsalib.c
+@@ -0,0 +1,96 @@
++/*
++ * test-bluealsalib.c
++ * Copyright (c) 2018 Thierry Bultel
++ *
++ * This file is a part of bluez-alsa.
++ *
++ * This project is licensed under the terms of the MIT license.
++ *
++ */
++
++// TODO monitor all available interfaces
++const char * ba_interface = "hci0";
++
++#include <bluealsa/bluealsa.h>
++#include <bluealsa/log.h>
++#include <pthread.h>
++#include <errno.h>
++#include <poll.h>
++
++
++static void * monitor_thread_entry(void* arg) {
++ debug("...");
++
++ int ba_fd, ba_event_fd;
++ enum ba_event transport_mask = BA_EVENT_TRANSPORT_ADDED | BA_EVENT_TRANSPORT_CHANGED|BA_EVENT_TRANSPORT_REMOVED;
++
++ if ((ba_fd = bluealsa_open(ba_interface)) == -1) {
++ error("BlueALSA connection failed: %s", strerror(errno));
++ goto fail;
++ }
++
++ if ((ba_event_fd = bluealsa_open(ba_interface)) == -1) {
++ error("BlueALSA connection failed: %s", strerror(errno));
++ goto fail;
++ }
++
++ if (bluealsa_subscribe(ba_event_fd, transport_mask) == -1) {
++ error("BlueALSA subscription failed: %s", strerror(errno));
++ goto fail;
++ }
++
++goto init;
++
++ while (true) {
++
++ struct ba_msg_event event;
++ struct ba_msg_transport *transports;
++ ssize_t ret;
++ size_t i;
++
++ struct pollfd pfds[] = {{ ba_event_fd, POLLIN, 0 }};
++ if (poll(pfds, ARRAYSIZE(pfds), -1) == -1 && errno == EINTR)
++ continue;
++
++ while ((ret = recv(ba_event_fd, &event, sizeof(event), MSG_DONTWAIT)) == -1 && errno == EINTR)
++ continue;
++ if (ret != sizeof(event)) {
++ error("Couldn't read event: %s", strerror(ret == -1 ? errno : EBADMSG));
++ goto fail;
++ }
++
++init:
++ debug("Fetching available transports");
++ if ((ret = bluealsa_get_transports(ba_fd, &transports)) == -1) {
++ error("Couldn't get transports: %s", strerror(errno));
++ goto fail;
++ }
++
++ debug("Got %d transports", ret);
++
++ for (int ix=0; ix<ret; ix++) {
++ char addr[18];
++ struct ba_msg_transport * transport = &transports[ix];
++ ba2str(&transport->addr, addr);
++ info("Transport %d: type %d, dev %s", ix, transport->type, addr);
++ }
++
++ }
++
++fail:
++ info("exit");
++ return NULL;
++}
++
++int main(int argc, char * argv[]) {
++ printf("%s... !\n", argv[0]);
++
++ pthread_t monitor;
++ if (pthread_create(&monitor, NULL, monitor_thread_entry, NULL) == -1) {
++ debug("failed to create the monitor thread");
++ goto fail;
++ }
++ pthread_join(monitor, NULL);
++fail:
++ return 0;
++}
+diff --git a/test/test-io.c b/test/test-io.c
+index d913d2f..8ebb1d8 100644
+--- a/test/test-io.c
++++ b/test/test-io.c
+@@ -21,9 +21,6 @@
+ #include "../src/rfcomm.c"
+ #include "../src/transport.c"
+ #include "../src/utils.c"
+-#include "../src/shared/ffb.c"
+-#include "../src/shared/log.c"
+-#include "../src/shared/rt.c"
+
+ static const a2dp_sbc_t config_sbc_44100_stereo = {
+ .frequency = SBC_SAMPLING_FREQ_44100,
+diff --git a/test/test-utils.c b/test/test-utils.c
+index b704b42..46475f1 100644
+--- a/test/test-utils.c
++++ b/test/test-utils.c
+@@ -10,11 +10,11 @@
+
+ #include <check.h>
+
++#include <bluealsa/defs.h>
++#include <bluealsa/ffb.h>
++#include <bluealsa/rt.h>
++
+ #include "../src/utils.c"
+-#include "../src/shared/defs.h"
+-#include "../src/shared/ffb.c"
+-#include "../src/shared/log.c"
+-#include "../src/shared/rt.c"
+
+ START_TEST(test_dbus_profile_object_path) {
+
+diff --git a/utils/Makefile.am b/utils/Makefile.am
+index 256689a..a6d132c 100644
+--- a/utils/Makefile.am
++++ b/utils/Makefile.am
+@@ -6,32 +6,31 @@ bin_PROGRAMS =
+ if ENABLE_APLAY
+ bin_PROGRAMS += bluealsa-aplay
+ bluealsa_aplay_SOURCES = \
+- ../src/shared/ctl-client.c \
+- ../src/shared/ffb.c \
+- ../src/shared/log.c \
+ aplay.c
+ bluealsa_aplay_CFLAGS = \
+ -I$(top_srcdir)/src \
++ -I$(top_srcdir)/includes \
+ @ALSA_CFLAGS@ \
+ @BLUEZ_CFLAGS@ \
+ @GIO2_CFLAGS@
+ bluealsa_aplay_LDADD = \
+ @ALSA_LIBS@ \
+ @BLUEZ_LIBS@ \
+- @GIO2_LIBS@
++ @GIO2_LIBS@ \
++ ../src/bluealsalib/libbluealsa.la
+ endif
+
+ if ENABLE_RFCOMM
+ bin_PROGRAMS += bluealsa-rfcomm
+ bluealsa_rfcomm_SOURCES = \
+- ../src/shared/ctl-client.c \
+- ../src/shared/log.c \
+ rfcomm.c
+ bluealsa_rfcomm_CFLAGS = \
+ -I$(top_srcdir)/src \
++ -I$(top_srcdir)/includes \
+ @BLUEZ_CFLAGS@
+ bluealsa_rfcomm_LDADD = \
+ @BLUEZ_LIBS@ \
++ ../src/bluealsalib/libbluealsa.la \
+ -lreadline
+ endif
+
+diff --git a/utils/aplay.c b/utils/aplay.c
+index f792ce6..4b1372e 100644
+--- a/utils/aplay.c
++++ b/utils/aplay.c
+@@ -25,10 +25,10 @@
+ #include <alsa/asoundlib.h>
+ #include <gio/gio.h>
+
+-#include "shared/ctl-client.h"
+-#include "shared/defs.h"
+-#include "shared/ffb.h"
+-#include "shared/log.h"
++#include <bluealsa/ctl-client.h>
++#include <bluealsa/defs.h>
++#include <bluealsa/ffb.h>
++#include <bluealsa/log.h>
+
+ struct pcm_worker {
+ struct ba_msg_transport transport;
+diff --git a/utils/rfcomm.c b/utils/rfcomm.c
+index cc31f46..38e3b30 100644
+--- a/utils/rfcomm.c
++++ b/utils/rfcomm.c
+@@ -24,8 +24,8 @@
+ #include <readline/readline.h>
+ #include <readline/history.h>
+
+-#include "shared/ctl-client.h"
+-#include "shared/log.h"
++#include <bluealsa/ctl-client.h>
++#include <bluealsa/log.h>
+
+ static char *strtrim(char *str) {
+ while (isspace(*str))
+--
+2.16.4
+