/[zanavi_public1]/navit/navit/roadprofile.c
ZANavi

Contents of /navit/navit/roadprofile.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations) (download)
Fri Oct 28 21:19:04 2011 UTC (12 years, 5 months ago) by zoff99
File MIME type: text/plain
File size: 2125 byte(s)
import files
1 zoff99 2 /**
2     * Navit, a modular navigation system.
3     * Copyright (C) 2005-2008 Navit Team
4     *
5     * This program is free software; you can redistribute it and/or
6     * modify it under the terms of the GNU General Public License
7     * version 2 as published by the Free Software Foundation.
8     *
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 General Public License for more details.
13     *
14     * You should have received a copy of the GNU General Public License
15     * 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.
18     */
19    
20     #include <glib.h>
21     #include "debug.h"
22     #include "item.h"
23     #include "roadprofile.h"
24    
25     static void
26     roadprofile_set_attr_do(struct roadprofile *this, struct attr *attr)
27     {
28     switch (attr->type) {
29     case attr_speed:
30     this->speed=attr->u.num;
31     break;
32     case attr_maxspeed:
33     this->maxspeed=attr->u.num;
34     break;
35     case attr_route_weight:
36     this->route_weight=attr->u.num;
37     break;
38     default:
39     break;
40     }
41     }
42    
43     struct roadprofile *
44     roadprofile_new(struct attr *parent, struct attr **attrs)
45     {
46     struct roadprofile *this_;
47     struct attr **attr;
48     this_=g_new0(struct roadprofile, 1);
49     this_->attrs=attr_list_dup(attrs);
50     this_->maxspeed=0;
51     for (attr=attrs;*attr; attr++)
52     roadprofile_set_attr_do(this_, *attr);
53     return this_;
54     }
55    
56     int
57     roadprofile_get_attr(struct roadprofile *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter)
58     {
59     return attr_generic_get_attr(this_->attrs, NULL, type, attr, iter);
60     }
61    
62     int
63     roadprofile_set_attr(struct roadprofile *this_, struct attr *attr)
64     {
65     roadprofile_set_attr_do(this_, attr);
66     this_->attrs=attr_generic_set_attr(this_->attrs, attr);
67     return 1;
68     }
69    
70     int
71     roadprofile_add_attr(struct roadprofile *this_, struct attr *attr)
72     {
73     this_->attrs=attr_generic_add_attr(this_->attrs, attr);
74     return 1;
75     }
76    
77     int
78     roadprofile_remove_attr(struct roadprofile *this_, struct attr *attr)
79     {
80     this_->attrs=attr_generic_remove_attr(this_->attrs, attr);
81     return 1;
82     }
83    

   
Visit the ZANavi Wiki