X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fwms.h;fp=src%2Fwms.h;h=0000000000000000000000000000000000000000;hp=591befe5434acb45280ded907f06a6c1f44cf220;hb=733833b754f20c98976bca621d87d090621abff3;hpb=8060da4427ab86674362a745e9d4af15b8e48f95 diff --git a/src/wms.h b/src/wms.h deleted file mode 100644 index 591befe..0000000 --- a/src/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