Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
gpx.c File Reference
#include "common/gpx.h"
#include "common/geo.h"
#include "common/darktable.h"
#include "common/math.h"
#include <glib.h>
#include <inttypes.h>
+ Include dependency graph for gpx.c:

Data Structures

struct  dt_gpx_t
 

Typedefs

typedef enum _gpx_parser_element_t _gpx_parser_element_t
 
typedef struct dt_gpx_t dt_gpx_t
 

Enumerations

enum  _gpx_parser_element_t {
  GPX_PARSER_ELEMENT_NONE = 0 ,
  GPX_PARSER_ELEMENT_TRKPT = 1 << 0 ,
  GPX_PARSER_ELEMENT_TIME = 1 << 1 ,
  GPX_PARSER_ELEMENT_ELE = 1 << 2 ,
  GPX_PARSER_ELEMENT_NAME = 1 << 3
}
 

Functions

static void _gpx_parser_start_element (GMarkupParseContext *ctx, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer ueer_data, GError **error)
 
static void _gpx_parser_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)
 
static void _gpx_parser_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error)
 
static gint _sort_track (gconstpointer a, gconstpointer b)
 
static gint _sort_segment (gconstpointer a, gconstpointer b)
 
dt_gpx_tdt_gpx_new (const gchar *filename)
 
void _track_seg_free (dt_gpx_track_segment_t *trkseg)
 
void _track_pts_free (dt_gpx_track_point_t *trkpt)
 
void dt_gpx_destroy (struct dt_gpx_t *gpx)
 
gboolean dt_gpx_get_location (struct dt_gpx_t *gpx, GDateTime *timestamp, dt_image_geoloc_t *geoloc)
 
GList * dt_gpx_get_trkseg (struct dt_gpx_t *gpx)
 
GList * dt_gpx_get_trkpts (struct dt_gpx_t *gpx, const guint segid)
 
void dt_gpx_geodesic_distance (double lat1, double lon1, double lat2, double lon2, double *d, double *delta)
 
void dt_gpx_geodesic_intermediate_point (const double lat1, const double lon1, const double lat2, const double lon2, const double delta, const gboolean first_time, double f, double *lat, double *lon)
 

Variables

static GMarkupParser _gpx_parser = { _gpx_parser_start_element, _gpx_parser_end_element, _gpx_parser_text, NULL, NULL }
 

Typedef Documentation

◆ _gpx_parser_element_t

◆ dt_gpx_t

typedef struct dt_gpx_t dt_gpx_t

Enumeration Type Documentation

◆ _gpx_parser_element_t

Enumerator
GPX_PARSER_ELEMENT_NONE 
GPX_PARSER_ELEMENT_TRKPT 
GPX_PARSER_ELEMENT_TIME 
GPX_PARSER_ELEMENT_ELE 
GPX_PARSER_ELEMENT_NAME 

Function Documentation

◆ _gpx_parser_end_element()

void _gpx_parser_end_element ( GMarkupParseContext *  context,
const gchar *  element_name,
gpointer  user_data,
GError **  error 
)
static

◆ _gpx_parser_start_element()

◆ _gpx_parser_text()

◆ _sort_segment()

static gint _sort_segment ( gconstpointer  a,
gconstpointer  b 
)
static

References dt_gpx_track_segment_t::start_dt.

Referenced by dt_gpx_new().

◆ _sort_track()

static gint _sort_track ( gconstpointer  a,
gconstpointer  b 
)
static

References dt_gpx_track_point_t::time.

Referenced by dt_gpx_new().

◆ _track_pts_free()

void _track_pts_free ( dt_gpx_track_point_t trkpt)

References dt_gpx_track_point_t::time.

Referenced by dt_gpx_destroy().

◆ _track_seg_free()

void _track_seg_free ( dt_gpx_track_segment_t trkseg)

References dt_gpx_track_segment_t::name.

Referenced by dt_gpx_destroy().

◆ dt_gpx_destroy()

◆ dt_gpx_geodesic_distance()

void dt_gpx_geodesic_distance ( double  lat1,
double  lon1,
double  lat2,
double  lon2,
double d,
double delta 
)

References EARTH_RADIUS, and M_PI.

Referenced by _track_add_point(), and dt_gpx_get_location().

◆ dt_gpx_geodesic_intermediate_point()

void dt_gpx_geodesic_intermediate_point ( const double  lat1,
const double  lon1,
const double  lat2,
const double  lon2,
const double  delta,
const gboolean  first_time,
double  f,
double lat,
double lon 
)

References f(), lat, lon, and M_PI.

Referenced by _track_add_point(), and dt_gpx_get_location().

◆ dt_gpx_get_location()

◆ dt_gpx_get_trkpts()

◆ dt_gpx_get_trkseg()

GList * dt_gpx_get_trkseg ( struct dt_gpx_t gpx)

References dt_gpx_t::trksegs.

Referenced by _preview_gpx_file().

◆ dt_gpx_new()

dt_gpx_t * dt_gpx_new ( const gchar *  filename)

Variable Documentation

◆ _gpx_parser

GMarkupParser _gpx_parser = { _gpx_parser_start_element, _gpx_parser_end_element, _gpx_parser_text, NULL, NULL }
static

Referenced by dt_gpx_new().