32
32
#include "nm-device-private.h"
33
33
#include "nm-object-private.h"
35
#include "nm-device-bt-bindings.h"
37
35
G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE)
39
37
#define NM_DEVICE_BT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BT, NMDeviceBtPrivate))
96
93
nm_device_bt_get_hw_address (NMDeviceBt *device)
98
NMDeviceBtPrivate *priv;
100
95
g_return_val_if_fail (NM_IS_DEVICE_BT (device), NULL);
102
priv = NM_DEVICE_BT_GET_PRIVATE (device);
103
if (!priv->hw_address) {
104
priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device),
105
NM_DBUS_INTERFACE_DEVICE_BLUETOOTH,
106
DBUS_PROP_HW_ADDRESS,
110
return priv->hw_address;
97
_nm_object_ensure_inited (NM_OBJECT (device));
98
return NM_DEVICE_BT_GET_PRIVATE (device)->hw_address;
122
110
nm_device_bt_get_name (NMDeviceBt *device)
124
NMDeviceBtPrivate *priv;
126
112
g_return_val_if_fail (NM_IS_DEVICE_BT (device), NULL);
128
priv = NM_DEVICE_BT_GET_PRIVATE (device);
130
priv->name = _nm_object_get_string_property (NM_OBJECT (device),
131
NM_DBUS_INTERFACE_DEVICE_BLUETOOTH,
114
_nm_object_ensure_inited (NM_OBJECT (device));
115
return NM_DEVICE_BT_GET_PRIVATE (device)->name;
147
126
NMBluetoothCapabilities
148
127
nm_device_bt_get_capabilities (NMDeviceBt *device)
150
NMDeviceBtPrivate *priv;
152
129
g_return_val_if_fail (NM_IS_DEVICE_BT (device), NM_BT_CAPABILITY_NONE);
154
priv = NM_DEVICE_BT_GET_PRIVATE (device);
155
if (!priv->bt_capabilities_valid) {
156
priv->bt_capabilities = _nm_object_get_uint_property (NM_OBJECT (device),
157
NM_DBUS_INTERFACE_DEVICE_BLUETOOTH,
158
DBUS_PROP_BT_CAPABILITIES,
160
priv->bt_capabilities_valid = TRUE;
163
return priv->bt_capabilities;
131
_nm_object_ensure_inited (NM_OBJECT (device));
132
return NM_DEVICE_BT_GET_PRIVATE (device)->bt_capabilities;
166
135
static NMBluetoothCapabilities
235
register_for_property_changed (NMDeviceBt *device)
204
register_properties (NMDeviceBt *device)
237
206
NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device);
238
const NMPropertiesChangedInfo property_changed_info[] = {
239
{ NM_DEVICE_BT_HW_ADDRESS, _nm_object_demarshal_generic, &priv->hw_address },
240
{ NM_DEVICE_BT_NAME, _nm_object_demarshal_generic, &priv->name },
241
{ NM_DEVICE_BT_CAPABILITIES, _nm_object_demarshal_generic, &priv->bt_capabilities },
207
const NMPropertiesInfo property_info[] = {
208
{ NM_DEVICE_BT_HW_ADDRESS, &priv->hw_address },
209
{ NM_DEVICE_BT_NAME, &priv->name },
210
{ NM_DEVICE_BT_CAPABILITIES, &priv->bt_capabilities },
245
_nm_object_handle_properties_changed (NM_OBJECT (device),
247
property_changed_info);
214
_nm_object_register_properties (NM_OBJECT (device),
251
constructor (GType type,
252
guint n_construct_params,
253
GObjectConstructParam *construct_params)
220
constructed (GObject *object)
257
object = G_OBJECT_CLASS (nm_device_bt_parent_class)->constructor (type,
261
NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
263
priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)),
265
nm_object_get_path (NM_OBJECT (object)),
266
NM_DBUS_INTERFACE_DEVICE_BLUETOOTH);
268
register_for_property_changed (NM_DEVICE_BT (object));
222
NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object);
224
G_OBJECT_CLASS (nm_device_bt_parent_class)->constructed (object);
226
priv->proxy = dbus_g_proxy_new_for_name (nm_object_get_connection (NM_OBJECT (object)),
228
nm_object_get_path (NM_OBJECT (object)),
229
NM_DBUS_INTERFACE_DEVICE_BLUETOOTH);
231
register_properties (NM_DEVICE_BT (object));
331
291
g_type_class_add_private (bt_class, sizeof (NMDeviceBtPrivate));
333
293
/* virtual methods */
334
object_class->constructor = constructor;
294
object_class->constructed = constructed;
335
295
object_class->dispose = dispose;
336
296
object_class->finalize = finalize;
337
297
object_class->get_property = get_property;