static VikLayerParamData max_elev_default ( void ) { return VIK_LPD_DOUBLE ( 1000.0 ); }
static VikLayerParam dem_layer_params[] = {
- { VIK_LAYER_DEM, "files", VIK_LAYER_PARAM_STRING_LIST, VIK_LAYER_GROUP_NONE, N_("DEM Files:"), VIK_LAYER_WIDGET_FILELIST, NULL, NULL, NULL, NULL },
- { VIK_LAYER_DEM, "source", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Download Source:"), VIK_LAYER_WIDGET_RADIOGROUP_STATIC, params_source, NULL, NULL, source_default },
- { VIK_LAYER_DEM, "color", VIK_LAYER_PARAM_COLOR, VIK_LAYER_GROUP_NONE, N_("Min Elev Color:"), VIK_LAYER_WIDGET_COLOR, NULL, NULL, NULL, color_default },
- { VIK_LAYER_DEM, "type", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Type:"), VIK_LAYER_WIDGET_RADIOGROUP_STATIC, params_type, NULL, NULL, type_default },
- { VIK_LAYER_DEM, "min_elev", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Min Elev:"), VIK_LAYER_WIDGET_SPINBUTTON, param_scales + 0, NULL, NULL, min_elev_default },
- { VIK_LAYER_DEM, "max_elev", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Max Elev:"), VIK_LAYER_WIDGET_SPINBUTTON, param_scales + 0, NULL, NULL, max_elev_default },
+ { VIK_LAYER_DEM, "files", VIK_LAYER_PARAM_STRING_LIST, VIK_LAYER_GROUP_NONE, N_("DEM Files:"), VIK_LAYER_WIDGET_FILELIST, NULL, NULL, NULL, NULL, NULL, NULL },
+ { VIK_LAYER_DEM, "source", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Download Source:"), VIK_LAYER_WIDGET_RADIOGROUP_STATIC, params_source, NULL, NULL, source_default, NULL, NULL },
+ { VIK_LAYER_DEM, "color", VIK_LAYER_PARAM_COLOR, VIK_LAYER_GROUP_NONE, N_("Min Elev Color:"), VIK_LAYER_WIDGET_COLOR, NULL, NULL, NULL, color_default, NULL, NULL },
+ { VIK_LAYER_DEM, "type", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Type:"), VIK_LAYER_WIDGET_RADIOGROUP_STATIC, params_type, NULL, NULL, type_default, NULL, NULL },
+ { VIK_LAYER_DEM, "min_elev", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Min Elev:"), VIK_LAYER_WIDGET_SPINBUTTON, param_scales + 0, NULL, NULL, min_elev_default, NULL, NULL },
+ { VIK_LAYER_DEM, "max_elev", VIK_LAYER_PARAM_DOUBLE, VIK_LAYER_GROUP_NONE, N_("Max Elev:"), VIK_LAYER_WIDGET_SPINBUTTON, param_scales + 0, NULL, NULL, max_elev_default, NULL, NULL },
};
(VikToolMouseFunc) dem_layer_download_click, NULL, (VikToolMouseFunc) dem_layer_download_release,
(VikToolKeyFunc) NULL,
FALSE,
- GDK_CURSOR_IS_PIXMAP, &cursor_demdl_pixbuf },
+ GDK_CURSOR_IS_PIXMAP, &cursor_demdl_pixbuf, NULL },
};
(VikLayerFuncSetParam) dem_layer_set_param,
(VikLayerFuncGetParam) dem_layer_get_param,
+ (VikLayerFuncChangeParam) NULL,
(VikLayerFuncReadFileData) NULL,
(VikLayerFuncWriteFileData) NULL,
dltd->vdl = vdl;
dltd->vdl->files = data.sl;
- a_background_thread ( VIK_GTK_WINDOW_FROM_WIDGET(vp),
+ a_background_thread ( BACKGROUND_POOL_LOCAL,
+ VIK_GTK_WINDOW_FROM_WIDGET(vp),
_("DEM Loading"),
(vik_thr_func) dem_layer_load_list_thread,
dltd,
}
break;
}
+ default: break;
}
return TRUE;
}
else
rv.d = vdl->max_elev;
break;
+ default: break;
}
return rv;
}
continent_dir = srtm_continent_dir(intlat, intlon);
if (!continent_dir) {
- g_warning(N_("No SRTM data available for %f, %f"), p->lat, p->lon);
+ if ( p->vdl ) {
+ gchar *msg = g_strdup_printf ( _("No SRTM data available for %f, %f"), p->lat, p->lon );
+ vik_window_statusbar_update ( (VikWindow*)VIK_GTK_WINDOW_FROM_LAYER(p->vdl), msg, VIK_STATUSBAR_INFO );
+ g_free ( msg );
+ }
return;
}
(intlon >= 0) ? 'E' : 'W',
ABS(intlon) );
- static DownloadMapOptions options = { FALSE, FALSE, NULL, 0, a_check_map_file };
- a_http_download_get_url ( SRTM_HTTP_SITE, src_fn, p->dest, &options, NULL );
+ static DownloadMapOptions options = { FALSE, FALSE, NULL, 0, a_check_map_file, NULL, NULL };
+ DownloadResult_t result = a_http_download_get_url ( SRTM_HTTP_SITE, src_fn, p->dest, &options, NULL );
+ switch ( result ) {
+ case DOWNLOAD_CONTENT_ERROR:
+ case DOWNLOAD_HTTP_ERROR: {
+ gchar *msg = g_strdup_printf ( _("DEM download failure for %f, %f"), p->lat, p->lon );
+ vik_window_statusbar_update ( (VikWindow*)VIK_GTK_WINDOW_FROM_LAYER(p->vdl), msg, VIK_STATUSBAR_INFO );
+ g_free ( msg );
+ break;
+ }
+ case DOWNLOAD_FILE_WRITE_ERROR: {
+ gchar *msg = g_strdup_printf ( _("DEM write failure for %s"), p->dest );
+ vik_window_statusbar_update ( (VikWindow*)VIK_GTK_WINDOW_FROM_LAYER(p->vdl), msg, VIK_STATUSBAR_INFO );
+ g_free ( msg );
+ break;
+ }
+ case DOWNLOAD_SUCCESS:
+ case DOWNLOAD_NOT_REQUIRED:
+ default:
+ break;
+ }
g_free ( src_fn );
}
static void free_dem_download_params ( DEMDownloadParams *p )
{
- g_mutex_free ( p->mutex );
+ vik_mutex_free ( p->mutex );
g_free ( p->dest );
g_free ( p );
}
gchar *source = NULL;
if ( continent_dir )
- source = g_strdup_printf ( "http:/%s%s/%c%02d%c%03d.hgt.zip",
+ source = g_strdup_printf ( "http://%s%s%s/%c%02d%c%03d.hgt.zip",
+ SRTM_HTTP_SITE,
SRTM_HTTP_URI,
continent_dir,
(intlat >= 0) ? 'N' : 'S',
p->lat = ll.lat;
p->lon = ll.lon;
p->vdl = vdl;
- p->mutex = g_mutex_new();
+ p->mutex = vik_mutex_new();
p->source = vdl->source;
g_object_weak_ref(G_OBJECT(p->vdl), weak_ref_cb, p );
- a_background_thread ( VIK_GTK_WINDOW_FROM_LAYER(vdl), tmp,
+ a_background_thread ( BACKGROUND_POOL_REMOTE,
+ VIK_GTK_WINDOW_FROM_LAYER(vdl), tmp,
(vik_thr_func) dem_download_thread, p,
(vik_thr_free_func) free_dem_download_params, NULL, 1 );