*/
typedef struct {
GList **result;
- GList *exclude;
+ VikTrack *exclude;
gboolean with_timestamps;
} twt_udata;
static void find_tracks_with_timestamp_type(gpointer key, gpointer value, gpointer udata)
twt_udata *user_data = udata;
VikTrackpoint *p1, *p2;
VikTrack *trk = VIK_TRACK(value);
- if (trk == (VikTrack *)user_data->exclude) {
+ if (trk == user_data->exclude) {
return;
}
VikTrack *trk = VIK_TRACK(value);
GList **nearby_tracks = ((gpointer *)user_data)[0];
- GList *tpoints = ((gpointer *)user_data)[1];
/* outline:
* detect reasons for not merging, and return
* if no reason is found not to merge, then do it.
*/
+ twt_udata *udata = user_data;
// Exclude the original track from the compiled list
- if (trk->trackpoints == tpoints) {
+ if (trk == udata->exclude) {
return;
}
twt_udata udata;
udata.result = &other_tracks;
- udata.exclude = track->trackpoints;
+ udata.exclude = track;
// Allow merging with 'similar' time type time tracks
// i.e. either those times, or those without
udata.with_timestamps = vik_track_get_tp_first(track)->has_timestamp;
twt_udata *user_data = udata;
// Skip self
- if (trk->trackpoints == user_data->exclude) {
+ if (trk == user_data->exclude) {
return;
}
// TODO: Need to consider how to work best when we can have multiple tracks the same name...
twt_udata udata;
udata.result = &other_tracks_names;
- udata.exclude = trk->trackpoints;
+ udata.exclude = trk;
g_hash_table_foreach(ght_tracks, (GHFunc) trw_layer_sorted_track_id_by_name_list_exclude_self, (gpointer)&udata);
// TODO: Need to consider how to work best when we can have multiple tracks the same name...
twt_udata udata;
udata.result = &other_tracks_names;
- udata.exclude = trk->trackpoints;
+ udata.exclude = trk;
g_hash_table_foreach(ght_others, (GHFunc) trw_layer_sorted_track_id_by_name_list_exclude_self, (gpointer)&udata);
twt_udata udata;
udata.result = &tracks_with_timestamp;
- udata.exclude = orig_trk->trackpoints;
+ udata.exclude = orig_trk;
udata.with_timestamps = TRUE;
g_hash_table_foreach(vtl->tracks, find_tracks_with_timestamp_type, (gpointer)&udata);
tracks_with_timestamp = g_list_reverse(tracks_with_timestamp);