53 #ifndef NAVIT_TRAFFIC_H
54 #define NAVIT_TRAFFIC_H
76 #define order_to_min_road_class(x) (x <= 8 ? "PRIMARY" : x <= 10 ? "SECONDARY" : x <= 12 ? "TERTIARY" : NULL)
struct triple lng lat
Definition: garmin_img.c:0
char filename[8]
Definition: garmin_img.c:1
char type[3]
Definition: garmin_img.c:2
int length
Definition: garmin_img.c:1
item_type
Definition: item.h:29
A WGS84 coordinate.
Definition: coord.h:97
Represents an object on a map.
Definition: item.h:115
A quantifier, which can be used with events and supplementary information.
Definition: traffic.h:343
unsigned int q_time
Definition: traffic.h:348
int q_duration
Definition: traffic.h:345
int q_speed
Definition: traffic.h:347
int q_int
Definition: traffic.h:346
A complete route.
Definition: route.c:201
A traffic event.
Definition: traffic.h:368
enum event_class event_class
Definition: traffic.h:369
struct traffic_suppl_info ** si
Definition: traffic.h:380
enum event_type type
Definition: traffic.h:370
int length
Definition: traffic.h:372
int speed
Definition: traffic.h:373
struct quantifier * quantifier
Definition: traffic.h:377
int si_count
Definition: traffic.h:379
Definition: traffic.c:127
Location data for a traffic message.
Definition: traffic.h:298
char * tmc_table
Definition: traffic.h:326
enum location_ramps ramps
Definition: traffic.h:314
struct traffic_point * via
Definition: traffic.h:302
struct traffic_point * to
Definition: traffic.h:301
struct traffic_point * at
Definition: traffic.h:299
char * destination
Definition: traffic.h:306
struct traffic_location_priv * priv
Definition: traffic.h:334
enum location_fuzziness fuzziness
Definition: traffic.h:313
char * road_name
Definition: traffic.h:324
enum location_dir directionality
Definition: traffic.h:311
enum item_type road_type
Definition: traffic.h:321
int tmc_direction
Definition: traffic.h:331
char * direction
Definition: traffic.h:309
char * road_ref
Definition: traffic.h:325
struct traffic_point * not_via
Definition: traffic.h:304
struct traffic_point * from
Definition: traffic.h:300
Definition: traffic.c:135
A traffic message.
Definition: traffic.h:392
int replaced_count
Definition: traffic.h:409
time_t expiration_time
Definition: traffic.h:400
char ** replaces
Definition: traffic.h:410
char * id
Definition: traffic.h:393
int is_cancellation
Definition: traffic.h:403
int is_forecast
Definition: traffic.h:407
time_t receive_time
Definition: traffic.h:397
time_t end_time
Definition: traffic.h:402
struct traffic_location * location
Definition: traffic.h:412
struct traffic_event ** events
Definition: traffic.h:414
int event_count
Definition: traffic.h:413
time_t update_time
Definition: traffic.h:399
time_t start_time
Definition: traffic.h:401
struct traffic_message_priv * priv
Definition: traffic.h:415
Holds all functions a traffic plugin has to implement to be usable.
Definition: traffic.h:258
void(* destroy)(struct traffic_priv *this_)
Definition: traffic.h:260
A point on the road.
Definition: traffic.h:269
char * junction_ref
Definition: traffic.h:273
char * junction_name
Definition: traffic.h:272
char * tmc_id
Definition: traffic.h:274
Stores information about the plugin instance.
Definition: traffic_dummy.c:46
Extra information supplied with a traffic event.
Definition: traffic.h:355
enum si_class si_class
Definition: traffic.h:356
enum si_type type
Definition: traffic.h:357
struct quantifier * quantifier
Definition: traffic.h:359
A traffic plugin instance.
Definition: traffic.c:115
struct traffic_message ** traffic_get_messages_from_xml_string(struct traffic *this_, char *xml)
Reads traffic messages from an XML string.
Definition: traffic.c:5878
struct traffic_point * traffic_point_new_short(float lon, float lat)
Creates a new traffic_point.
Definition: traffic.c:5479
void traffic_init(void)
Initializes the traffic plugin.
Definition: traffic.c:5783
struct map * traffic_get_map(struct traffic *this_)
Returns the map for the traffic plugin.
Definition: traffic.c:5788
const char * si_class_to_string(enum si_class this_)
Translates a supplementary information class to its string representation.
Definition: traffic.c:5380
struct traffic_message * traffic_message_new(char *id, time_t receive_time, time_t update_time, time_t expiration_time, time_t start_time, time_t end_time, int is_cancellation, int is_Forecast, int replaced_count, char **replaces, struct traffic_location *location, int event_count, struct traffic_event **events)
Creates a new traffic_message.
Definition: traffic.c:5638
si_type
Supplementary information types.
Definition: traffic.h:228
@ si_tendency_queue_increasing
Definition: traffic.h:235
@ si_invalid
Definition: traffic.h:229
@ si_vehicle_motor
Definition: traffic.h:243
@ si_vehicle_hgv
Definition: traffic.h:242
@ si_vehicle_hazmat
Definition: traffic.h:241
@ si_tendency_queue_decreasing
Definition: traffic.h:234
@ si_place_tunnel
Definition: traffic.h:233
@ si_vehicle_bus
Definition: traffic.h:237
@ si_vehicle_car
Definition: traffic.h:238
@ si_vehicle_car_with_trailer
Definition: traffic.h:240
@ si_vehicle_with_trailer
Definition: traffic.h:244
@ si_vehicle_all
Definition: traffic.h:236
@ si_place_ramp
Definition: traffic.h:231
@ si_vehicle_car_with_caravan
Definition: traffic.h:239
@ si_place_bridge
Definition: traffic.h:230
@ si_place_roadworks
Definition: traffic.h:232
void traffic_event_destroy(struct traffic_event *this_)
Destroys a traffic_event.
Definition: traffic.c:5601
struct traffic_event * traffic_event_new_short(enum event_class event_class, enum event_type type)
Creates a new traffic_event.
Definition: traffic.c:5597
event_type
Event types.
Definition: traffic.h:98
@ event_restriction_entry_blocked
Definition: traffic.h:158
@ event_restriction_contraflow
Definition: traffic.h:152
@ event_restriction_exit_blocked
Definition: traffic.h:160
@ event_invalid
Definition: traffic.h:99
@ event_restriction_open
Definition: traffic.h:165
@ event_congestion_cleared
Definition: traffic.h:100
@ event_congestion_slow_traffic
Definition: traffic.h:109
@ event_congestion_traffic_flowing_freely
Definition: traffic.h:117
@ event_restriction_ramp_closed
Definition: traffic.h:167
@ event_congestion_traffic_easing
Definition: traffic.h:116
@ event_restriction_access_restrictions_lifted
Definition: traffic.h:135
@ event_restriction_carriageway_blocked
Definition: traffic.h:148
@ event_restriction_all_carriageways_reopened
Definition: traffic.h:139
@ event_congestion_traffic_problem
Definition: traffic.h:126
@ event_delay_clearance
Definition: traffic.h:127
@ event_restriction_blocked_ahead
Definition: traffic.h:146
@ event_congestion_traffic_lighter_than_normal
Definition: traffic.h:121
@ event_restriction_speed_limit
Definition: traffic.h:178
@ event_restriction_ramp_reopened
Definition: traffic.h:168
@ event_delay_several_hours
Definition: traffic.h:132
@ event_delay_forecast_withdrawn
Definition: traffic.h:130
@ event_restriction_lane_blocked
Definition: traffic.h:163
@ event_delay_uncertain_duration
Definition: traffic.h:133
@ event_restriction_lane_closed
Definition: traffic.h:164
@ event_restriction_intermittent_closures
Definition: traffic.h:162
@ event_delay_long_delay
Definition: traffic.h:131
@ event_restriction_reopened
Definition: traffic.h:172
@ event_congestion_normal_traffic
Definition: traffic.h:105
@ event_congestion_none
Definition: traffic.h:104
@ event_restriction_road_cleared
Definition: traffic.h:173
@ event_restriction_batch_service
Definition: traffic.h:140
@ event_restriction_all_carriageways_cleared
Definition: traffic.h:138
@ event_congestion_long_queue
Definition: traffic.h:103
@ event_restriction_exit_reopened
Definition: traffic.h:161
@ event_congestion_traffic_heavier_than_normal
Definition: traffic.h:119
@ event_restriction_ramp_blocked
Definition: traffic.h:166
@ event_restriction_speed_limit_lifted
Definition: traffic.h:179
@ event_restriction_reduced_lanes
Definition: traffic.h:169
@ event_restriction_carriageway_closed
Definition: traffic.h:150
@ event_restriction_blocked
Definition: traffic.h:143
@ event_congestion_forecast_withdrawn
Definition: traffic.h:101
@ event_restriction_closed
Definition: traffic.h:153
@ event_restriction_entry_reopened
Definition: traffic.h:159
@ event_congestion_traffic_much_heavier_than_normal
Definition: traffic.h:123
@ event_congestion_stationary_traffic_likely
Definition: traffic.h:111
@ event_congestion_stationary_traffic
Definition: traffic.h:110
@ event_delay_delay
Definition: traffic.h:128
@ event_congestion_traffic_building_up
Definition: traffic.h:112
@ event_delay_delay_possible
Definition: traffic.h:129
@ event_congestion_queue_likely
Definition: traffic.h:107
@ event_congestion_heavy_traffic
Definition: traffic.h:102
@ event_restriction_single_alternate_line_traffic
Definition: traffic.h:174
@ event_congestion_traffic_congestion
Definition: traffic.h:114
@ event_congestion_queue
Definition: traffic.h:106
@ event_delay_very_long_delay
Definition: traffic.h:134
@ event_restriction_closed_ahead
Definition: traffic.h:156
event_class
Classes for events.
Definition: traffic.h:82
@ event_class_congestion
Definition: traffic.h:84
@ event_class_restriction
Definition: traffic.h:86
@ event_class_delay
Definition: traffic.h:85
@ event_class_invalid
Definition: traffic.h:83
struct traffic_location * traffic_location_new(struct traffic_point *at, struct traffic_point *from, struct traffic_point *to, struct traffic_point *via, struct traffic_point *not_via, char *destination, char *direction, enum location_dir directionality, enum location_fuzziness fuzziness, enum location_ramps ramps, enum item_type road_type, char *road_name, char *road_ref, char *tmc_table, int tmc_direction)
Creates a new traffic_location.
Definition: traffic.c:5494
enum location_fuzziness location_fuzziness_new(char *string)
Creates a location fuzziness from its string representation.
Definition: traffic.c:5312
void traffic_set_mapset(struct traffic *this_, struct mapset *ms)
Sets the mapset for the traffic plugin.
Definition: traffic.c:5942
struct traffic_event * traffic_event_new(enum event_class event_class, enum event_type type, int length, int speed, struct quantifier *quantifier, int si_count, struct traffic_suppl_info **si)
Creates a new traffic_event.
Definition: traffic.c:5577
struct traffic_message ** traffic_get_messages_from_xml_file(struct traffic *this_, char *filename)
Reads previously stored traffic messages from an XML file.
Definition: traffic.c:5861
void traffic_message_add_event(struct traffic_message *this_, struct traffic_event *event)
Adds an event to a message.
Definition: traffic.c:5723
enum event_class event_class_new(char *string)
Creates an event class from its string representation.
Definition: traffic.c:5030
void traffic_suppl_info_destroy(struct traffic_suppl_info *this_)
Destroys a traffic_suppl_info.
Definition: traffic.c:5571
enum si_class si_class_new(char *string)
Creates a supplementary information class from its string representation.
Definition: traffic.c:5368
void traffic_message_destroy(struct traffic_message *this_)
Destroys a traffic_message.
Definition: traffic.c:5697
const char * event_class_to_string(enum event_class this_)
Translates an event class to its string representation.
Definition: traffic.c:5042
struct traffic_message * traffic_message_new_short(char *id, time_t receive_time, time_t update_time, time_t expiration_time, int is_forecast, struct traffic_location *location, int event_count, struct traffic_event **events)
Creates a new traffic_message.
Definition: traffic.c:5670
location_ramps
Whether a location refers to the main carriageway or the ramps.
Definition: traffic.h:208
@ location_ramps_exit
Definition: traffic.h:212
@ location_ramps_entry
Definition: traffic.h:211
@ location_ramps_none
Definition: traffic.h:209
@ location_ramps_all
Definition: traffic.h:210
struct traffic_message * traffic_message_new_cancellation(char *id, time_t receive_time, time_t update_time, time_t expiration_time, struct traffic_location *location)
Creates a new cancellation traffic_message.
Definition: traffic.c:5691
location_dir
The directionality of a location.
Definition: traffic.h:185
@ location_dir_one
Definition: traffic.h:186
@ location_dir_both
Definition: traffic.h:187
struct traffic_message ** traffic_get_stored_messages(struct traffic *this_)
Returns currently active traffic messages.
Definition: traffic.c:5895
struct traffic_point * traffic_point_new(float lon, float lat, char *junction_name, char *junction_ref, char *tmc_id)
Creates a new traffic_point.
Definition: traffic.c:5466
struct traffic_message * traffic_message_new_single_event(char *id, time_t receive_time, time_t update_time, time_t expiration_time, int is_forecast, struct traffic_location *location, enum event_class event_class, enum event_type type)
Creates a new single-event traffic_message.
Definition: traffic.c:5677
si_class
Classes for supplementary information items.
Definition: traffic.h:218
@ si_class_place
Definition: traffic.h:220
@ si_class_tendency
Definition: traffic.h:221
@ si_class_invalid
Definition: traffic.h:219
@ si_class_vehicle
Definition: traffic.h:222
const char * event_type_to_string(enum event_type this_)
Translates an event type to its string representation.
Definition: traffic.c:5167
enum item_type item_type_from_road_type(char *string, int is_urban)
Creates an item type from a road type.
Definition: traffic.c:5284
struct item ** traffic_message_get_items(struct traffic_message *this_)
Returns the items associated with a message.
Definition: traffic.c:5741
enum si_type si_type_new(char *string)
Creates a supplementary information type from its string representation.
Definition: traffic.c:5393
struct traffic_event * traffic_message_get_event(struct traffic_message *this_, int index)
Retrieves an event associated with a message.
Definition: traffic.c:5734
const char * location_ramps_to_string(enum location_ramps this_)
Translates an enum location_ramps to its string representation.
Definition: traffic.c:5353
const char * si_type_to_string(enum si_type this_)
Translates a supplementary information type to its string representation.
Definition: traffic.c:5429
struct traffic_suppl_info * traffic_suppl_info_new(enum si_class si_class, enum si_type type, struct quantifier *quantifier)
Creates a new traffic_suppl_info.
Definition: traffic.c:5561
void traffic_point_destroy(struct traffic_point *this_)
Destroys a traffic_point.
Definition: traffic.c:5483
location_fuzziness
The fuzziness of a location.
Definition: traffic.h:193
@ location_fuzziness_end_unknown
Definition: traffic.h:197
@ location_fuzziness_extent_unknown
Definition: traffic.h:201
@ location_fuzziness_none
Definition: traffic.h:194
@ location_fuzziness_low_res
Definition: traffic.h:195
@ location_fuzziness_start_unknown
Definition: traffic.h:199
void traffic_process_messages(struct traffic *this_, struct traffic_message **messages)
Processes new traffic messages.
Definition: traffic.c:5927
void traffic_location_destroy(struct traffic_location *this_)
Destroys a traffic_location.
Definition: traffic.c:5530
struct traffic_suppl_info * traffic_event_get_suppl_info(struct traffic_event *this_, int index)
Retrieves a supplementary information item associated with an event.
Definition: traffic.c:5631
void traffic_event_add_suppl_info(struct traffic_event *this_, struct traffic_suppl_info *si)
Adds a supplementary information item to an event.
Definition: traffic.c:5614
enum location_dir location_dir_new(char *string)
Creates a location directionality from its string representation.
Definition: traffic.c:5306
const char * location_fuzziness_to_string(enum location_fuzziness this_)
Translates location fuzziness to its string representation.
Definition: traffic.c:5326
enum location_ramps location_ramps_new(char *string)
Creates an enum location_ramps from its string representation.
Definition: traffic.c:5341
struct traffic_location * traffic_location_new_short(struct traffic_point *at, struct traffic_point *from, struct traffic_point *to, struct traffic_point *via, struct traffic_point *not_via, enum location_dir directionality, enum location_fuzziness fuzziness)
Creates a new traffic_location.
Definition: traffic.c:5523
void traffic_set_route(struct traffic *this_, struct route *rt)
Sets the route for the traffic plugin.
Definition: traffic.c:5946
void traffic_destroy(struct traffic *this_)
Destructor.
Definition: traffic.c:5950
enum event_type event_type_new(char *string)
Creates an event type from its string representation.
Definition: traffic.c:5055