bluez: use NMSettings directly instead of NMConnectionProvider

This commit is contained in:
Thomas Haller 2016-05-16 18:08:08 +02:00
parent 6e54057bf7
commit b9b18c8a86
10 changed files with 77 additions and 70 deletions

View file

@ -28,6 +28,7 @@
#include "nm-bt-error.h" #include "nm-bt-error.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-bluez-device.h" #include "nm-bluez-device.h"
#include "nm-settings.h"
#include "nm-settings-connection.h" #include "nm-settings-connection.h"
#include "NetworkManagerUtils.h" #include "NetworkManagerUtils.h"
@ -67,7 +68,7 @@ typedef struct {
NMBluez5DunContext *b5_dun_context; NMBluez5DunContext *b5_dun_context;
#endif #endif
NMConnectionProvider *provider; NMSettings *settings;
GSList *connections; GSList *connections;
NMConnection *pan_connection; NMConnection *pan_connection;
@ -96,7 +97,7 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 }; static guint signals[LAST_SIGNAL] = { 0 };
static void cp_connection_added (NMConnectionProvider *provider, static void cp_connection_added (NMSettings *settings,
NMConnection *connection, NMBluezDevice *self); NMConnection *connection, NMBluezDevice *self);
static gboolean connection_compatible (NMBluezDevice *self, NMConnection *connection); static gboolean connection_compatible (NMBluezDevice *self, NMConnection *connection);
@ -233,9 +234,9 @@ pan_connection_check_create (NMBluezDevice *self)
/* Adding a new connection raises a signal which eventually calls check_emit_usable (again) /* Adding a new connection raises a signal which eventually calls check_emit_usable (again)
* which then already finds the suitable connection in priv->connections. This is confusing, * which then already finds the suitable connection in priv->connections. This is confusing,
* so block the signal. check_emit_usable will succeed after this function call returns. */ * so block the signal. check_emit_usable will succeed after this function call returns. */
g_signal_handlers_block_by_func (priv->provider, cp_connection_added, self); g_signal_handlers_block_by_func (priv->settings, cp_connection_added, self);
added = nm_connection_provider_add_connection (priv->provider, connection, FALSE, &error); added = NM_CONNECTION (nm_settings_add_connection (priv->settings, connection, FALSE, &error));
g_signal_handlers_unblock_by_func (priv->provider, cp_connection_added, self); g_signal_handlers_unblock_by_func (priv->settings, cp_connection_added, self);
if (added) { if (added) {
g_assert (!g_slist_find (priv->connections, added)); g_assert (!g_slist_find (priv->connections, added));
@ -367,7 +368,7 @@ _internal_track_connection (NMBluezDevice *self, NMConnection *connection, gbool
} }
static void static void
cp_connection_added (NMConnectionProvider *provider, cp_connection_added (NMSettings *settings,
NMConnection *connection, NMConnection *connection,
NMBluezDevice *self) NMBluezDevice *self)
{ {
@ -378,7 +379,7 @@ cp_connection_added (NMConnectionProvider *provider,
} }
static void static void
cp_connection_removed (NMConnectionProvider *provider, cp_connection_removed (NMSettings *settings,
NMConnection *connection, NMConnection *connection,
NMBluezDevice *self) NMBluezDevice *self)
{ {
@ -387,8 +388,9 @@ cp_connection_removed (NMConnectionProvider *provider,
} }
static void static void
cp_connection_updated (NMConnectionProvider *provider, cp_connection_updated (NMSettings *settings,
NMConnection *connection, NMConnection *connection,
gboolean by_user,
NMBluezDevice *self) NMBluezDevice *self)
{ {
if (_internal_track_connection (self, connection, if (_internal_track_connection (self, connection,
@ -400,12 +402,13 @@ static void
load_connections (NMBluezDevice *self) load_connections (NMBluezDevice *self)
{ {
NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
const GSList *connections, *iter; NMSettingsConnection *const*connections;
guint i;
gboolean changed = FALSE; gboolean changed = FALSE;
connections = nm_connection_provider_get_connections (priv->provider); connections = nm_settings_get_connections (priv->settings, NULL);
for (iter = connections; iter; iter = g_slist_next (iter)) { for (i = 0; connections[i]; i++) {
NMConnection *connection = iter->data; NMConnection *connection = (NMConnection *) connections[i];
if (connection_compatible (self, connection)) if (connection_compatible (self, connection))
changed |= _internal_track_connection (self, connection, TRUE); changed |= _internal_track_connection (self, connection, TRUE);
@ -1029,7 +1032,7 @@ on_bus_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self)
NMBluezDevice * NMBluezDevice *
nm_bluez_device_new (const char *path, nm_bluez_device_new (const char *path,
const char *adapter_address, const char *adapter_address,
NMConnectionProvider *provider, NMSettings *settings,
int bluez_version) int bluez_version)
{ {
NMBluezDevice *self; NMBluezDevice *self;
@ -1037,7 +1040,7 @@ nm_bluez_device_new (const char *path,
const char *interface_name = NULL; const char *interface_name = NULL;
g_return_val_if_fail (path != NULL, NULL); g_return_val_if_fail (path != NULL, NULL);
g_return_val_if_fail (NM_IS_CONNECTION_PROVIDER (provider), NULL); g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
g_return_val_if_fail (bluez_version == 4 || bluez_version == 5, NULL); g_return_val_if_fail (bluez_version == 4 || bluez_version == 5, NULL);
self = (NMBluezDevice *) g_object_new (NM_TYPE_BLUEZ_DEVICE, self = (NMBluezDevice *) g_object_new (NM_TYPE_BLUEZ_DEVICE,
@ -1051,14 +1054,14 @@ nm_bluez_device_new (const char *path,
priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self);
priv->bluez_version = bluez_version; priv->bluez_version = bluez_version;
priv->provider = g_object_ref (provider); priv->settings = g_object_ref (settings);
g_return_val_if_fail (bluez_version == 5 || (bluez_version == 4 && adapter_address), NULL); g_return_val_if_fail (bluez_version == 5 || (bluez_version == 4 && adapter_address), NULL);
if (adapter_address) if (adapter_address)
set_adapter_address (self, adapter_address); set_adapter_address (self, adapter_address);
g_signal_connect (priv->provider, NM_CP_SIGNAL_CONNECTION_ADDED, G_CALLBACK (cp_connection_added), self); g_signal_connect (priv->settings, NM_SETTINGS_SIGNAL_CONNECTION_ADDED, G_CALLBACK (cp_connection_added), self);
g_signal_connect (priv->provider, NM_CP_SIGNAL_CONNECTION_REMOVED, G_CALLBACK (cp_connection_removed), self); g_signal_connect (priv->settings, NM_SETTINGS_SIGNAL_CONNECTION_REMOVED, G_CALLBACK (cp_connection_removed), self);
g_signal_connect (priv->provider, NM_CP_SIGNAL_CONNECTION_UPDATED, G_CALLBACK (cp_connection_updated), self); g_signal_connect (priv->settings, NM_SETTINGS_SIGNAL_CONNECTION_UPDATED, G_CALLBACK (cp_connection_updated), self);
g_bus_get (G_BUS_TYPE_SYSTEM, g_bus_get (G_BUS_TYPE_SYSTEM,
NULL, NULL,
@ -1116,10 +1119,10 @@ dispose (GObject *object)
} }
#endif #endif
if (priv->provider) { if (priv->settings) {
g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_added, self); g_signal_handlers_disconnect_by_func (priv->settings, cp_connection_added, self);
g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_removed, self); g_signal_handlers_disconnect_by_func (priv->settings, cp_connection_removed, self);
g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_updated, self); g_signal_handlers_disconnect_by_func (priv->settings, cp_connection_updated, self);
} }
g_slist_free_full (priv->connections, g_object_unref); g_slist_free_full (priv->connections, g_object_unref);
@ -1137,7 +1140,7 @@ dispose (GObject *object)
g_object_unref (to_delete); g_object_unref (to_delete);
} }
g_clear_object (&priv->provider); g_clear_object (&priv->settings);
} }
static void static void

View file

@ -22,7 +22,6 @@
#define __NETWORKMANAGER_BLUEZ_DEVICE_H__ #define __NETWORKMANAGER_BLUEZ_DEVICE_H__
#include "nm-connection.h" #include "nm-connection.h"
#include "nm-connection-provider.h"
#define NM_TYPE_BLUEZ_DEVICE (nm_bluez_device_get_type ()) #define NM_TYPE_BLUEZ_DEVICE (nm_bluez_device_get_type ())
#define NM_BLUEZ_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_DEVICE, NMBluezDevice)) #define NM_BLUEZ_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_DEVICE, NMBluezDevice))
@ -59,7 +58,7 @@ GType nm_bluez_device_get_type (void);
NMBluezDevice *nm_bluez_device_new (const char *path, NMBluezDevice *nm_bluez_device_new (const char *path,
const char *adapter_address, const char *adapter_address,
NMConnectionProvider *provider, NMSettings *settings,
int bluez_version); int bluez_version);
const char *nm_bluez_device_get_path (NMBluezDevice *self); const char *nm_bluez_device_get_path (NMBluezDevice *self);

View file

@ -20,19 +20,20 @@
#include "nm-default.h" #include "nm-default.h"
#include "nm-bluez-manager.h"
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <gmodule.h> #include <gmodule.h>
#include "nm-bluez-manager.h"
#include "nm-device-factory.h" #include "nm-device-factory.h"
#include "nm-setting-bluetooth.h" #include "nm-setting-bluetooth.h"
#include "nm-settings.h"
#include "nm-bluez4-manager.h" #include "nm-bluez4-manager.h"
#include "nm-bluez5-manager.h" #include "nm-bluez5-manager.h"
#include "nm-bluez-device.h" #include "nm-bluez-device.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-connection-provider.h"
#include "nm-device-bt.h" #include "nm-device-bt.h"
#include "nm-core-internal.h" #include "nm-core-internal.h"
#include "nm-platform.h" #include "nm-platform.h"
@ -51,7 +52,7 @@
typedef struct { typedef struct {
int bluez_version; int bluez_version;
NMConnectionProvider *provider; NMSettings *settings;
NMBluez4Manager *manager4; NMBluez4Manager *manager4;
NMBluez5Manager *manager5; NMBluez5Manager *manager5;
@ -190,7 +191,7 @@ setup_bluez4 (NMBluezManager *self)
g_return_if_fail (!priv->manager4 && !priv->manager5 && !priv->bluez_version); g_return_if_fail (!priv->manager4 && !priv->manager5 && !priv->bluez_version);
setup_version_number (self, 4); setup_version_number (self, 4);
priv->manager4 = manager = nm_bluez4_manager_new (priv->provider); priv->manager4 = manager = nm_bluez4_manager_new (priv->settings);
g_signal_connect (manager, g_signal_connect (manager,
NM_BLUEZ_MANAGER_BDADDR_ADDED, NM_BLUEZ_MANAGER_BDADDR_ADDED,
@ -209,7 +210,7 @@ setup_bluez5 (NMBluezManager *self)
g_return_if_fail (!priv->manager4 && !priv->manager5 && !priv->bluez_version); g_return_if_fail (!priv->manager4 && !priv->manager5 && !priv->bluez_version);
setup_version_number (self, 5); setup_version_number (self, 5);
priv->manager5 = manager = nm_bluez5_manager_new (priv->provider); priv->manager5 = manager = nm_bluez5_manager_new (priv->settings);
g_signal_connect (manager, g_signal_connect (manager,
NM_BLUEZ_MANAGER_BDADDR_ADDED, NM_BLUEZ_MANAGER_BDADDR_ADDED,
@ -407,9 +408,9 @@ dispose (GObject *object)
priv->bluez_version = 0; priv->bluez_version = 0;
g_clear_object (&priv->provider);
G_OBJECT_CLASS (nm_bluez_manager_parent_class)->dispose (object); G_OBJECT_CLASS (nm_bluez_manager_parent_class)->dispose (object);
g_clear_object (&priv->settings);
} }
static void static void
@ -417,7 +418,7 @@ nm_bluez_manager_init (NMBluezManager *self)
{ {
NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self);
priv->provider = g_object_ref (nm_connection_provider_get ()); priv->settings = g_object_ref (NM_SETTINGS_GET);
} }
static NMDevice * static NMDevice *

View file

@ -22,10 +22,6 @@
#ifndef __NETWORKMANAGER_BLUEZ_MANAGER_H__ #ifndef __NETWORKMANAGER_BLUEZ_MANAGER_H__
#define __NETWORKMANAGER_BLUEZ_MANAGER_H__ #define __NETWORKMANAGER_BLUEZ_MANAGER_H__
#include "nm-default.h"
G_BEGIN_DECLS
#define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ()) #define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ())
#define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager)) #define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager))

View file

@ -20,13 +20,15 @@
#include "nm-default.h" #include "nm-default.h"
#include "nm-bluez4-adapter.h"
#include <string.h> #include <string.h>
#include "nm-dbus-interface.h" #include "nm-dbus-interface.h"
#include "nm-bluez4-adapter.h"
#include "nm-bluez-device.h" #include "nm-bluez-device.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-core-internal.h" #include "nm-core-internal.h"
#include "nm-settings.h"
G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT) G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT)
@ -41,7 +43,7 @@ typedef struct {
GHashTable *devices; GHashTable *devices;
/* Cached for devices */ /* Cached for devices */
NMConnectionProvider *provider; NMSettings *settings;
} NMBluez4AdapterPrivate; } NMBluez4AdapterPrivate;
@ -160,7 +162,7 @@ device_created (GDBusProxy *proxy, const char *path, gpointer user_data)
NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self); NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self);
NMBluezDevice *device; NMBluezDevice *device;
device = nm_bluez_device_new (path, priv->address, priv->provider, 4); device = nm_bluez_device_new (path, priv->address, priv->settings, 4);
g_signal_connect (device, "initialized", G_CALLBACK (device_initialized), self); g_signal_connect (device, "initialized", G_CALLBACK (device_initialized), self);
g_signal_connect (device, "notify::usable", G_CALLBACK (device_usable), self); g_signal_connect (device, "notify::usable", G_CALLBACK (device_usable), self);
g_hash_table_insert (priv->devices, (gpointer) nm_bluez_device_get_path (device), device); g_hash_table_insert (priv->devices, (gpointer) nm_bluez_device_get_path (device), device);
@ -234,17 +236,19 @@ query_properties (NMBluez4Adapter *self)
/***********************************************************/ /***********************************************************/
NMBluez4Adapter * NMBluez4Adapter *
nm_bluez4_adapter_new (const char *path, NMConnectionProvider *provider) nm_bluez4_adapter_new (const char *path, NMSettings *settings)
{ {
NMBluez4Adapter *self; NMBluez4Adapter *self;
NMBluez4AdapterPrivate *priv; NMBluez4AdapterPrivate *priv;
g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
self = (NMBluez4Adapter *) g_object_new (NM_TYPE_BLUEZ4_ADAPTER, self = (NMBluez4Adapter *) g_object_new (NM_TYPE_BLUEZ4_ADAPTER,
NM_BLUEZ4_ADAPTER_PATH, path, NM_BLUEZ4_ADAPTER_PATH, path,
NULL); NULL);
priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self); priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self);
priv->provider = provider; priv->settings = g_object_ref (settings);
priv->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, priv->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
@ -301,6 +305,8 @@ finalize (GObject *object)
g_object_unref (priv->proxy); g_object_unref (priv->proxy);
G_OBJECT_CLASS (nm_bluez4_adapter_parent_class)->finalize (object); G_OBJECT_CLASS (nm_bluez4_adapter_parent_class)->finalize (object);
g_object_unref (priv->settings);
} }
static void static void

View file

@ -21,10 +21,7 @@
#ifndef __NETWORKMANAGER_BLUEZ4_ADAPTER_H__ #ifndef __NETWORKMANAGER_BLUEZ4_ADAPTER_H__
#define __NETWORKMANAGER_BLUEZ4_ADAPTER_H__ #define __NETWORKMANAGER_BLUEZ4_ADAPTER_H__
#include "nm-default.h"
#include "nm-bluez-device.h" #include "nm-bluez-device.h"
#include "nm-connection-provider.h"
#define NM_TYPE_BLUEZ4_ADAPTER (nm_bluez4_adapter_get_type ()) #define NM_TYPE_BLUEZ4_ADAPTER (nm_bluez4_adapter_get_type ())
#define NM_BLUEZ4_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ4_ADAPTER, NMBluez4Adapter)) #define NM_BLUEZ4_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ4_ADAPTER, NMBluez4Adapter))
@ -54,7 +51,7 @@ typedef struct {
GType nm_bluez4_adapter_get_type (void); GType nm_bluez4_adapter_get_type (void);
NMBluez4Adapter *nm_bluez4_adapter_new (const char *path, NMBluez4Adapter *nm_bluez4_adapter_new (const char *path,
NMConnectionProvider *provider); NMSettings *settings);
const char *nm_bluez4_adapter_get_path (NMBluez4Adapter *self); const char *nm_bluez4_adapter_get_path (NMBluez4Adapter *self);

View file

@ -21,20 +21,22 @@
#include "nm-default.h" #include "nm-default.h"
#include "nm-bluez4-manager.h"
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include "nm-bluez-manager.h"
#include "nm-bluez4-manager.h"
#include "nm-bluez4-adapter.h" #include "nm-bluez4-adapter.h"
#include "nm-bluez-manager.h"
#include "nm-bluez-common.h" #include "nm-bluez-common.h"
#include "nm-core-internal.h" #include "nm-core-internal.h"
#include "nm-settings.h"
typedef struct { typedef struct {
gulong name_owner_changed_id; gulong name_owner_changed_id;
NMConnectionProvider *provider; NMSettings *settings;
GDBusProxy *proxy; GDBusProxy *proxy;
@ -155,7 +157,7 @@ default_adapter_changed (GDBusProxy *proxy, const char *path, NMBluez4Manager *s
/* Add the new default adapter */ /* Add the new default adapter */
if (path) { if (path) {
priv->adapter = nm_bluez4_adapter_new (path, priv->provider); priv->adapter = nm_bluez4_adapter_new (path, priv->settings);
g_signal_connect (priv->adapter, "initialized", G_CALLBACK (adapter_initialized), self); g_signal_connect (priv->adapter, "initialized", G_CALLBACK (adapter_initialized), self);
} }
} }
@ -223,12 +225,14 @@ name_owner_changed_cb (GObject *object,
/****************************************************************/ /****************************************************************/
NMBluez4Manager * NMBluez4Manager *
nm_bluez4_manager_new (NMConnectionProvider *provider) nm_bluez4_manager_new (NMSettings *settings)
{ {
NMBluez4Manager *instance; NMBluez4Manager *instance;
g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL); instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL);
NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->provider = provider; NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings);
return instance; return instance;
} }
@ -264,6 +268,8 @@ dispose (GObject *object)
g_clear_object (&priv->adapter); g_clear_object (&priv->adapter);
G_OBJECT_CLASS (nm_bluez4_manager_parent_class)->dispose (object); G_OBJECT_CLASS (nm_bluez4_manager_parent_class)->dispose (object);
g_clear_object (&priv->settings);
} }
static void static void

View file

@ -1,4 +1,3 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
/* NetworkManager -- Network link manager /* NetworkManager -- Network link manager
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -23,7 +22,6 @@
#define __NETWORKMANAGER_BLUEZ4_MANAGER_H__ #define __NETWORKMANAGER_BLUEZ4_MANAGER_H__
#include "nm-default.h" #include "nm-default.h"
#include "nm-connection-provider.h"
G_BEGIN_DECLS G_BEGIN_DECLS
@ -51,7 +49,7 @@ typedef struct {
GType nm_bluez4_manager_get_type (void); GType nm_bluez4_manager_get_type (void);
NMBluez4Manager *nm_bluez4_manager_new (NMConnectionProvider *provider); NMBluez4Manager *nm_bluez4_manager_new (NMSettings *settings);
void nm_bluez4_manager_query_devices (NMBluez4Manager *manager); void nm_bluez4_manager_query_devices (NMBluez4Manager *manager);

View file

@ -22,19 +22,21 @@
#include "nm-default.h" #include "nm-default.h"
#include "nm-bluez5-manager.h"
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include "nm-bluez-manager.h"
#include "nm-bluez5-manager.h"
#include "nm-bluez-device.h"
#include "nm-bluez-common.h"
#include "nm-core-internal.h" #include "nm-core-internal.h"
#include "nm-bluez-manager.h"
#include "nm-bluez-device.h"
#include "nm-bluez-common.h"
#include "nm-settings.h"
typedef struct { typedef struct {
NMConnectionProvider *provider; NMSettings *settings;
GDBusProxy *proxy; GDBusProxy *proxy;
@ -140,7 +142,7 @@ device_added (GDBusProxy *proxy, const gchar *path, NMBluez5Manager *self)
NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self); NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self);
NMBluezDevice *device; NMBluezDevice *device;
device = nm_bluez_device_new (path, NULL, priv->provider, 5); device = nm_bluez_device_new (path, NULL, priv->settings, 5);
g_signal_connect (device, "initialized", G_CALLBACK (device_initialized), self); g_signal_connect (device, "initialized", G_CALLBACK (device_initialized), self);
g_signal_connect (device, "notify::usable", G_CALLBACK (device_usable), self); g_signal_connect (device, "notify::usable", G_CALLBACK (device_usable), self);
g_hash_table_insert (priv->devices, (gpointer) nm_bluez_device_get_path (device), device); g_hash_table_insert (priv->devices, (gpointer) nm_bluez_device_get_path (device), device);
@ -309,12 +311,14 @@ bluez_cleanup (NMBluez5Manager *self, gboolean do_signal)
/****************************************************************/ /****************************************************************/
NMBluez5Manager * NMBluez5Manager *
nm_bluez5_manager_new (NMConnectionProvider *provider) nm_bluez5_manager_new (NMSettings *settings)
{ {
NMBluez5Manager *instance = NULL; NMBluez5Manager *instance = NULL;
g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL);
instance = g_object_new (NM_TYPE_BLUEZ5_MANAGER, NULL); instance = g_object_new (NM_TYPE_BLUEZ5_MANAGER, NULL);
NM_BLUEZ5_MANAGER_GET_PRIVATE (instance)->provider = provider; NM_BLUEZ5_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings);
return instance; return instance;
} }
@ -347,6 +351,8 @@ finalize (GObject *object)
g_hash_table_destroy (priv->devices); g_hash_table_destroy (priv->devices);
G_OBJECT_CLASS (nm_bluez5_manager_parent_class)->finalize (object); G_OBJECT_CLASS (nm_bluez5_manager_parent_class)->finalize (object);
g_object_unref (priv->settings);
} }
static void static void

View file

@ -22,11 +22,6 @@
#ifndef __NETWORKMANAGER_BLUEZ5_MANAGER_H__ #ifndef __NETWORKMANAGER_BLUEZ5_MANAGER_H__
#define __NETWORKMANAGER_BLUEZ5_MANAGER_H__ #define __NETWORKMANAGER_BLUEZ5_MANAGER_H__
#include "nm-default.h"
#include "nm-connection-provider.h"
G_BEGIN_DECLS
#define NM_TYPE_BLUEZ5_MANAGER (nm_bluez5_manager_get_type ()) #define NM_TYPE_BLUEZ5_MANAGER (nm_bluez5_manager_get_type ())
#define NM_BLUEZ5_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ5_MANAGER, NMBluez5Manager)) #define NM_BLUEZ5_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ5_MANAGER, NMBluez5Manager))
#define NM_BLUEZ5_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerClass)) #define NM_BLUEZ5_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerClass))
@ -51,7 +46,7 @@ typedef struct {
GType nm_bluez5_manager_get_type (void); GType nm_bluez5_manager_get_type (void);
NMBluez5Manager *nm_bluez5_manager_new (NMConnectionProvider *provider); NMBluez5Manager *nm_bluez5_manager_new (NMSettings *settings);
void nm_bluez5_manager_query_devices (NMBluez5Manager *manager); void nm_bluez5_manager_query_devices (NMBluez5Manager *manager);