- if ( file_type == FILE_TYPE_GPSMAPPER )
- a_gpsmapper_write_file ( vtl, f );
- else if ( file_type == FILE_TYPE_GPX )
- a_gpx_write_file ( vtl, f );
- else
- a_gpspoint_write_file ( vtl, f );
+ if (trackname) {
+ VikTrack *vt = vik_trw_layer_get_track ( vtl, trackname );
+ switch ( file_type ) {
+ case FILE_TYPE_GPX:
+ a_gpx_write_track_file ( trackname, vt, f );
+ break;
+ default:
+ g_critical("Houston, we've had a problem. file_type=%d", file_type);
+ }
+ } else {
+ switch ( file_type ) {
+ case FILE_TYPE_GPSMAPPER:
+ a_gpsmapper_write_file ( vtl, f );
+ break;
+ case FILE_TYPE_GPX:
+ a_gpx_write_file ( vtl, f );
+ break;
+ case FILE_TYPE_GPSPOINT:
+ a_gpspoint_write_file ( vtl, f );
+ break;
+ default:
+ g_critical("Houston, we've had a problem. file_type=%d", file_type);
+ }
+ }