]> err.no Git - mapper/blobdiff - src/path.h
Path: misc adjustments
[mapper] / src / path.h
index 1c437debcaeb2a0acc45fdd6b13ec71460395067..5cf25be77e93901a6bc439208a55c03083f5adab 100644 (file)
@@ -24,6 +24,7 @@
 #include <glib.h>
 #include <glib-object.h>
 #include <gtk/gtk.h>
+#include <libgnomevfs/gnome-vfs.h>
 
 G_BEGIN_DECLS
 
@@ -40,6 +41,12 @@ typedef enum {
        PATH_TYPE_FRIEND,
 } PathType;
 
+typedef enum {
+       GPX_PATH_PREPEND=-1,
+       GPX_PATH_NEW=0,
+       GPX_PATH_APPEND=1,
+} gpx_path_policy;
+
 /* Path store items */
 typedef enum {
     PATH_LATLON,
@@ -127,6 +134,7 @@ struct _Path {
 
        /* The waypoint we last announced */
        WayPoint *announced_waypoint;
+       gint announce_notice_ratio;
 
        /* Path statistics */
        guint32 points;
@@ -162,6 +170,10 @@ Path *path_new(PathType type, guint id);
 void path_free(Path *p);
 void path_clear(Path *p);
 
+gboolean path_gpx_read(Path *path, GnomeVFSHandle *handle);
+gboolean path_gpx_write(Path *path, GnomeVFSHandle *handle, GError **error);
+gboolean path_gpx_parse(Path *to_replace, gchar *buffer, gint size, gpx_path_policy policy);
+
 Point *path_find_last_point(Path *path);
 
 gboolean path_resize(Path *path, guint size);
@@ -169,8 +181,12 @@ gboolean path_wresize(Path *path, guint wsize);
 
 gdouble path_get_distance_to(Path *path, Point *point, gdouble lat, gdouble lon);
 
-void path_find_nearest_point(Path *path);
-gboolean path_update_nears(Path *route, Point *point, gboolean quick);
+void path_find_nearest_point(Path *path, gdouble lat, gdouble lon);
+
+gboolean path_add_latlon(Path *path, gdouble lat, gdouble lon, time_t ptime, gfloat speed, gfloat altitude);
+
+gboolean path_has_points(Path *path);
+gboolean path_has_waypoints(Path *path);
 
 gboolean path_add_break(Path *path);
 void path_insert_mark_text(Path *path, gchar *text);