[PATCH] network-manager-applet Add rules for BlueZ 5 support



From BlueZ 5.0 , dbus API org.bluez.Serial has been removed and others have changed.
So add option "--disable-bluez5" for applet to get bluetooth DUN (Dial-Up Networking)
support on BlueZ 4.X and remove it when using BlueZ 5.x.(Default is disable Bluez 5)

Signed-off-by: Cho, Yu-Chen <acho suse com>
---
 configure.ac                        | 14 ++++++++++++++
 src/gnome-bluetooth/bt-widget.c     |  6 ++++++
 src/gnome-bluetooth/nma-bt-device.c |  8 ++++++++
 3 files changed, 28 insertions(+)

diff --git a/configure.ac b/configure.ac
index d6ca9e6..857f0ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -128,6 +128,20 @@ AC_SUBST(GTK_CFLAGS)
 AC_SUBST(GTK_LIBS)
 GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4"
 
+
+#### BlueZ 5 support ####
+
+AC_ARG_WITH([bluz5],
+            AS_HELP_STRING([--enable-bluez5|--disable-bluez5], [Enable Bluez 5 support]),
+            enable_bluez5="$withval")
+
+if (test "x$enable_bluez5" == "xyes");then
+    AC_DEFINE([HAVE_BLUEZ_5], 1, [Enable blueZ 5 support])
+else
+    AC_DEFINE([HAVE_BLUEZ_5], 0, [Disable blueZ 5 support])
+fi
+AC_SUBST(HAVE_BLUEZ5)
+
 dnl Check for gnome-bluetooth
 AC_ARG_WITH([bluetooth],
            AS_HELP_STRING([--with-bluetooth|--without-bluetooth], [Enable Bluetooth support]),
diff --git a/src/gnome-bluetooth/bt-widget.c b/src/gnome-bluetooth/bt-widget.c
index 3195d6f..1553582 100644
--- a/src/gnome-bluetooth/bt-widget.c
+++ b/src/gnome-bluetooth/bt-widget.c
@@ -108,8 +108,10 @@ get_capabilities (const char *bdaddr,
                g_message ("has_config_widget %s %s", bdaddr, uuids[i]);
                if (g_str_equal (uuids[i], "NAP"))
                        *pan = TRUE;
+#if HAVE_BLUEZ_5 == 0
                if (g_str_equal (uuids[i], "DialupNetworking"))
                        *dun = TRUE;
+#endif
        }
 }
 
@@ -170,6 +172,7 @@ pan_button_toggled (GtkToggleButton *button, WidgetInfo *info)
        nma_bt_device_set_pan_enabled (info->device, gtk_toggle_button_get_active (button));
 }
 
+#if HAVE_BLUEZ_5 == 0
 static void
 dun_button_toggled (GtkToggleButton *button, WidgetInfo *info)
 {
@@ -184,6 +187,7 @@ dun_button_toggled (GtkToggleButton *button, WidgetInfo *info)
 
        nma_bt_device_set_dun_enabled (info->device, gtk_toggle_button_get_active (button));
 }
+#endif
 
 static void
 widget_info_destroy (gpointer data)
@@ -446,6 +450,7 @@ get_config_widgets (const char *bdaddr, const char **uuids)
                gtk_widget_set_sensitive (info->pan_button, !busy);
        }
 
+#if HAVE_BLUEZ_5 == 0
        if (dun) {
                info->dun_button = gtk_check_button_new_with_label (_("Access the Internet using your mobile 
phone (DUN)"));
                gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (info->dun_button),
@@ -454,6 +459,7 @@ get_config_widgets (const char *bdaddr, const char **uuids)
                gtk_box_pack_start (GTK_BOX (vbox), info->dun_button, FALSE, TRUE, 6);
                set_dun_button_sensitive (info, !busy);
        }
+#endif
 
        hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
        gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6);
diff --git a/src/gnome-bluetooth/nma-bt-device.c b/src/gnome-bluetooth/nma-bt-device.c
index 3a33dce..a42f066 100644
--- a/src/gnome-bluetooth/nma-bt-device.c
+++ b/src/gnome-bluetooth/nma-bt-device.c
@@ -108,11 +108,19 @@ static void _set_dun_enabled (NmaBtDevice *device, gboolean enabled);
 
 #define BLUEZ_SERVICE           "org.bluez"
 #define BLUEZ_MANAGER_PATH      "/"
+
+#if HAVE_BLUEZ_5 == 1
+#define BLUEZ_ADAPTER_INTERFACE "org.bluez.Adapter1"
+#define BLUEZ_DEVICE_INTERFACE  "org.bluez.Device1"
+#define BLUEZ_NETWORK_INTERFACE "org.bluez.Network1"
+#define BLUEZ_SERIAL_INTERFACE  ""
+#else
 #define BLUEZ_MANAGER_INTERFACE "org.bluez.Manager"
 #define BLUEZ_ADAPTER_INTERFACE "org.bluez.Adapter"
 #define BLUEZ_DEVICE_INTERFACE  "org.bluez.Device"
 #define BLUEZ_SERIAL_INTERFACE  "org.bluez.Serial"
 #define BLUEZ_NETWORK_INTERFACE "org.bluez.Network"
+#endif
 
 #define MM_SERVICE         "org.freedesktop.ModemManager"
 #define MM_PATH            "/org/freedesktop/ModemManager"
-- 
1.8.4.5



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]