diff options
Diffstat (limited to 'src/modem.c')
-rw-r--r-- | src/modem.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/modem.c b/src/modem.c index 200091af..a79577cb 100644 --- a/src/modem.c +++ b/src/modem.c @@ -67,6 +67,7 @@ struct ofono_modem { const struct ofono_modem_driver *driver; void *driver_data; char *driver_type; + char *name; }; struct ofono_devinfo { @@ -394,6 +395,10 @@ static DBusMessage *modem_get_properties(DBusConnection *conn, g_free(interfaces); + if (modem->name) + ofono_dbus_dict_append(&dict, "Name", DBUS_TYPE_STRING, + &modem->name); + dbus_message_iter_close_container(&iter, &dict); return reply; @@ -1040,6 +1045,26 @@ bool ofono_modem_get_boolean(struct ofono_modem *modem, const char *key) return value; } +void ofono_modem_set_name(struct ofono_modem *modem, const char *name) +{ + if (modem->name) + g_free(modem->name); + + if (!name) + return; + + modem->name = g_strdup(name); + + if (modem->driver) { + DBusConnection *conn = ofono_dbus_get_connection(); + + ofono_dbus_signal_property_changed(conn, modem->path, + OFONO_MODEM_INTERFACE, + "Name", DBUS_TYPE_STRING, + &modem->name); + } +} + struct ofono_modem *ofono_modem_create(const char *name, const char *type) { struct ofono_modem *modem; |