static void device_removed (NMBluezAdapter *adapter, NMBluezDevice *device, gpointer user_data) { NMBluezManager *self = NM_BLUEZ_MANAGER (user_data); g_signal_emit (self, signals[BDADDR_REMOVED], 0, nm_bluez_device_get_address (device), nm_bluez_device_get_path (device)); }
static void emit_bdaddr_added (NMBluezManager *self, NMBluezDevice *device) { g_signal_emit (self, signals[BDADDR_ADDED], 0, nm_bluez_device_get_address (device), nm_bluez_device_get_name (device), nm_bluez_device_get_path (device), nm_bluez_device_get_capabilities (device)); }
static void device_usable (NMBluezDevice *device, GParamSpec *pspec, NMBluez5Manager *self) { gboolean usable = nm_bluez_device_get_usable (device); nm_log_dbg (LOGD_BT, "(%s): bluez device now %s", nm_bluez_device_get_path (device), usable ? "usable" : "unusable"); if (usable) { nm_log_dbg (LOGD_BT, "(%s): bluez device address %s", nm_bluez_device_get_path (device), nm_bluez_device_get_address (device)); emit_bdaddr_added (self, device); } else g_signal_emit_by_name (device, NM_BLUEZ_DEVICE_REMOVED); }
static void device_usable (NMBluezDevice *device, GParamSpec *pspec, gpointer user_data) { NMBluezAdapter *self = NM_BLUEZ_ADAPTER (user_data); gboolean usable = nm_bluez_device_get_usable (device); nm_log_dbg (LOGD_BT, "(%s): bluez device now %s", nm_bluez_device_get_path (device), usable ? "usable" : "unusable"); if (usable) { nm_log_dbg (LOGD_BT, "(%s): bluez device address %s", nm_bluez_device_get_path (device), nm_bluez_device_get_address (device)); g_signal_emit (self, signals[DEVICE_ADDED], 0, device); } else g_signal_emit (self, signals[DEVICE_REMOVED], 0, device); }
static void adapter_removed (DBusGProxy *proxy, const char *path, NMBluezManager *self) { NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); if (priv->adapter && !strcmp (path, nm_bluez_adapter_get_path (priv->adapter))) { if (nm_bluez_adapter_get_initialized (priv->adapter)) { GSList *devices, *iter; devices = nm_bluez_adapter_get_devices (priv->adapter); for (iter = devices; iter; iter = g_slist_next (iter)) { NMBluezDevice *device = NM_BLUEZ_DEVICE (iter->data); g_signal_emit (self, signals[BDADDR_REMOVED], 0, nm_bluez_device_get_address (device), nm_bluez_device_get_path (device)); } g_slist_free (devices); } g_object_unref (priv->adapter); priv->adapter = NULL; } }