5 Author: Pekka Riikonen <priikone@silcnet.org>
7 Copyright (C) 2003 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; version 2 of the License.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
28 unsigned char data[16 * 16];
32 /* SilcMap command context. */
34 /* Map command datas */
52 unsigned int color_set : 1;
53 unsigned int lcolor_set : 1;
56 unsigned int writemap : 1;
57 unsigned int writehtml : 1;
58 unsigned int writemaphtml : 1;
59 unsigned int writerel : 1;
61 unsigned int draw_line : 1;
62 unsigned int draw_text : 1;
63 unsigned int draw_circle : 1;
64 unsigned int draw_rectangle : 1;
65 } *SilcMapCommand, SilcMapCommandStruct;
67 /* The SilcMap context. */
70 SilcClient client; /* SILC Client context */
71 char *conffile; /* Config file name */
72 SilcDList conns; /* Connections */
73 SilcUInt32 conns_num; /* Number of created connections */
74 SilcUInt32 conn_num; /* Current number of processed connections */
77 unsigned char *bitmap; /* Loaded bitmap image */
78 SilcUInt32 bitsilc_map_size; /* Size of bitmap */
79 SilcUInt32 width; /* Bitmap width in pixels */
80 SilcUInt32 height; /* Bitmap height in pixels */
81 SilcUInt32 maxcolor; /* Max color value in bitmap */
82 MapFonts font; /* Current font */
85 SilcMapCommandStruct writemap;
86 SilcMapCommandStruct writehtml;
87 SilcMapCommandStruct writerel;
88 SilcMapCommandStruct *writemaphtml;
89 SilcMapCommandStruct *cut;
90 SilcUInt32 writemaphtml_count;
94 /* SilcMap connecetion context. */
96 /* Server and connection details */
109 unsigned int connect : 1;
110 unsigned int starttime : 1;
111 unsigned int uptime : 1;
112 unsigned int clients : 1;
113 unsigned int channels : 1;
114 unsigned int server_ops : 1;
115 unsigned int router_ops : 1;
116 unsigned int cell_clients : 1;
117 unsigned int cell_channels : 1;
118 unsigned int cell_servers : 1;
119 unsigned int all_clients : 1;
120 unsigned int all_channels : 1;
121 unsigned int all_servers : 1;
122 unsigned int all_routers : 1;
123 unsigned int all_server_ops : 1;
124 unsigned int all_router_ops : 1;
125 unsigned int motd : 1;
126 unsigned int down : 1;
127 unsigned int stats_received : 1;
128 unsigned int motd_received : 1;
132 SilcUInt32 starttime;
136 SilcUInt32 server_ops;
137 SilcUInt32 router_ops;
138 SilcUInt32 cell_clients;
139 SilcUInt32 cell_channels;
140 SilcUInt32 cell_servers;
141 SilcUInt32 all_clients;
142 SilcUInt32 all_channels;
143 SilcUInt32 all_servers;
144 SilcUInt32 all_routers;
145 SilcUInt32 all_server_ops;
146 SilcUInt32 all_router_ops;
154 char *down_text_color;
161 SilcClientConnection conn;
162 } *SilcMapConnection;
164 extern SilcClientOperations silc_map_client_ops;
166 SilcMap silc_map_alloc(const char *conffile);
167 void silc_map_free(SilcMap map);
168 bool silc_map_commands_parse(SilcMap map, const char *filename);
169 void silc_map_connect(SilcMap map, SilcMapConnection mapconn);
170 bool silc_map_load_ppm(SilcMap map, const char *filename);
171 bool silc_map_write_ppm(SilcMap map, const char *filename);
172 bool silc_map_cut(SilcMap map, SilcInt32 x, SilcInt32 y,
173 SilcUInt32 width, SilcUInt32 height,
175 bool silc_map_draw(SilcMap map,
176 SilcInt32 x, SilcInt32 y,
177 const unsigned char *bitmap,
178 SilcUInt32 width, SilcUInt32 height);
179 bool silc_map_draw_raw(SilcMap map,
180 SilcInt32 x, SilcInt32 y,
181 const unsigned char *bitmap,
182 SilcUInt32 width, SilcUInt32 height,
183 SilcInt16 r, SilcInt16 g, SilcInt16 b);
184 bool silc_map_draw_line(SilcMap map, SilcUInt32 width,
185 SilcInt32 a_x, SilcInt32 a_y,
186 SilcInt32 b_x, SilcInt32 b_y,
187 SilcInt16 r, SilcInt16 g, SilcInt16 b);
188 bool silc_map_draw_text(SilcMap map, const char *text,
189 SilcInt32 x, SilcInt32 y,
190 SilcInt16 r, SilcInt16 g, SilcInt16 b);
191 bool silc_map_draw_circle(SilcMap map, SilcInt32 x, SilcInt32 y,
192 SilcInt16 r, SilcInt16 g, SilcInt16 b,
193 const char *label, SilcInt32 lposx, SilcInt32 lposy,
194 SilcInt16 lr, SilcInt16 lg, SilcInt16 lb);
195 bool silc_map_draw_rectangle(SilcMap map, SilcInt32 x, SilcInt32 y,
196 SilcInt16 r, SilcInt16 g, SilcInt16 b,
197 const char *label, SilcInt32 lposx,
199 SilcInt16 lr, SilcInt16 lg, SilcInt16 lb);
200 double silc_map_parse_pos(char *pos);
201 int silc_map_lon2x(SilcMap map, char *latitude);
202 int silc_map_lat2y(SilcMap map, char *longitude);
203 bool silc_map_parse_color(const char *color,
204 SilcInt16 *r, SilcInt16 *g, SilcInt16 *b);
205 bool silc_map_load_font(SilcMap map, const char *filename);
206 bool silc_map_writehtml(SilcMap map, SilcMapConnection mapconn);
207 bool silc_map_writehtml_index(SilcMap map);
208 bool silc_map_writemaphtml(SilcMap map);
209 bool silc_map_writerel(SilcMap map, SilcMapConnection mapconn);
210 bool silc_map_writerelhtml(SilcMap map);
212 #endif /* SILCMAP_H */