X-Git-Url: http://pileus.org/git/?p=aweather;a=blobdiff_plain;f=src%2Fgis%2Fwms.h;fp=src%2Fgis%2Fwms.h;h=0000000000000000000000000000000000000000;hp=a419e74cf0cc12480df6432807bd1d2e1be7bc4f;hb=00413dbcb8af54c99011668be8975e9f3a3a3646;hpb=42eaa69adc4578f47225ce8e1a7f89fdfaedffa4 diff --git a/src/gis/wms.h b/src/gis/wms.h deleted file mode 100644 index a419e74..0000000 --- a/src/gis/wms.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2009 Andy Spencer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef __WMS_H__ -#define __WMS_H__ - -#include -#include -#include - -typedef struct _WmsCacheNode WmsCacheNode; -typedef struct _WmsInfo WmsInfo; - -typedef void (*WmsChunkCallback)(gsize cur, gsize total, gpointer user_data); -typedef void (*WmsDoneCallback)(WmsCacheNode *node, gpointer user_data); -typedef void (*WmsLoader)(WmsCacheNode *node, const gchar *path, gint width, gint height); -typedef void (*WmsFreeer)(WmsCacheNode *node); - -/**************** - * WmsCacheNode * - ****************/ -struct _WmsCacheNode { - gpointer data; - gdouble latlon[4]; // xmin,ymin,xmax,ymax - gdouble res; // xmin,ymin,xmax,ymax - gboolean caching; - time_t atime; - WmsCacheNode *parent; - WmsCacheNode *children[4][4]; -}; - -WmsCacheNode *wms_cache_node_new(WmsCacheNode *parent, gdouble xmin, gdouble ymin, gdouble xmax, gdouble ymax, gint width); - -void wms_cache_node_free(WmsCacheNode *node, WmsFreeer freeer); - -/*********** - * WmsInfo * - ***********/ -struct _WmsInfo { - gchar *uri_prefix; - gchar *uri_layer; - gchar *uri_format; - gchar *cache_prefix; - gchar *cache_ext; - gint resolution; // m/px - gint width; - gint height; - - guint max_age; - guint gc_source; - time_t atime; - WmsLoader loader; - WmsFreeer freeer; - WmsCacheNode *cache_root; - SoupSession *soup; -}; - -WmsInfo *wms_info_new(WmsLoader loader, WmsFreeer freeer, - gchar *uri_prefix, gchar *uri_layer, gchar *uri_format, - gchar *cache_prefix, gchar *cache_ext, - gint resolution, gint width, gint height); - -void wms_info_cache(WmsInfo *info, gdouble resolution, gdouble lat, gdouble lon, - WmsChunkCallback chunk_callback, WmsDoneCallback done_callback, - gpointer user_data); - -WmsCacheNode *wms_info_fetch(WmsInfo *info, WmsCacheNode *root, - gdouble resolution, gdouble lat, gdouble lon, - gboolean *correct); - -WmsCacheNode *wms_info_fetch_cache(WmsInfo *info, WmsCacheNode *root, - gdouble resolution, gdouble lat, gdouble lon, - WmsChunkCallback chunk_callback, WmsDoneCallback done_callback, - gpointer user_data); - -gboolean wms_info_gc(WmsInfo *self); - -void wms_info_free(WmsInfo *info); - - -/******************************** - * Specific things (bmng, srtm) * - ********************************/ -typedef struct _WmsBil WmsBil; -struct _WmsBil { - gint16 *data; - gint width; - gint height; -}; - -void bmng_opengl_loader(WmsCacheNode *node, const gchar *path, gint width, gint height); -void bmng_opengl_freeer(WmsCacheNode *node); - -void bmng_pixbuf_loader(WmsCacheNode *node, const gchar *path, gint width, gint height); -void bmng_pixbuf_freeer(WmsCacheNode *node); - -WmsInfo *wms_info_new_for_bmng(WmsLoader loader, WmsFreeer freeer); - -void srtm_bil_loader(WmsCacheNode *node, const gchar *path, gint width, gint height); -void srtm_bil_freeer(WmsCacheNode *node); - -void srtm_pixbuf_loader(WmsCacheNode *node, const gchar *path, gint width, gint height); -void srtm_pixbuf_freeer(WmsCacheNode *node); - -WmsInfo *wms_info_new_for_srtm(WmsLoader loader, WmsFreeer freeer); - -#endif