From: Daniel Wagner <daniel.wag...@bmw-carit.de>

---
 dundee/bluetooth.c |    1 +
 dundee/device.c    |   17 +++++++++++++++++
 dundee/dundee.h    |    6 ++++++
 3 files changed, 24 insertions(+)

diff --git a/dundee/bluetooth.c b/dundee/bluetooth.c
index 0fb00a4..c124f60 100644
--- a/dundee/bluetooth.c
+++ b/dundee/bluetooth.c
@@ -137,6 +137,7 @@ static const char *bt_serial(struct dundee_device *device)
 
 struct dundee_device_driver bluetooth_driver = {
        .name = "bluetooth",
+       .type = DUNDEE_DEVICE_TYPE_BLUETOOTH,
        .connect = bt_connect,
        .disconnect = bt_disconnect,
        .serial = bt_serial,
diff --git a/dundee/device.c b/dundee/device.c
index 9733b09..fa549e1 100644
--- a/dundee/device.c
+++ b/dundee/device.c
@@ -62,6 +62,18 @@ struct dundee_device {
        void *data;
 };
 
+static const char *device_type_to_string(enum dundee_device_type type)
+{
+       switch (type) {
+       case DUNDEE_DEVICE_TYPE_BLUETOOTH:
+               return "bluetooth";
+       case DUNDEE_DEVICE_TYPE_USB:
+               return "usb";
+       }
+
+       return "unknown";
+}
+
 const char *__dundee_device_get_path(struct dundee_device *device)
 {
        return device->path;
@@ -130,6 +142,7 @@ void __dundee_device_append_properties(struct dundee_device 
*device,
                                        DBusMessageIter *dict)
 {
        const char *serial;
+       const char *type;
 
        settings_append_dict(device, dict);
 
@@ -146,6 +159,10 @@ void __dundee_device_append_properties(struct 
dundee_device *device,
        if (serial)
                ofono_dbus_dict_append(dict, "Serial", DBUS_TYPE_STRING,
                                        &serial);
+
+       type = device_type_to_string(device->driver->type);
+       ofono_dbus_dict_append(dict, "Type", DBUS_TYPE_STRING,
+                               &type);
 }
 
 void __dundee_device_foreach(dundee_device_foreach_func func, void *userdata)
diff --git a/dundee/dundee.h b/dundee/dundee.h
index ca53c88..b954a91 100644
--- a/dundee/dundee.h
+++ b/dundee/dundee.h
@@ -33,6 +33,11 @@ enum dundee_error_type {
        DUNDEE_ERROR_TYPE_FAILURE,
 };
 
+enum dundee_device_type {
+       DUNDEE_DEVICE_TYPE_BLUETOOTH = 0,
+       DUNDEE_DEVICE_TYPE_USB,
+};
+
 struct dundee_error {
        enum dundee_error_type type;
        int error;
@@ -113,6 +118,7 @@ typedef void (*dundee_device_disconnect_cb_t)(const struct 
dundee_error *error,
 
 struct dundee_device_driver {
        const char *name;
+       enum dundee_device_type type;
 
        /* Connect and dial */
        void (*connect)(struct dundee_device *device,
-- 
1.7.10.130.g36e6c

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to