]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikmapslayer.h
Make more portable .vik file, as don't save the map cache directory if it's the map...
[andy/viking.git] / src / vikmapslayer.h
index 77d3eff2de817554e7509437e9c6bdbd0b5e6d7b..568a092e03c203da6dde7dcc84976a9d768873b2 100644 (file)
 #include "vikcoord.h"
 #include "viklayer.h"
 #include "vikviewport.h"
+#include "vikmapsource.h"
 #include "mapcoord.h"
+#include "vikmapslayer_compat.h"
+
+G_BEGIN_DECLS
 
 #define VIK_MAPS_LAYER_TYPE            (vik_maps_layer_get_type ())
 #define VIK_MAPS_LAYER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIK_MAPS_LAYER_TYPE, VikMapsLayer))
@@ -43,20 +47,14 @@ GType vik_maps_layer_get_type ();
 
 typedef struct _VikMapsLayer VikMapsLayer;
 
-typedef struct {
-  guint8 uniq_id;
-  guint16 tilesize_x;
-  guint16 tilesize_y;
-  guint drawmode;
-  gboolean (*coord_to_mapcoord) ( const VikCoord *src, gdouble xzoom, gdouble yzoom, MapCoord *dest );
-  void (*mapcoord_to_center_coord) ( MapCoord *src, VikCoord *dest );
-  int (*download) ( MapCoord *src, const gchar *dest_fn );
-  /* TODO: constant size (yay!) */
-} VikMapsLayer_MapType;
-
-void maps_layer_register_type ( const char *label, guint id, VikMapsLayer_MapType *map_type );
-void maps_layer_download_section_without_redraw ( VikMapsLayer *vml, VikViewport *vvp, VikCoord *ul, VikCoord *br, gdouble zoom);
+void maps_layer_init ();
+void maps_layer_register_map_source ( VikMapSource *map );
+void maps_layer_download_section ( VikMapsLayer *vml, VikViewport *vvp, VikCoord *ul, VikCoord *br, gdouble zoom);
 gint vik_maps_layer_get_map_type(VikMapsLayer *vml);
 gchar *vik_maps_layer_get_map_label(VikMapsLayer *vml);
+gchar *maps_layer_default_dir ();
+void vik_maps_layer_download ( VikMapsLayer *vml, VikViewport *vvp, gboolean only_new );
+
+G_END_DECLS
 
 #endif