static void garmin_txt_write(void) { char *grid_str, *c; const char *datum_str; grid_str = xstrdup(gt_get_mps_grid_longname(grid_index, MYNAME)); while ((c = strchr(grid_str, '*'))) *c = 0xB0; /* degree sign */ cet_gbfprintf(fout, &cet_cs_vec_cp1252, "Grid\t%s\r\n", grid_str); xfree(grid_str); datum_str = gt_get_mps_datum_name(datum_index); gbfprintf(fout, "Datum\t%s\r\n\r\n", datum_str); waypoints = 0; gtxt_flags.enum_waypoints = 1; /* enum all waypoints */ waypt_disp_all(enum_waypt_cb); route_disp_all(NULL, NULL, enum_waypt_cb); gtxt_flags.enum_waypoints = 0; if (waypoints > 0) { int i; wpt_a_ct = 0; wpt_a = (waypoint **)xcalloc(waypoints, sizeof(*wpt_a)); waypt_disp_all(enum_waypt_cb); route_disp_all(NULL, NULL, enum_waypt_cb); qsort(wpt_a, waypoints, sizeof(*wpt_a), sort_waypt_cb); gbfprintf(fout, "Header\t%s\r\n\r\n", headers[waypt_header]); for (i = 0; i < waypoints; i++) { waypoint *wpt = wpt_a[i]; write_waypt(wpt); } xfree(wpt_a); route_idx = 0; route_info = xcalloc(route_count(), sizeof(struct info_s)); routepoints = 0; route_disp_all(prework_hdr_cb, prework_tlr_cb, prework_wpt_cb); if (routepoints > 0) { route_idx = 0; route_disp_all(route_disp_hdr_cb, route_disp_tlr_cb, route_disp_wpt_cb); } xfree(route_info); } route_idx = 0; route_info = xcalloc(track_count(), sizeof(struct info_s)); routepoints = 0; track_disp_all(prework_hdr_cb, prework_tlr_cb, prework_wpt_cb); if (routepoints > 0) { route_idx = 0; track_disp_all(track_disp_hdr_cb, track_disp_tlr_cb, track_disp_wpt_cb); } xfree(route_info); }
static void nmn4_write_data(void) { target_rte_num = 1; if (index_opt != NULL) { target_rte_num = atoi(index_opt); is_fatal(((target_rte_num > (int) route_count()) || (target_rte_num < 1)), MYNAME ": invalid route number %d (1..%d))!\n", target_rte_num, route_count()); } curr_rte_num = 0; route_disp_all(nmn4_route_hdr, nmn4_route_tlr, nmn4_write_waypt); }
static void data_write(void) { short int NumWaypoints, MajorVersion, MinorVersion, NumRoutes, NumTrails, NumIcons; setshort_length(mkshort_handle, 15); MajorVersion = writing_version; MinorVersion = 0; NumWaypoints = waypt_count(); gbfputint16(MajorVersion, file_out); gbfputint16(MinorVersion, file_out); if (global_opts.debug_level >= 1) printf(MYNAME " data_write: Num waypoints = %d\n", NumWaypoints); if (writeasicons) { short zero = 0; gbfputint16(zero, file_out); } else { gbfputint16(NumWaypoints, file_out); waypt_disp_all(lowranceusr_waypt_pr); } /* Route support added 6/21/05 */ NumRoutes = route_count(); gbfputint16(NumRoutes, file_out); if (global_opts.debug_level >= 1) printf(MYNAME " data_write: Num routes = %d\n", NumRoutes); if (NumRoutes) { lowrance_route_count=0; route_disp_all(lowranceusr_route_hdr, NULL, lowranceusr_waypt_disp); } if (NumWaypoints && writeasicons) { gbfputint16(NumWaypoints, file_out); waypt_disp_all(lowranceusr_write_icon); } else { NumIcons = 0; gbfputint16(NumIcons, file_out); } /* Track support added 6/21/05 */ NumTrails = track_count(); if (NumTrails && merge) { NumTrails = 1; gbfputint16(NumTrails, file_out); trail_point_count = 0; trail_count = 0; /* count the number of total track points */ track_disp_all(lowranceusr_merge_track_hdr, lowranceusr_merge_track_tlr, NULL); /* write out the new track header */ trail_point_count = 0; track_disp_all(lowranceusr_merge_track_hdr_2, NULL, lowranceusr_track_disp); } else { gbfputint16(NumTrails, file_out); if (global_opts.debug_level >= 1) printf(MYNAME " data_write: Num tracks = %d\n", NumTrails); if (NumTrails) { trail_count=0; track_disp_all(lowranceusr_track_hdr, NULL, lowranceusr_track_disp); } } }