Export devices blocked status
authorSamuel Ortiz <sameo@linux.intel.com>
Mon, 9 Aug 2010 10:48:02 +0000 (12:48 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 9 Aug 2010 17:16:57 +0000 (19:16 +0200)
doc/device-lowlevel-api.txt
src/device.c

index 9bae36c..f01751b 100644 (file)
@@ -70,6 +70,15 @@ Properties   string Address [readonly]
                        example would be modifications via the "ifconfig"
                        command line utility.
 
+               boolean Blocked [readonly]
+
+                       Indicates if a device transmission capability is
+                       blocked or not. This property is a translation of
+                       the device rfkill status. If it is hard or soft
+                       blocked, this property will be true.
+
+                       Once a device is blocked, enabling it will fail.
+
                uint16 ScanInterval [readwrite]
 
                        The scan interval describes the time in seconds
index 39d86b5..813e3bc 100644 (file)
@@ -194,6 +194,13 @@ static void powered_changed(struct connman_device *device)
                                        DBUS_TYPE_BOOLEAN, &device->powered);
 }
 
+static void blocked_changed(struct connman_device *device)
+{
+       connman_dbus_property_changed_basic(device->element.path,
+                               CONNMAN_DEVICE_INTERFACE, "Blocked",
+                                       DBUS_TYPE_BOOLEAN, &device->blocked);
+}
+
 int __connman_device_enable(struct connman_device *device)
 {
        int err;
@@ -333,6 +340,9 @@ static DBusMessage *get_properties(DBusConnection *conn,
        connman_dbus_dict_append_basic(&dict, "Powered",
                                        DBUS_TYPE_BOOLEAN, &device->powered);
 
+       connman_dbus_dict_append_basic(&dict, "Blocked",
+                                       DBUS_TYPE_BOOLEAN, &device->blocked);
+
        if (device->driver && device->driver->scan)
                connman_dbus_dict_append_basic(&dict, "Scanning",
                                        DBUS_TYPE_BOOLEAN, &device->scanning);
@@ -1037,6 +1047,8 @@ int __connman_device_set_blocked(struct connman_device *device,
 
        device->blocked = blocked;
 
+       blocked_changed(device);
+
        if (device->offlinemode == TRUE)
                return 0;