summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvglasow <michael -at- vonglasow.com>2018-01-25 15:55:12 +0100
committermvglasow <michael -at- vonglasow.com>2018-01-25 15:55:12 +0100
commitd5b045721a2f7fcf6adac71d72819ba6652d614c (patch)
treecd271906488e95237e9fdfb1da5330f0ab2b51f9
parentc53c246e3989b62b3a772f247598ffd6236db483 (diff)
downloadnavit-d5b045721a2f7fcf6adac71d72819ba6652d614c.tar.gz
Add:traffic:String conversion for event type
Signed-off-by: mvglasow <michael -at- vonglasow.com>
-rw-r--r--navit/traffic.c211
-rw-r--r--navit/traffic.h17
2 files changed, 228 insertions, 0 deletions
diff --git a/navit/traffic.c b/navit/traffic.c
index 4bf81d1c2..d36063b4f 100644
--- a/navit/traffic.c
+++ b/navit/traffic.c
@@ -2698,6 +2698,217 @@ const char * event_class_to_string(enum event_class this_) {
}
}
+enum event_type event_type_new(char * string) {
+ if (!g_ascii_strcasecmp(string, "CONGESTION_CLEARED"))
+ return event_congestion_cleared;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_FORECAST_WITHDRAWN"))
+ return event_congestion_forecast_withdrawn;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_HEAVY_TRAFFIC"))
+ return event_congestion_heavy_traffic;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_LONG_QUEUE"))
+ return event_congestion_long_queue;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_NONE"))
+ return event_congestion_none;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_NORMAL_TRAFFIC"))
+ return event_congestion_normal_traffic;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_QUEUE"))
+ return event_congestion_queue;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_QUEKE_LIKELY"))
+ return event_congestion_queue_likely;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_SLOW_TRAFFIC"))
+ return event_congestion_slow_traffic;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_STATIONARY_TRAFFIC"))
+ return event_congestion_stationary_traffic;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_STATIONARY_TRAFFIC_LIKELY"))
+ return event_congestion_stationary_traffic_likely;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_BUILDING_UP"))
+ return event_congestion_traffic_building_up;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_CONGESTION"))
+ return event_congestion_traffic_congestion;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_EASING"))
+ return event_congestion_traffic_easing;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_FLOWING_FREELY"))
+ return event_congestion_traffic_flowing_freely;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_HEAVIER_THAN_NORMAL"))
+ return event_congestion_traffic_heavier_than_normal;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_LIGHTER_THAN_NORMAL"))
+ return event_congestion_traffic_lighter_than_normal;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_MUCH_HEAVIER_THAN_NORMAL"))
+ return event_congestion_traffic_much_heavier_than_normal;
+ if (!g_ascii_strcasecmp(string, "CONGESTION_TRAFFIC_PROBLEM"))
+ return event_congestion_traffic_problem;
+ if (!g_ascii_strcasecmp(string, "DELAY_CLEARANCE"))
+ return event_delay_clearance;
+ if (!g_ascii_strcasecmp(string, "DELAY_DELAY"))
+ return event_delay_delay;
+ if (!g_ascii_strcasecmp(string, "DELAY_DELAY_POSSIBLE"))
+ return event_delay_delay_possible;
+ if (!g_ascii_strcasecmp(string, "DELAY_FORECAST_WITHDRAWN"))
+ return event_delay_forecast_withdrawn;
+ if (!g_ascii_strcasecmp(string, "DELAY_LONG_DELAY"))
+ return event_delay_long_delay;
+ if (!g_ascii_strcasecmp(string, "DELAY_SEVERAL_HOURS"))
+ return event_delay_several_hours;
+ if (!g_ascii_strcasecmp(string, "DELAY_UNCERTAIN_DURATION"))
+ return event_delay_uncertain_duration;
+ if (!g_ascii_strcasecmp(string, "DELAY_VERY_LONG_DELAY"))
+ return event_delay_very_long_delay;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ACCESS_RESTRICTIONS_LIFTED"))
+ return event_restriction_access_restrictions_lifted;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ALL_CARRIAGEWAYS_CLEARED"))
+ return event_restriction_all_carriageways_cleared;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ALL_CARRIAGEWAYS_REOPENED"))
+ return event_restriction_all_carriageways_reopened;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_BATCH_SERVICE"))
+ return event_restriction_batch_service;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_BLOCKED"))
+ return event_restriction_blocked;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_BLOCKED_AHEAD"))
+ return event_restriction_blocked_ahead;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_CARRIAGEWAY_BLOCKED"))
+ return event_restriction_carriageway_blocked;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_CARRIAGEWAY_CLOSED"))
+ return event_restriction_carriageway_closed;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_CLOSED"))
+ return event_restriction_closed;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_CLOSED_AHEAD"))
+ return event_restriction_closed_ahead;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ENTRY_BLOCKED"))
+ return event_restriction_entry_blocked;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ENTRY_REOPENED"))
+ return event_restriction_entry_reopened;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_INTERMITTENT_CLOSURES"))
+ return event_restriction_intermittent_closures;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_OPEN"))
+ return event_restriction_open;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_RAMP_BLOCKED"))
+ return event_restriction_ramp_blocked;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_RAMP_CLOSED"))
+ return event_restriction_ramp_closed;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_RAMP_REOPENED"))
+ return event_restriction_ramp_reopened;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_REOPENED"))
+ return event_restriction_reopened;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_ROAD_CLEARED"))
+ return event_restriction_road_cleared;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_SINGLE_ALTERNATE_LINE_TRAFFIC"))
+ return event_restriction_single_alternate_line_traffic;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_SPEED_LIMIT"))
+ return event_restriction_speed_limit;
+ if (!g_ascii_strcasecmp(string, "RESTRICTION_SPEED_LIMIT_LIFTED"))
+ return event_restriction_speed_limit_lifted;
+ return event_invalid;
+}
+
+const char * event_type_to_string(enum event_type this_) {
+ switch (this_) {
+ case event_congestion_cleared:
+ return "CONGESTION_CLEARED";
+ case event_congestion_forecast_withdrawn:
+ return "CONGESTION_FORECAST_WITHDRAWN";
+ case event_congestion_heavy_traffic:
+ return "CONGESTION_HEAVY_TRAFFIC";
+ case event_congestion_long_queue:
+ return "CONGESTION_LONG_QUEUE";
+ case event_congestion_none:
+ return "CONGESTION_NONE";
+ case event_congestion_normal_traffic:
+ return "CONGESTION_NORMAL_TRAFFIC";
+ case event_congestion_queue:
+ return "CONGESTION_QUEUE";
+ case event_congestion_queue_likely:
+ return "CONGESTION_QUEUE_LIKELY";
+ case event_congestion_slow_traffic:
+ return "CONGESTION_SLOW_TRAFFIC";
+ case event_congestion_stationary_traffic:
+ return "CONGESTION_STATIONARY_TRAFFIC";
+ case event_congestion_stationary_traffic_likely:
+ return "CONGESTION_STATIONARY_TRAFFIC_LIKELY";
+ case event_congestion_traffic_building_up:
+ return "CONGESTION_TRAFFIC_BUILDING_UP";
+ case event_congestion_traffic_congestion:
+ return "CONGESTION_TRAFFIC_CONGESTION";
+ case event_congestion_traffic_easing:
+ return "CONGESTION_TRAFFIC_EASING";
+ case event_congestion_traffic_flowing_freely:
+ return "CONGESTION_TRAFFIC_FLOWING_FREELY";
+ case event_congestion_traffic_heavier_than_normal:
+ return "CONGESTION_TRAFFIC_HEAVIER_THAN_NORMAL";
+ case event_congestion_traffic_lighter_than_normal:
+ return "CONGESTION_TRAFFIC_LIGHTER_THAN_NORMAL";
+ case event_congestion_traffic_much_heavier_than_normal:
+ return "CONGESTION_TRAFFIC_MUCH_HEAVIER_THAN_NORMAL";
+ case event_congestion_traffic_problem:
+ return "CONGESTION_TRAFFIC_PROBLEM";
+ case event_delay_clearance:
+ return "DELAY_CLEARANCE";
+ case event_delay_delay:
+ return "DELAY_DELAY";
+ case event_delay_delay_possible:
+ return "DELAY_DELAY_POSSIBLE";
+ case event_delay_forecast_withdrawn:
+ return "DELAY_FORECAST_WITHDRAWN";
+ case event_delay_long_delay:
+ return "DELAY_LONG_DELAY";
+ case event_delay_several_hours:
+ return "DELAY_SEVERAL_HOURS";
+ case event_delay_uncertain_duration:
+ return "DELAY_UNCERTAIN_DURATION";
+ case event_delay_very_long_delay:
+ return "DELAY_VERY_LONG_DELAY";
+ case event_restriction_access_restrictions_lifted:
+ return "RESTRICTION_ACCESS_RESTRICTIONS_LIFTED";
+ case event_restriction_all_carriageways_cleared:
+ return "RESTRICTION_ALL_CARRIAGEWAYS_CLEARED";
+ case event_restriction_all_carriageways_reopened:
+ return "RESTRICTION_ALL_CARRIAGEWAYS_REOPENED";
+ case event_restriction_batch_service:
+ return "RESTRICTION_BATCH_SERVICE";
+ case event_restriction_blocked:
+ return "RESTRICTION_BLOCKED";
+ case event_restriction_blocked_ahead:
+ return "RESTRICTION_BLOCKED_AHEAD";
+ case event_restriction_carriageway_blocked:
+ return "RESTRICTION_CARRIAGEWAY_BLOCKED";
+ case event_restriction_carriageway_closed:
+ return "RESTRICTION_CARRIAGEWAY_CLOSED";
+ case event_restriction_closed:
+ return "RESTRICTION_CLOSED";
+ case event_restriction_closed_ahead:
+ return "RESTRICTION_CLOSED_AHEAD";
+ case event_restriction_entry_blocked:
+ return "RESTRICTION_ENTRY_BLOCKED";
+ case event_restriction_entry_reopened:
+ return "RESTRICTION_ENTRY_REOPENED";
+ case event_restriction_exit_blocked:
+ return "RESTRICTION_EXIT_BLOCKED";
+ case event_restriction_exit_reopened:
+ return "RESTRICTION_EXIT_REOPENED";
+ case event_restriction_intermittent_closures:
+ return "RESTRICTION_INTERMITTENT_CLOSURES";
+ case event_restriction_open:
+ return "RESTRICTION_OPEN";
+ case event_restriction_ramp_blocked:
+ return "RESTRICTION_RAMP_BLOCKED";
+ case event_restriction_ramp_closed:
+ return "RESTRICTION_RAMP_CLOSED";
+ case event_restriction_ramp_reopened:
+ return "RESTRICTION_RAMP_REOPENED";
+ case event_restriction_reopened:
+ return "RESTRICTION_REOPENED";
+ case event_restriction_road_cleared:
+ return "RESTRICTION_ROAD_CLEARED";
+ case event_restriction_single_alternate_line_traffic:
+ return "RESTRICTION_SINGLE_ALTERNATE_LINE_TRAFFIC";
+ case event_restriction_speed_limit:
+ return "RESTRICTION_SPEED_LIMIT";
+ case event_restriction_speed_limit_lifted:
+ return "RESTRICTION_SPEED_LIMIT_LIFTED";
+ default:
+ return "INVALID";
+ }
+}
+
enum location_fuzziness location_fuzziness_new(char * string) {
if (!g_ascii_strcasecmp(string, "LOW_RES"))
return location_fuzziness_low_res;
diff --git a/navit/traffic.h b/navit/traffic.h
index 237bbfef9..b9bfcf670 100644
--- a/navit/traffic.h
+++ b/navit/traffic.h
@@ -409,6 +409,23 @@ enum event_class event_class_new(char * string);
const char * event_class_to_string(enum event_class this_);
/**
+ * @brief Creates an event type from its string representation.
+ *
+ * @string The string representation (case is ignored)
+ *
+ * @return The corresponding `enum event_type`, or `event_invalid` if `string` does not match a known
+ * identifier
+ */
+enum event_type event_type_new(char * string);
+
+/**
+ * @brief Translates an event type to its string representation.
+ *
+ * @return The string representation of the event type
+ */
+const char * event_type_to_string(enum event_type this_);
+
+/**
* @brief Creates a location fuzziness from its string representation.
*
* @string The string representation (case is ignored)