#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
+#include <libgnomevfs/gnome-vfs.h>
G_BEGIN_DECLS
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,
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 */
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);
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);