]> err.no Git - mapper/blobdiff - src/path.h
Path: misc adjustments
[mapper] / src / path.h
index b0c5ff2fcffa29ac475a03c6c4d93077c0a60307..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,
@@ -125,6 +132,10 @@ struct _Path {
        Point *next_wpt;
        guint64 next_wpt_dist_squared;
 
+       /* The waypoint we last announced */
+       WayPoint *announced_waypoint;
+       gint announce_notice_ratio;
+
        /* Path statistics */
        guint32 points;
        guint32 wpcnt;          /* Auto waypoint number counter */
@@ -159,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);
@@ -166,10 +181,14 @@ 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_insert_break(Path *path);
+gboolean path_add_break(Path *path);
 void path_insert_mark_text(Path *path, gchar *text);
 void path_insert_mark_autonumber(Path *path);
 void path_insert_mark_audio(Path *path, gchar *audio);