1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include <glade/glade.h>
#define MSG_SEND_URL "http://tangogps.org/friends/msg_send.php"
#define SCHEMA "org.foxtrotgps"
#define TILESIZE 256
#define MAP_PAGE 0
#define FRIENDS_PAGE 1
#define TRACKPOINT_LIST_MAX_LENGTH 10000 /* max points to keep in mem */
#define TRIP_DELTA_MIN 0.005 /* min distance between points to log: 5m */
#define SEGMENT_DISTANCE 100 /* start a new segment when distance exceeds: 100m */
typedef struct {
int time;
float lat;
float lon;
float lat_deg;
float lon_deg;
float alt;
float speed;
float head;
float hdop;
int heart;
} trackpoint_t;
typedef struct {
double lat;
double lon;
} waypoint_t;
typedef struct {
char *name;
char *uri;
char *dir;
int inverted_zoom;
} repo_t;
typedef struct {
char *filename;
char *name;
double lat;
double lon;
char *desc;
int screen_x;
int screen_y;
} photo_t;
typedef struct {
char *idmd5;
double lat_deg;
double lon_deg;
int visibility;
int category;
int subcategory;
char *keywords;
char *desc;
int price_range;
int extended_open;
int screen_x;
int screen_y;
GtkWidget *widget;
} poi_t;
typedef struct {
double time; /* Time of update, seconds since Unix epoch */
int mode; /* Mode of fix */
double latitude; /* Latitude in degrees (valid if mode >= 2) */
double longitude; /* Longitude in degrees (valid if mode >= 2) */
double altitude; /* Altitude in meters (valid if mode == 3) */
double heading;
double speed; /* Speed over ground, meters/sec */
double bearing; /* in radian, calculated by tangogps */
} tangogps_gps_fix_t;
typedef struct {
tangogps_gps_fix_t fix;
int satellites_used;
int satellites_inview;
double hdop;
gboolean valid;
gboolean seen_valid; /* ever had a valid fix? */
} tangogps_gps_data_t;
typedef struct {
int freq;
int min;
int max;
} hrm_data_t;
extern GdkPixmap *pixmap;
extern const char *gladefile;
extern GladeXML *gladexml;
extern GtkWidget *window1, *window2;
extern GtkWidget *map_drawable;
extern GtkWidget *dialog1;
extern GtkWidget *dialog8;
extern GtkWidget *window3;
extern GtkWidget *menu1;
extern GtkWidget *route_menu;
extern GList *global_infopane_widgets;
extern GList *global_infopane_current;
extern char *global_track_dir;
extern int global_x;
extern int global_y;
extern int global_zoom;
extern int global_zoom_max;
extern int global_detail_zoom;
extern int mouse_dx; // for mouse move pixmap
extern int mouse_dy;
extern int global_speed_unit;
extern int global_alt_unit;
extern int global_latlon_unit;
extern int global_drawingarea_width;
extern int global_drawingarea_height;
extern tangogps_gps_data_t *gpsdata;
extern hrm_data_t *hrmdata;
extern GQueue *trackpoint_list;
extern GSList *friends_list;
extern GSList *photo_list;
extern GSList *poi_list;
extern GSList *msg_list;
extern float trip_distance;
extern double trip_maxspeed;
extern double trip_time;
extern double trip_starttime;
extern gboolean trip_counter_on;
extern trackpoint_t global_myposition;
extern gboolean trip_logger_on;
extern gboolean trip_livelog_on;
extern gboolean hrm_on;
extern gchar *global_curr_reponame;
extern int global_repo_cnt;
extern int global_repo_nr;
extern GSList *global_repo_list, *global_curr_repo;
extern GSettings *global_settings;
extern gboolean global_infopane_visible;
extern gboolean global_landscape;
extern gboolean global_auto_download;
extern gboolean global_no_redownload;
extern gboolean global_mapmode;
extern gboolean global_autocenter;
extern gboolean global_reconnect_hrm;
extern int global_tiles_in_dl_queue;
extern gboolean global_show_pois;
extern gboolean global_show_friends;
extern gboolean global_show_photos;
extern gboolean global_new_msg;
extern int global_poi_cat;
extern gboolean global_wp_on;
extern waypoint_t global_wp;
extern char *global_friend_nick;
extern char *global_friend_pass;
extern int global_ffupdate_interval;
extern double global_ffupdate_interval_minutes;
extern gboolean global_fftimer_running;
extern int global_ff_mode;
extern gchar *global_server;
extern gchar *global_port;
extern gchar *global_hrm_bt_addr;
extern gchar *global_home_dir;
extern gchar *foxtrotgps_dir;
extern int mouse_x;
extern int mouse_y;
extern int drag_started;
enum {
PRIVATE_MODE = 1,
FRIEND_MODE = 2,
FUN_MODE = 3
};
enum {
METRICAL = 0,
IMPERIAL = 1,
NAUTICAL = 2
};
|