bluez-alsa: removed the PCM hack, and build a shared lib
[AGL/meta-agl-devel.git] / meta-audio-4a-framework / recipes-connectivity / bluez-alsa / bluez-alsa / 0001-build-and-link-with-a-shared-library.patch
1 From 032917320d339e44a3981c347887b220e98e369e Mon Sep 17 00:00:00 2001
2 From: Thierry Bultel <thierry.bultel@iot.bzh>
3 Date: Mon, 3 Dec 2018 14:29:07 +0100
4 Subject: [PATCH 1/3] build and link with a shared library
5
6 Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh>
7 ---
8  configure.ac                                   |  4 +-
9  includes/bluealsa/bluealsa.h                   | 21 ++++++
10  {src/shared => includes/bluealsa}/ctl-client.h |  2 +-
11  {src/shared => includes/bluealsa}/ctl-proto.h  |  0
12  {src/shared => includes/bluealsa}/defs.h       |  0
13  {src/shared => includes/bluealsa}/ffb.h        |  0
14  {src/shared => includes/bluealsa}/log.h        |  0
15  {src/shared => includes/bluealsa}/rt.h         |  0
16  src/Makefile.am                                | 11 ++-
17  src/asound/Makefile.am                         | 15 ++--
18  src/asound/bluealsa-ctl.c                      |  6 +-
19  src/asound/bluealsa-pcm.c                      | 10 +--
20  src/at.c                                       |  4 +-
21  src/bluealsa.h                                 |  2 +-
22  src/bluealsalib/Makefile.am                    | 50 ++++++++++++++
23  src/bluealsalib/bluealsa.pc.in                 | 12 ++++
24  src/bluez-a2dp.c                               |  2 +-
25  src/bluez.c                                    |  2 +-
26  src/ctl.c                                      |  4 +-
27  src/ctl.h                                      |  2 +-
28  src/io.c                                       |  8 +--
29  src/main.c                                     |  4 +-
30  src/ofono.c                                    |  2 +-
31  src/rfcomm.c                                   |  4 +-
32  src/shared/ctl-client.c                        |  4 +-
33  src/shared/ffb.c                               |  2 +-
34  src/shared/log.c                               |  4 +-
35  src/shared/rt.c                                |  2 +-
36  src/transport.c                                |  2 +-
37  src/utils.c                                    |  2 +-
38  test/Makefile.am                               | 10 ++-
39  test/server-mock.c                             |  3 -
40  test/test-at.c                                 |  1 -
41  test/test-bluealsalib.c                        | 96 ++++++++++++++++++++++++++
42  test/test-io.c                                 |  3 -
43  test/test-pcm.c                                |  4 +-
44  test/test-utils.c                              |  8 +--
45  utils/Makefile.am                              | 11 ++-
46  utils/aplay.c                                  |  8 +--
47  utils/rfcomm.c                                 |  4 +-
48  40 files changed, 254 insertions(+), 75 deletions(-)
49  create mode 100644 includes/bluealsa/bluealsa.h
50  rename {src/shared => includes/bluealsa}/ctl-client.h (98%)
51  rename {src/shared => includes/bluealsa}/ctl-proto.h (100%)
52  rename {src/shared => includes/bluealsa}/defs.h (100%)
53  rename {src/shared => includes/bluealsa}/ffb.h (100%)
54  rename {src/shared => includes/bluealsa}/log.h (100%)
55  rename {src/shared => includes/bluealsa}/rt.h (100%)
56  create mode 100644 src/bluealsalib/Makefile.am
57  create mode 100644 src/bluealsalib/bluealsa.pc.in
58  create mode 100644 test/test-bluealsalib.c
59
60 diff --git a/configure.ac b/configure.ac
61 index 734fb59..fc52531 100644
62 --- a/configure.ac
63 +++ b/configure.ac
64 @@ -158,8 +158,10 @@ AC_CONFIG_FILES([
65         Makefile
66         src/Makefile
67         src/asound/Makefile
68 +       src/bluealsalib/Makefile
69         utils/Makefile
70 -       test/Makefile])
71 +       test/Makefile
72 +       src/bluealsalib/bluealsa.pc])
73  AC_OUTPUT
74  
75  # warn user that alsa-lib thread-safety makes troubles
76 diff --git a/includes/bluealsa/bluealsa.h b/includes/bluealsa/bluealsa.h
77 new file mode 100644
78 index 0000000..062856a
79 --- /dev/null
80 +++ b/includes/bluealsa/bluealsa.h
81 @@ -0,0 +1,21 @@
82 +/*
83 + * BlueALSA - bluealsa.h
84 + * Copyright (c) 2018 Thierry Bultel
85 + *
86 + * This file is a part of bluez-alsa.
87 + *
88 + * This project is licensed under the terms of the MIT license.
89 + *
90 + */
91 +
92 +#ifndef BLUEALSA_H
93 +#define BLUEALSA_H
94 +
95 +#include <bluealsa/ctl-client.h>
96 +#include <bluealsa/defs.h>
97 +
98 +typedef int (*transport_update_cb) (struct ba_msg_transport *transports);
99 +
100 +extern int bluelsa_register_transport_update_cb(const char * interfance, transport_update_cb cb);
101 +
102 +#endif
103 diff --git a/src/shared/ctl-client.h b/includes/bluealsa/ctl-client.h
104 similarity index 98%
105 rename from src/shared/ctl-client.h
106 rename to includes/bluealsa/ctl-client.h
107 index 18f724d..36b537c 100644
108 --- a/src/shared/ctl-client.h
109 +++ b/includes/bluealsa/ctl-client.h
110 @@ -12,7 +12,7 @@
111  #define BLUEALSA_SHARED_CTLCLIENT_H_
112  
113  #include <stdbool.h>
114 -#include "shared/ctl-proto.h"
115 +#include <bluealsa/ctl-proto.h>
116  
117  int bluealsa_open(const char *interface);
118  
119 diff --git a/src/shared/ctl-proto.h b/includes/bluealsa/ctl-proto.h
120 similarity index 100%
121 rename from src/shared/ctl-proto.h
122 rename to includes/bluealsa/ctl-proto.h
123 diff --git a/src/shared/defs.h b/includes/bluealsa/defs.h
124 similarity index 100%
125 rename from src/shared/defs.h
126 rename to includes/bluealsa/defs.h
127 diff --git a/src/shared/ffb.h b/includes/bluealsa/ffb.h
128 similarity index 100%
129 rename from src/shared/ffb.h
130 rename to includes/bluealsa/ffb.h
131 diff --git a/src/shared/log.h b/includes/bluealsa/log.h
132 similarity index 100%
133 rename from src/shared/log.h
134 rename to includes/bluealsa/log.h
135 diff --git a/src/shared/rt.h b/includes/bluealsa/rt.h
136 similarity index 100%
137 rename from src/shared/rt.h
138 rename to includes/bluealsa/rt.h
139 diff --git a/src/Makefile.am b/src/Makefile.am
140 index fb1241d..5626ae5 100644
141 --- a/src/Makefile.am
142 +++ b/src/Makefile.am
143 @@ -2,12 +2,9 @@
144  # Copyright (c) 2016-2018 Arkadiusz Bokowy
145  
146  bin_PROGRAMS = bluealsa
147 -SUBDIRS = asound
148 +SUBDIRS = bluealsalib asound
149  
150  bluealsa_SOURCES = \
151 -       shared/ffb.c \
152 -       shared/log.c \
153 -       shared/rt.c \
154         at.c \
155         bluealsa.c \
156         bluez.c \
157 @@ -34,7 +31,8 @@ AM_CFLAGS = \
158         @APTX_CFLAGS@ \
159         @LDAC_CFLAGS@ \
160         @LDAC_ABR_CFLAGS@ \
161 -       @SBC_CFLAGS@
162 +       @SBC_CFLAGS@ \
163 +       -I$(top_srcdir)/includes
164  
165  LDADD = \
166         @BLUEZ_LIBS@ \
167 @@ -44,4 +42,5 @@ LDADD = \
168         @APTX_LIBS@ \
169         @LDAC_LIBS@ \
170         @LDAC_ABR_LIBS@ \
171 -       @SBC_LIBS@
172 +       @SBC_LIBS@ \
173 +       bluealsalib/libbluealsa.la
174 diff --git a/src/asound/Makefile.am b/src/asound/Makefile.am
175 index 923d884..24618f1 100644
176 --- a/src/asound/Makefile.am
177 +++ b/src/asound/Makefile.am
178 @@ -5,32 +5,35 @@ EXTRA_DIST = 20-bluealsa.conf
179  
180  asound_module_ctl_LTLIBRARIES = libasound_module_ctl_bluealsa.la
181  asound_module_pcm_LTLIBRARIES = libasound_module_pcm_bluealsa.la
182 +
183  asound_module_conf_DATA = 20-bluealsa.conf
184  
185  libasound_module_ctl_bluealsa_la_SOURCES = \
186 -       ../shared/ctl-client.c \
187 -       ../shared/log.c \
188         bluealsa-ctl.c
189 +
190  libasound_module_pcm_bluealsa_la_SOURCES = \
191 -       ../shared/ctl-client.c \
192 -       ../shared/log.c \
193 -       ../shared/rt.c \
194         bluealsa-pcm.c
195  
196  asound_module_ctldir = @ALSA_PLUGIN_DIR@
197  asound_module_pcmdir = @ALSA_PLUGIN_DIR@
198 +
199  asound_module_confdir = @ALSA_CONF_DIR@
200  
201  AM_CFLAGS = \
202         -I$(top_srcdir)/src \
203 +       -I$(top_srcdir)/includes \
204         @ALSA_CFLAGS@ \
205         @BLUEZ_CFLAGS@ \
206         @GLIB2_CFLAGS@
207  
208 -AM_LDFLAGS = -module -avoid-version
209 +AM_LDFLAGS = \
210 +       -module \
211 +       -avoid-version  \
212 +       ../bluealsalib/libbluealsa.la
213  
214  libasound_module_ctl_bluealsa_la_LIBADD = \
215         @ALSA_LIBS@
216 +
217  libasound_module_pcm_bluealsa_la_LIBADD = \
218         @ALSA_LIBS@ \
219         @BLUEZ_LIBS@
220 diff --git a/src/asound/bluealsa-ctl.c b/src/asound/bluealsa-ctl.c
221 index 76cbe6a..3c931ca 100644
222 --- a/src/asound/bluealsa-ctl.c
223 +++ b/src/asound/bluealsa-ctl.c
224 @@ -19,9 +19,9 @@
225  #include <alsa/asoundlib.h>
226  #include <alsa/control_external.h>
227  
228 -#include "shared/ctl-client.h"
229 -#include "shared/ctl-proto.h"
230 -#include "shared/log.h"
231 +#include <bluealsa/ctl-client.h>
232 +#include <bluealsa/ctl-proto.h>
233 +#include <bluealsa/log.h>
234  
235  
236  enum ctl_elem_type {
237 diff --git a/src/asound/bluealsa-pcm.c b/src/asound/bluealsa-pcm.c
238 index 46788f5..2136964 100644
239 --- a/src/asound/bluealsa-pcm.c
240 +++ b/src/asound/bluealsa-pcm.c
241 @@ -23,11 +23,11 @@
242  #include <alsa/asoundlib.h>
243  #include <alsa/pcm_external.h>
244  
245 -#include "shared/ctl-client.h"
246 -#include "shared/ctl-proto.h"
247 -#include "shared/defs.h"
248 -#include "shared/log.h"
249 -#include "shared/rt.h"
250 +#include <bluealsa/ctl-client.h>
251 +#include <bluealsa/ctl-proto.h>
252 +#include <bluealsa/defs.h>
253 +#include <bluealsa/log.h>
254 +#include <bluealsa/rt.h>
255  
256  
257  struct bluealsa_pcm {
258 diff --git a/src/at.c b/src/at.c
259 index e3d1703..bda2255 100644
260 --- a/src/at.c
261 +++ b/src/at.c
262 @@ -16,8 +16,8 @@
263  #include <stdio.h>
264  #include <string.h>
265  
266 -#include "shared/defs.h"
267 -#include "shared/log.h"
268 +#include <bluealsa/defs.h>
269 +#include <bluealsa/log.h>
270  
271  
272  /**
273 diff --git a/src/bluealsa.h b/src/bluealsa.h
274 index 3249439..b73241e 100644
275 --- a/src/bluealsa.h
276 +++ b/src/bluealsa.h
277 @@ -28,7 +28,7 @@
278  #include "bluez.h"
279  #include "bluez-a2dp.h"
280  #include "transport.h"
281 -#include "shared/ctl-proto.h"
282 +#include <bluealsa/ctl-proto.h>
283  
284  /* Maximal number of clients connected to the controller. */
285  #define BLUEALSA_MAX_CLIENTS 7
286 diff --git a/src/bluealsalib/Makefile.am b/src/bluealsalib/Makefile.am
287 new file mode 100644
288 index 0000000..11d9e00
289 --- /dev/null
290 +++ b/src/bluealsalib/Makefile.am
291 @@ -0,0 +1,50 @@
292 +# BlueALSA - Makefile.am
293 +# Copyright (c) 2018 Thiery Bultel (thierry.bultel@iot.bzh)
294 +
295 +bluealsalib_LTLIBRARIES = libbluealsa.la
296 +
297 +libbluealsa_la_SOURCES = \
298 +       ../shared/ctl-client.c \
299 +       ../shared/ffb.c \
300 +       ../shared/log.c \
301 +       ../shared/rt.c
302 +
303 +EXTRA_DIST=bluealsa.pc.in
304 +
305 +pkgconfigdir = $(libdir)/pkgconfig
306 +pkgconfig_DATA = bluealsa.pc
307 +
308 +AM_CFLAGS = \
309 +       -I$(top_srcdir)/src \
310 +       -I$(top_srcdir)/includes \
311 +       @ALSA_CFLAGS@ \
312 +       @BLUEZ_CFLAGS@ \
313 +       @GLIB2_CFLAGS@
314 +
315 +libbluealsa_la_LIBADD = \
316 +       @ALSA_LIBS@ \
317 +       @BLUEZ_LIBS@
318 +
319 +libbluealsa_la_LDFLAGS = \
320 +       $(AM_LDFLAGS) \
321 +       -version-info 1:0:0
322 +
323 +bluealsalibdir = $(libdir)
324 +
325 +# install path for published headers
326 +bluealsalibincludedir=$(includedir)/bluealsa
327 +
328 +bluealsalib_headers_dir=../../includes/bluealsa
329 +
330 +bluealsalib_headers = \
331 +       $(bluealsalib_headers_dir)/bluealsa.h \
332 +       $(bluealsalib_headers_dir)/ctl-client.h \
333 +       $(bluealsalib_headers_dir)/ctl-proto.h \
334 +       $(bluealsalib_headers_dir)/defs.h \
335 +       $(bluealsalib_headers_dir)/ffb.h \
336 +       $(bluealsalib_headers_dir)/log.h \
337 +       $(bluealsalib_headers_dir)/rt.h
338 +
339 +libbluealsa_la_SOURCES += $(bluealsalib_headers)
340 +
341 +bluealsalibinclude_HEADERS = $(bluealsalib_headers)
342 diff --git a/src/bluealsalib/bluealsa.pc.in b/src/bluealsalib/bluealsa.pc.in
343 new file mode 100644
344 index 0000000..93c3c4a
345 --- /dev/null
346 +++ b/src/bluealsalib/bluealsa.pc.in
347 @@ -0,0 +1,12 @@
348 +prefix=@prefix@
349 +exec_prefix=@exec_prefix@
350 +libdir=@libdir@
351 +includedir=@includedir@
352 +
353 +Name: alsa
354 +Description: Bluez-Alsa - Library
355 +Version: @VERSION@
356 +Requires:
357 +Libs: -L${libdir} -lbluealsa
358 +#Libs.private: @ALSA_DEPLIBS@
359 +Cflags: -I${includedir}/bluealsa
360 diff --git a/src/bluez-a2dp.c b/src/bluez-a2dp.c
361 index 5f81e6e..4c7b07b 100644
362 --- a/src/bluez-a2dp.c
363 +++ b/src/bluez-a2dp.c
364 @@ -13,7 +13,7 @@
365  #endif
366  
367  #include "bluez-a2dp.h"
368 -#include "shared/defs.h"
369 +#include <bluealsa/defs.h>
370  
371  static const a2dp_sbc_t a2dp_sbc = {
372         .frequency =
373 diff --git a/src/bluez.c b/src/bluez.c
374 index 35f1b36..1478d6f 100644
375 --- a/src/bluez.c
376 +++ b/src/bluez.c
377 @@ -24,7 +24,7 @@
378  #include "ctl.h"
379  #include "transport.h"
380  #include "utils.h"
381 -#include "shared/log.h"
382 +#include <bluealsa/log.h>
383  
384  
385  /**
386 diff --git a/src/ctl.c b/src/ctl.c
387 index b35afc7..82666b9 100644
388 --- a/src/ctl.c
389 +++ b/src/ctl.c
390 @@ -31,8 +31,8 @@
391  #include "hfp.h"
392  #include "transport.h"
393  #include "utils.h"
394 -#include "shared/defs.h"
395 -#include "shared/log.h"
396 +#include <bluealsa/defs.h>
397 +#include <bluealsa/log.h>
398  
399  
400  /**
401 diff --git a/src/ctl.h b/src/ctl.h
402 index 5fd92ed..7f185a4 100644
403 --- a/src/ctl.h
404 +++ b/src/ctl.h
405 @@ -11,7 +11,7 @@
406  #ifndef BLUEALSA_CTL_H_
407  #define BLUEALSA_CTL_H_
408  
409 -#include "shared/ctl-proto.h"
410 +#include <bluealsa/ctl-proto.h>
411  
412  int bluealsa_ctl_thread_init(void);
413  void bluealsa_ctl_free(void);
414 diff --git a/src/io.c b/src/io.c
415 index 5b098c4..e567bdb 100644
416 --- a/src/io.c
417 +++ b/src/io.c
418 @@ -44,10 +44,10 @@
419  #include "bluealsa.h"
420  #include "transport.h"
421  #include "utils.h"
422 -#include "shared/defs.h"
423 -#include "shared/ffb.h"
424 -#include "shared/log.h"
425 -#include "shared/rt.h"
426 +#include <bluealsa/defs.h>
427 +#include <bluealsa/ffb.h>
428 +#include <bluealsa/log.h>
429 +#include <bluealsa/rt.h>
430  
431  
432  /**
433 diff --git a/src/main.c b/src/main.c
434 index 35e6702..9cef402 100644
435 --- a/src/main.c
436 +++ b/src/main.c
437 @@ -37,8 +37,8 @@
438  #endif
439  #include "transport.h"
440  #include "utils.h"
441 -#include "shared/defs.h"
442 -#include "shared/log.h"
443 +#include <bluealsa/defs.h>
444 +#include <bluealsa/log.h>
445  
446  
447  static char *get_a2dp_codecs(
448 diff --git a/src/ofono.c b/src/ofono.c
449 index 4331e03..63c8685 100644
450 --- a/src/ofono.c
451 +++ b/src/ofono.c
452 @@ -26,7 +26,7 @@
453  #include "ctl.h"
454  #include "ofono-iface.h"
455  #include "transport.h"
456 -#include "shared/log.h"
457 +#include <bluealsa/log.h>
458  
459  #define OFONO_FAKE_DEV_ID 0xffff
460  
461 diff --git a/src/rfcomm.c b/src/rfcomm.c
462 index f2a904a..b1edf84 100644
463 --- a/src/rfcomm.c
464 +++ b/src/rfcomm.c
465 @@ -17,11 +17,11 @@
466  #include <string.h>
467  #include <unistd.h>
468  
469 +#include <bluealsa/defs.h>
470  #include "bluealsa.h"
471  #include "ctl.h"
472  #include "utils.h"
473 -#include "shared/defs.h"
474 -#include "shared/log.h"
475 +#include <bluealsa/log.h>
476  
477  
478  /**
479 diff --git a/src/shared/ctl-client.c b/src/shared/ctl-client.c
480 index 121689d..01ceecb 100644
481 --- a/src/shared/ctl-client.c
482 +++ b/src/shared/ctl-client.c
483 @@ -8,7 +8,7 @@
484   *
485   */
486  
487 -#include "shared/ctl-client.h"
488 +#include <bluealsa/ctl-client.h>
489  
490  #include <errno.h>
491  #include <fcntl.h>
492 @@ -19,7 +19,7 @@
493  #include <sys/types.h>
494  #include <sys/un.h>
495  
496 -#include "shared/log.h"
497 +#include <bluealsa/log.h>
498  
499  
500  /**
501 diff --git a/src/shared/ffb.c b/src/shared/ffb.c
502 index b31d7d1..ab50f4a 100644
503 --- a/src/shared/ffb.c
504 +++ b/src/shared/ffb.c
505 @@ -8,7 +8,7 @@
506   *
507   */
508  
509 -#include "shared/ffb.h"
510 +#include "../../includes/bluealsa/ffb.h"
511  
512  
513  /**
514 diff --git a/src/shared/log.c b/src/shared/log.c
515 index 65f0fea..884540c 100644
516 --- a/src/shared/log.c
517 +++ b/src/shared/log.c
518 @@ -8,7 +8,7 @@
519   *
520   */
521  
522 -#include "shared/log.h"
523 +#include <bluealsa/log.h>
524  
525  #include <pthread.h>
526  #include <stdarg.h>
527 @@ -17,7 +17,7 @@
528  #include <string.h>
529  #include <syslog.h>
530  
531 -#include "shared/rt.h"
532 +#include <bluealsa/rt.h>
533  
534  
535  /* internal logging identifier */
536 diff --git a/src/shared/rt.c b/src/shared/rt.c
537 index edcbebc..40bd721 100644
538 --- a/src/shared/rt.c
539 +++ b/src/shared/rt.c
540 @@ -8,7 +8,7 @@
541   *
542   */
543  
544 -#include "shared/rt.h"
545 +#include <bluealsa/rt.h>
546  
547  #include <stdlib.h>
548  
549 diff --git a/src/transport.c b/src/transport.c
550 index aca8038..823316b 100644
551 --- a/src/transport.c
552 +++ b/src/transport.c
553 @@ -34,7 +34,7 @@
554  #include "io.h"
555  #include "rfcomm.h"
556  #include "utils.h"
557 -#include "shared/log.h"
558 +#include <bluealsa/log.h>
559  
560  
561  static const char *transport_type_to_string(enum ba_transport_type type) {
562 diff --git a/src/utils.c b/src/utils.c
563 index 70d069e..27459d2 100644
564 --- a/src/utils.c
565 +++ b/src/utils.c
566 @@ -24,7 +24,7 @@
567  
568  #include "a2dp-codecs.h"
569  #include "bluez.h"
570 -#include "shared/log.h"
571 +#include <bluealsa/log.h>
572  
573  
574  /**
575 diff --git a/test/Makefile.am b/test/Makefile.am
576 index 27a646a..3d67809 100644
577 --- a/test/Makefile.am
578 +++ b/test/Makefile.am
579 @@ -4,7 +4,8 @@
580  TESTS = \
581         test-at \
582         test-io \
583 -       test-utils
584 +       test-utils \
585 +       test-bluealsalib
586  
587  if ENABLE_TEST_PCM
588  TESTS += test-pcm
589 @@ -15,10 +16,12 @@ check_PROGRAMS = \
590         test-at \
591         test-io \
592         test-pcm \
593 -       test-utils
594 +       test-utils \
595 +       test-bluealsalib
596  
597  AM_CFLAGS = \
598         -I$(top_srcdir)/src \
599 +       -I$(top_srcdir)/includes \
600         @AAC_CFLAGS@ \
601         @ALSA_CFLAGS@ \
602         @APTX_CFLAGS@ \
603 @@ -40,4 +43,5 @@ LDADD = \
604         @GLIB2_LIBS@ \
605         @LDAC_ABR_LIBS@ \
606         @LDAC_LIBS@ \
607 -       @SBC_LIBS@
608 +       @SBC_LIBS@ \
609 +       ../src/bluealsalib/libbluealsa.la
610 diff --git a/test/server-mock.c b/test/server-mock.c
611 index a27b59d..418e3a0 100644
612 --- a/test/server-mock.c
613 +++ b/test/server-mock.c
614 @@ -33,9 +33,6 @@
615  #include "../src/rfcomm.c"
616  #include "../src/transport.c"
617  #include "../src/utils.c"
618 -#include "../src/shared/ffb.c"
619 -#include "../src/shared/log.c"
620 -#include "../src/shared/rt.c"
621  
622  static const a2dp_sbc_t cconfig = {
623         .frequency = SBC_SAMPLING_FREQ_44100,
624 diff --git a/test/test-at.c b/test/test-at.c
625 index 177cceb..8d5e2f3 100644
626 --- a/test/test-at.c
627 +++ b/test/test-at.c
628 @@ -11,7 +11,6 @@
629  #include <check.h>
630  
631  #include "../src/at.c"
632 -#include "../src/shared/log.c"
633  
634  START_TEST(test_at_build) {
635  
636 diff --git a/test/test-bluealsalib.c b/test/test-bluealsalib.c
637 new file mode 100644
638 index 0000000..d5fa3ff
639 --- /dev/null
640 +++ b/test/test-bluealsalib.c
641 @@ -0,0 +1,96 @@
642 +/*
643 + * test-bluealsalib.c
644 + * Copyright (c) 2018 Thierry Bultel
645 + *
646 + * This file is a part of bluez-alsa.
647 + *
648 + * This project is licensed under the terms of the MIT license.
649 + *
650 + */
651 +
652 +// TODO monitor all available interfaces
653 +const char * ba_interface = "hci0";
654 +
655 +#include <bluealsa/bluealsa.h>
656 +#include <bluealsa/log.h>
657 +#include <pthread.h>
658 +#include <errno.h>
659 +#include <poll.h>
660 +
661 +
662 +static void * monitor_thread_entry(void* arg) {
663 +       debug("...");
664 +
665 +       int ba_fd, ba_event_fd;
666 +       enum ba_event transport_mask = BA_EVENT_TRANSPORT_ADDED | BA_EVENT_TRANSPORT_CHANGED|BA_EVENT_TRANSPORT_REMOVED;
667 +
668 +       if ((ba_fd = bluealsa_open(ba_interface)) == -1) {
669 +               error("BlueALSA connection failed: %s", strerror(errno));
670 +               goto fail;
671 +       }
672 +
673 +       if ((ba_event_fd = bluealsa_open(ba_interface)) == -1) {
674 +               error("BlueALSA connection failed: %s", strerror(errno));
675 +               goto fail;
676 +       }
677 +
678 +       if (bluealsa_subscribe(ba_event_fd, transport_mask) == -1) {
679 +               error("BlueALSA subscription failed: %s", strerror(errno));
680 +               goto fail;
681 +       }
682 +
683 +goto init;
684 +
685 +       while (true) {
686 +
687 +               struct ba_msg_event event;
688 +               struct ba_msg_transport *transports;
689 +               ssize_t ret;
690 +               size_t i;
691 +
692 +               struct pollfd pfds[] = {{ ba_event_fd, POLLIN, 0 }};
693 +               if (poll(pfds, ARRAYSIZE(pfds), -1) == -1 && errno == EINTR)
694 +                       continue;
695 +
696 +               while ((ret = recv(ba_event_fd, &event, sizeof(event), MSG_DONTWAIT)) == -1 && errno == EINTR)
697 +                       continue;
698 +               if (ret != sizeof(event)) {
699 +                       error("Couldn't read event: %s", strerror(ret == -1 ? errno : EBADMSG));
700 +                       goto fail;
701 +               }
702 +
703 +init:
704 +               debug("Fetching available transports");
705 +               if ((ret = bluealsa_get_transports(ba_fd, &transports)) == -1) {
706 +                       error("Couldn't get transports: %s", strerror(errno));
707 +                       goto fail;
708 +               }
709 +
710 +               debug("Got %d transports", ret);
711 +
712 +               for (int ix=0; ix<ret; ix++) {
713 +                       char addr[18];
714 +                       struct ba_msg_transport * transport = &transports[ix];
715 +                       ba2str(&transport->addr, addr);
716 +                       info("Transport %d: type %d, dev %s", ix, transport->type, addr);
717 +               }
718 +
719 +       }
720 +
721 +fail:
722 +       info("exit");
723 +       return NULL;
724 +}
725 +
726 +int main(int argc, char * argv[]) {
727 +       printf("%s... !\n", argv[0]);
728 +
729 +       pthread_t monitor;
730 +       if (pthread_create(&monitor, NULL, monitor_thread_entry, NULL) == -1) {
731 +               debug("failed to create the monitor thread");
732 +               goto fail;
733 +       }
734 +       pthread_join(monitor, NULL);
735 +fail:
736 +       return 0;
737 +}
738 diff --git a/test/test-io.c b/test/test-io.c
739 index d913d2f..8ebb1d8 100644
740 --- a/test/test-io.c
741 +++ b/test/test-io.c
742 @@ -21,9 +21,6 @@
743  #include "../src/rfcomm.c"
744  #include "../src/transport.c"
745  #include "../src/utils.c"
746 -#include "../src/shared/ffb.c"
747 -#include "../src/shared/log.c"
748 -#include "../src/shared/rt.c"
749  
750  static const a2dp_sbc_t config_sbc_44100_stereo = {
751         .frequency = SBC_SAMPLING_FREQ_44100,
752 diff --git a/test/test-pcm.c b/test/test-pcm.c
753 index 1a4d02d..43e30e1 100644
754 --- a/test/test-pcm.c
755 +++ b/test/test-pcm.c
756 @@ -18,10 +18,10 @@
757  #include <check.h>
758  #include <alsa/asoundlib.h>
759  
760 +#include <bluealsa/log.h>
761 +
762  #include "inc/server.inc"
763  #include "inc/sine.inc"
764 -#include "../src/shared/ffb.c"
765 -#include "../src/shared/log.c"
766  
767  #define buffer_test_frames 1024
768  #define dumprv(fn) fprintf(stderr, #fn " = %d\n", (int)fn)
769 diff --git a/test/test-utils.c b/test/test-utils.c
770 index 767ca4e..98b5b42 100644
771 --- a/test/test-utils.c
772 +++ b/test/test-utils.c
773 @@ -10,11 +10,11 @@
774  
775  #include <check.h>
776  
777 +#include <bluealsa/defs.h>
778 +#include <bluealsa/ffb.h>
779 +#include <bluealsa/rt.h>
780 +
781  #include "../src/utils.c"
782 -#include "../src/shared/defs.h"
783 -#include "../src/shared/ffb.c"
784 -#include "../src/shared/log.c"
785 -#include "../src/shared/rt.c"
786  
787  START_TEST(test_dbus_profile_object_path) {
788  
789 diff --git a/utils/Makefile.am b/utils/Makefile.am
790 index 256689a..a6d132c 100644
791 --- a/utils/Makefile.am
792 +++ b/utils/Makefile.am
793 @@ -6,32 +6,31 @@ bin_PROGRAMS =
794  if ENABLE_APLAY
795  bin_PROGRAMS += bluealsa-aplay
796  bluealsa_aplay_SOURCES = \
797 -       ../src/shared/ctl-client.c \
798 -       ../src/shared/ffb.c \
799 -       ../src/shared/log.c \
800         aplay.c
801  bluealsa_aplay_CFLAGS = \
802         -I$(top_srcdir)/src \
803 +       -I$(top_srcdir)/includes \
804         @ALSA_CFLAGS@ \
805         @BLUEZ_CFLAGS@ \
806         @GIO2_CFLAGS@
807  bluealsa_aplay_LDADD = \
808         @ALSA_LIBS@ \
809         @BLUEZ_LIBS@ \
810 -       @GIO2_LIBS@
811 +       @GIO2_LIBS@ \
812 +       ../src/bluealsalib/libbluealsa.la
813  endif
814  
815  if ENABLE_RFCOMM
816  bin_PROGRAMS += bluealsa-rfcomm
817  bluealsa_rfcomm_SOURCES = \
818 -       ../src/shared/ctl-client.c \
819 -       ../src/shared/log.c \
820         rfcomm.c
821  bluealsa_rfcomm_CFLAGS = \
822         -I$(top_srcdir)/src \
823 +       -I$(top_srcdir)/includes \
824         @BLUEZ_CFLAGS@
825  bluealsa_rfcomm_LDADD = \
826         @BLUEZ_LIBS@ \
827 +       ../src/bluealsalib/libbluealsa.la \
828         -lreadline
829  endif
830  
831 diff --git a/utils/aplay.c b/utils/aplay.c
832 index 7b71860..5211e7f 100644
833 --- a/utils/aplay.c
834 +++ b/utils/aplay.c
835 @@ -25,10 +25,10 @@
836  #include <alsa/asoundlib.h>
837  #include <gio/gio.h>
838  
839 -#include "shared/ctl-client.h"
840 -#include "shared/defs.h"
841 -#include "shared/ffb.h"
842 -#include "shared/log.h"
843 +#include <bluealsa/ctl-client.h>
844 +#include <bluealsa/defs.h>
845 +#include <bluealsa/ffb.h>
846 +#include <bluealsa/log.h>
847  
848  struct pcm_worker {
849         struct ba_msg_transport transport;
850 diff --git a/utils/rfcomm.c b/utils/rfcomm.c
851 index 6794fc4..f5f045c 100644
852 --- a/utils/rfcomm.c
853 +++ b/utils/rfcomm.c
854 @@ -24,8 +24,8 @@
855  #include <readline/readline.h>
856  #include <readline/history.h>
857  
858 -#include "shared/ctl-client.h"
859 -#include "shared/log.h"
860 +#include <bluealsa/ctl-client.h>
861 +#include <bluealsa/log.h>
862  
863  static char *strtrim(char *str) {
864         while (isspace(*str))
865 -- 
866 2.16.4
867