diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-12-14 22:02:24 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-12-14 22:02:24 +0000 |
commit | 02dffb54da5e546a245471ba642a49070729de07 (patch) | |
tree | c1e3f0613d5dd28cc99b4d2209eb59da367f786c /navit/binding | |
parent | a38fbc1341c0c86a6b6a9f6371ccc404811dc8a2 (diff) | |
download | navit-svn-02dffb54da5e546a245471ba642a49070729de07.tar.gz |
Add:binding_dbus:Support for roadprofiles
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5292 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/binding')
-rw-r--r-- | navit/binding/dbus/binding_dbus.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/navit/binding/dbus/binding_dbus.c b/navit/binding/dbus/binding_dbus.c index e5380da8..5e1ef4db 100644 --- a/navit/binding/dbus/binding_dbus.c +++ b/navit/binding/dbus/binding_dbus.c @@ -47,6 +47,7 @@ #include "callback.h" #include "gui.h" #include "layout.h" +#include "roadprofile.h" #include "util.h" @@ -302,6 +303,11 @@ encode_attr(DBusMessageIter *iter1, struct attr *attr) dbus_message_iter_append_basic(&iter2, DBUS_TYPE_OBJECT_PATH, &object); dbus_message_iter_close_container(iter1, &iter2); } + if (attr->type == attr_item_types) { + char *str=attr_to_text(attr,NULL,0); + encode_variant_string(iter1, str); + g_free(str); + } return 1; } @@ -967,6 +973,20 @@ request_osd_set_attr(DBusConnection *connection, DBusMessage *message) return request_set_add_remove_attr(connection, message, "osd", NULL, (int (*)(void *, struct attr *))osd_set_attr); } +/* roadprofile */ + +static DBusHandlerResult +request_roadprofile_get_attr(DBusConnection *connection, DBusMessage *message) +{ + return request_get_attr(connection, message, "roadprofile", NULL, (int (*)(void *, enum attr_type, struct attr *, struct attr_iter *))roadprofile_get_attr); +} + + +static DBusHandlerResult +request_roadprofile_set_attr(DBusConnection *connection, DBusMessage *message) +{ + return request_set_add_remove_attr(connection, message, "roadprofile", NULL, (int (*)(void *, struct attr *))roadprofile_set_attr); +} /* route */ @@ -1571,6 +1591,18 @@ request_vehicleprofile_set_attr(DBusConnection *connection, DBusMessage *message return request_set_add_remove_attr(connection, message, "vehicleprofile", NULL, (int (*)(void *, struct attr *))vehicleprofile_set_attr); } +static DBusHandlerResult +request_vehicleprofile_attr_iter(DBusConnection *connection, DBusMessage *message) +{ + return request_attr_iter(connection, message, "vehicleprofile", (struct attr_iter * (*)(void))vehicleprofile_attr_iter_new); +} + +static DBusHandlerResult +request_vehicleprofile_attr_iter_destroy(DBusConnection *connection, DBusMessage *message) +{ + return request_attr_iter_destroy(connection, message, "vehicleprofile", (void (*)(struct attr_iter *))vehicleprofile_attr_iter_destroy); +} + struct dbus_method { char *path; char *method; @@ -1629,6 +1661,8 @@ struct dbus_method { {".navigation","get_attr", "s", "attribute", "", "", request_navigation_get_attr}, {".osd", "get_attr", "s", "attribute", "sv", "attrname,value", request_osd_get_attr}, {".osd", "set_attr", "sv", "attribute,value", "", "", request_osd_set_attr}, + {".roadprofile", "get_attr", "s", "attribute", "sv", "attrname,value", request_roadprofile_get_attr}, + {".roadprofile", "set_attr", "sv", "attribute,value", "", "", request_roadprofile_set_attr}, {".route", "get_attr", "s", "attribute", "sv", "attrname,value", request_route_get_attr}, {".route", "set_attr", "sv", "attribute,value", "", "", request_route_set_attr}, {".route", "add_attr", "sv", "attribute,value", "", "", request_route_add_attr}, @@ -1640,7 +1674,10 @@ struct dbus_method { {".tracking","get_attr", "s", "attribute", "", "", request_tracking_get_attr}, {".vehicle","set_attr", "sv", "attribute,value", "", "", request_vehicle_set_attr}, {".vehicleprofile","get_attr", "s", "attribute", "", "", request_vehicleprofile_get_attr}, + {".vehicleprofile","get_attr_wi", "so", "attribute,attr_iter", "", "", request_vehicleprofile_get_attr}, {".vehicleprofile","set_attr", "sv", "attribute,value", "", "", request_vehicleprofile_set_attr}, + {".vehicleprofile","attr_iter", "", "", "o", "attr_iter", request_vehicleprofile_attr_iter}, + {".vehicleprofile","attr_iter_destroy","o", "attr_iter", "", "", request_vehicleprofile_attr_iter_destroy}, }; static char * |