diff options
Diffstat (limited to 'meta-agl-devel/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0003-dbus-request-a-name-on-startup.patch')
-rw-r--r-- | meta-agl-devel/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0003-dbus-request-a-name-on-startup.patch | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/meta-agl-devel/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0003-dbus-request-a-name-on-startup.patch b/meta-agl-devel/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0003-dbus-request-a-name-on-startup.patch deleted file mode 100644 index 1ef59296..00000000 --- a/meta-agl-devel/ATTIC/meta-audio-4a-framework/recipes-connectivity/bluez-alsa/bluez-alsa/0003-dbus-request-a-name-on-startup.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 4c14fffbd20a6dd9e6ceca1eb1726ceaafab7410 Mon Sep 17 00:00:00 2001 -From: Thierry Bultel <thierry.bultel@iot.bzh> -Date: Fri, 18 Jan 2019 11:45:29 +0100 -Subject: [PATCH 3/3] dbus: request a name on startup - -When the service thread is ready, ask a name to dbus -The advantage of doing that is that client applications -can check dbus for bluez-alsa presence, without having -to implement any kinf of polling logic. Also, this -way, they can be notified on the service exit, to -perform any needed cleanup. -Since there must be an instance of bluealsa daemon -per hci device, the dbus name will be -'org.bluez-alsa.hci0', 'org.bluez-alsa.hci1' ... -and so on. - -Signed-off-by: Thierry Bultel <thierry.bultel@iot.bzh> ---- - configure.ac | 10 ++++++++++ - src/Makefile.am | 3 +++ - src/bluez-alsa.conf | 14 ++++++++++++++ - src/main.c | 32 ++++++++++++++++++++++++++++++++ - 4 files changed, 59 insertions(+) - create mode 100644 src/bluez-alsa.conf - -diff --git a/configure.ac b/configure.ac -index 6323d60..d4ec7d4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -130,6 +130,16 @@ AC_ARG_WITH([alsaconfdir], - [alsaconfdir="$sysconfdir/alsa/conf.d"], - [alsaconfdir="$datadir/alsa/alsa.conf.d"])]) - -+AC_ARG_WITH(dbusconfdir, AC_HELP_STRING([--with-dbusconfdir=PATH], -+ [path to D-Bus config directory]), [path_dbusconf=${withval}], -+ [path_dbusconf="`$PKG_CONFIG --variable=sysconfdir dbus-1`"]) -+if (test -z "${path_dbusconf}"); then -+ DBUS_CONFDIR="${sysconfdir}/dbus-1/system.d" -+else -+ DBUS_CONFDIR="${path_dbusconf}/dbus-1/system.d" -+fi -+AC_SUBST(DBUS_CONFDIR) -+ - test "x$prefix" = xNONE && prefix=$ac_default_prefix - test "x$exec_prefix" = xNONE && exec_prefix=$prefix - -diff --git a/src/Makefile.am b/src/Makefile.am -index 5626ae5..c501f2e 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -23,6 +23,9 @@ bluealsa_SOURCES += \ - ofono-iface.c - endif - -+dbusconfdir = @DBUS_CONFDIR@ -+dist_dbusconf_DATA = bluez-alsa.conf -+ - AM_CFLAGS = \ - @BLUEZ_CFLAGS@ \ - @GLIB2_CFLAGS@ \ -diff --git a/src/bluez-alsa.conf b/src/bluez-alsa.conf -new file mode 100644 -index 0000000..6b999d6 ---- /dev/null -+++ b/src/bluez-alsa.conf -@@ -0,0 +1,14 @@ -+<!-- This configuration file specifies the required security policies -+ for bluez-alsa core daemon to work. --> -+ -+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" -+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> -+<busconfig> -+ -+ <!-- ../system.conf have denied everything, so we just punch some holes --> -+ -+ <policy user="root"> -+ <allow own_prefix="org.bluez-alsa"/> -+ </policy> -+ -+</busconfig> -diff --git a/src/main.c b/src/main.c -index 9cef402..9183978 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -12,6 +12,7 @@ - # include "config.h" - #endif - -+#define _GNU_SOURCE - #include <errno.h> - #include <getopt.h> - #include <signal.h> -@@ -58,6 +59,20 @@ static char *get_a2dp_codecs( - return g_strjoinv(", ", (char **)tmp); - } - -+static void name_acquired_handler( -+ GDBusConnection *connection, -+ const gchar *name, -+ gpointer user_data) { -+ debug("Acquired name: %s", name); -+} -+ -+static void name_lost_handler( -+ GDBusConnection *connection, -+ const gchar *name, -+ gpointer user_data) { -+ debug("Lost name: %s", name); -+} -+ - static GMainLoop *loop = NULL; - static void main_loop_stop(int sig) { - /* Call to this handler restores the default action, so on the -@@ -318,6 +333,7 @@ int main(int argc, char **argv) { - GError *err; - - err = NULL; -+ - address = g_dbus_address_get_for_bus_sync(G_BUS_TYPE_SYSTEM, NULL, NULL); - if ((config.dbus = g_dbus_connection_new_for_address_sync(address, - G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | -@@ -336,6 +352,19 @@ int main(int argc, char **argv) { - ofono_register(); - #endif - -+ char * name_on_bus = NULL; -+ asprintf(&name_on_bus, "org.bluez-alsa.%s", config.hci_dev.name); -+ -+ guint g_dbusid; -+ g_dbusid = g_bus_own_name_on_connection(config.dbus, -+ name_on_bus, -+ G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT | -+ G_BUS_NAME_OWNER_FLAGS_REPLACE, -+ name_acquired_handler, -+ name_lost_handler, -+ NULL, -+ NULL); -+ - /* In order to receive EPIPE while writing to the pipe whose reading end - * is closed, the SIGPIPE signal has to be handled. For more information - * see the io_thread_write_pcm() function. */ -@@ -359,5 +388,8 @@ int main(int argc, char **argv) { - bluealsa_ctl_free(); - bluealsa_config_free(); - -+ g_bus_unown_name (g_dbusid); -+ free(name_on_bus); -+ - return EXIT_SUCCESS; - } --- -2.16.4 - |