#define FILE_SEP '/'
#endif
+#define VIKING_FILE_VERSION 1
+
typedef struct _Stack Stack;
struct _Stack {
g_critical("Houston, we've had a problem. mode=%d", mode);
}
- fprintf ( f, "#VIKING GPS Data file " VIKING_URL "\n\nxmpp=%f\nympp=%f\nlat=%f\nlon=%f\nmode=%s\ncolor=%s\nhighlightcolor=%s\ndrawscale=%s\ndrawcentermark=%s\ndrawhighlight=%s\n",
+ fprintf ( f, "#VIKING GPS Data file " VIKING_URL "\n" );
+ fprintf ( f, "FILE_VERSION=%d\n", VIKING_FILE_VERSION );
+ fprintf ( f, "\nxmpp=%f\nympp=%f\nlat=%f\nlon=%f\nmode=%s\ncolor=%s\nhighlightcolor=%s\ndrawscale=%s\ndrawcentermark=%s\ndrawhighlight=%s\n",
vik_viewport_get_xmpp ( VIK_VIEWPORT(vp) ), vik_viewport_get_ympp ( VIK_VIEWPORT(vp) ), ll.lat, ll.lon,
modestring, vik_viewport_get_background_color(VIK_VIEWPORT(vp)),
vik_viewport_get_highlight_color(VIK_VIEWPORT(vp)),
if ( line[i] == '=' )
eq_pos = i;
- if ( stack->under == NULL && eq_pos == 4 && strncasecmp ( line, "xmpp", eq_pos ) == 0) /* "hard coded" params: global & for all layer-types */
+ if ( stack->under == NULL && eq_pos == 12 && strncasecmp ( line, "FILE_VERSION", eq_pos ) == 0) {
+ gint version = strtol(line+13, NULL, 10);
+ g_debug ( "%s: reading file version %d", __FUNCTION__, version );
+ if ( version > VIKING_FILE_VERSION )
+ successful_read = FALSE;
+ // However we'll still carry and attempt to read whatever we can
+ }
+ else if ( stack->under == NULL && eq_pos == 4 && strncasecmp ( line, "xmpp", eq_pos ) == 0) /* "hard coded" params: global & for all layer-types */
vik_viewport_set_xmpp ( VIK_VIEWPORT(vp), strtod ( line+5, NULL ) );
else if ( stack->under == NULL && eq_pos == 4 && strncasecmp ( line, "ympp", eq_pos ) == 0)
vik_viewport_set_ympp ( VIK_VIEWPORT(vp), strtod ( line+5, NULL ) );
// In fact both kml & gpx files start the same as they are in xml
if ( check_file_ext ( filename, ".kml" ) && check_magic ( f, GPX_MAGIC ) ) {
// Implicit Conversion
- if ( ! ( success = a_babel_convert_from ( VIK_TRW_LAYER(vtl), "-i kml", filename, NULL, NULL ) ) ) {
+ if ( ! ( success = a_babel_convert_from ( VIK_TRW_LAYER(vtl), "-i kml", filename, NULL, NULL, NULL ) ) ) {
load_answer = LOAD_TYPE_GPSBABEL_FAILURE;
}
}
*/
gboolean a_file_export ( VikTrwLayer *vtl, const gchar *filename, VikFileType_t file_type, VikTrack *trk, gboolean write_hidden )
{
- GpxWritingOptions options = { FALSE, FALSE, write_hidden };
+ GpxWritingOptions options = { FALSE, FALSE, write_hidden, FALSE };
FILE *f = g_fopen ( filename, "w" );
if ( f )
{
if ( trk ) {
switch ( file_type ) {
case FILE_TYPE_GPX:
+ // trk defined so can set the option
+ options.is_route = trk->is_route;
a_gpx_write_track_file ( trk, f, &options );
break;
default: