2 * Navit, a modular navigation system.
3 * Copyright (C) 2005-2008 Navit Team
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public License
7 * version 2 as published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
29 #include "projection.h"
34 #define ATTR2(x,y) attr_##y=x,
35 #define ATTR(x) attr_##x,
41 #define AF_ONEWAY (1<<0)
42 #define AF_ONEWAYREV (1<<1)
43 #define AF_NOPASS (AF_ONEWAY|AF_ONEWAYREV)
44 #define AF_ONEWAYMASK (AF_ONEWAY|AF_ONEWAYREV)
45 #define AF_SEGMENTED (1<<2)
46 #define AF_ROUNDABOUT (1<<3)
55 enum item_type item_type;
56 enum projection projection;
59 struct coord_geo *coord_geo;
61 struct callback *callback;
62 struct callback_list *callback_list;
63 struct vehicle *vehicle;
64 struct layout *layout;
67 struct mapset *mapset;
70 struct navigation *navigation;
72 struct pcoord *pcoord;
74 struct graphics *graphics;
75 struct tracking *tracking;
76 struct itemgra *itemgra;
77 struct plugin *plugin;
78 struct plugins *plugins;
79 struct polygon *polygon;
80 struct polyline *polyline;
81 struct circle *circle;
85 struct arrows *arrows;
86 struct element *element;
87 struct speech *speech;
88 struct cursor *cursor;
93 enum item_type *item_types;
103 enum attr_type attr_from_name(const char *name);
104 char *attr_to_name(enum attr_type attr);
105 struct attr *attr_new_from_text(const char *name, const char *value);
106 char *attr_to_text(struct attr *attr, struct map *map, int pretty);
107 struct attr *attr_search(struct attr **attrs, struct attr *last, enum attr_type attr);
108 int attr_generic_get_attr(struct attr **attrs, struct attr **def_attrs, enum attr_type type, struct attr *attr, struct attr_iter *iter);
109 struct attr **attr_generic_set_attr(struct attr **attrs, struct attr *attr);
110 struct attr **attr_generic_add_attr(struct attr **attrs, struct attr *attr);
111 int attr_data_size(struct attr *attr);
112 void *attr_data_get(struct attr *attr);
113 void attr_data_set(struct attr *attr, void *data);
114 void attr_data_set_le(struct attr * attr, void * data);
115 void attr_free(struct attr *attr);
116 struct attr *attr_dup(struct attr *attr);
117 void attr_list_free(struct attr **attrs);
118 struct attr **attr_list_dup(struct attr **attrs);
119 /* end of prototypes */