#include "babel.h"
#include "gpx.h"
#include "acquire.h"
+#include "settings.h"
/************************************ Simplify (Count) *****************************/
/* Annoyingly 'C' cannot initialize unions properly */
/* It's dependent on the standard used or the compiler support... */
#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L || __GNUC__
- { .i = 100 },
+ { .u = 100 },
#else
{ 100 },
#endif
po->babelargs = g_strdup ( "-i gpx" );
po->filename = g_strdup ( input_filename );
po->babel_filters = g_strdup_printf ( "-x simplify,count=%d", paramdatas[0].u );
+
+ // Store for subsequent default use
+ bfilter_simplify_params_defaults[0].u = paramdatas[0].u;
+}
+
+#define VIK_SETTINGS_BFILTER_SIMPLIFY "bfilter_simplify"
+static gboolean bfilter_simplify_default_set = FALSE;
+
+static gpointer datasource_bfilter_simplify_init ( acq_vik_t *not_used )
+{
+ if ( !bfilter_simplify_default_set ) {
+ gint tmp;
+ if ( !a_settings_get_integer ( VIK_SETTINGS_BFILTER_SIMPLIFY, &tmp ) )
+ tmp = 100;
+
+ bfilter_simplify_params_defaults[0].u = tmp;
+ bfilter_simplify_default_set = TRUE;
+ }
+
+ return NULL;
}
VikDataSourceInterface vik_datasource_bfilter_simplify_interface = {
TRUE,
FALSE, /* keep dialog open after success */
TRUE,
- NULL, NULL, NULL,
+ (VikDataSourceInitFunc) datasource_bfilter_simplify_init,
+ NULL, NULL,
(VikDataSourceGetProcessOptionsFunc) datasource_bfilter_simplify_get_process_options,
(VikDataSourceProcessFunc) a_babel_convert_from,
NULL, NULL, NULL,
po->babelargs = g_strdup ( "-i gpx" );
po->filename = g_strdup ( input_filename );
po->babel_filters = g_strdup_printf ( "-x simplify,crosstrack,error=%-.5f%c", paramdatas[0].d, units );
+
+ // Store for subsequent default use
+ bfilter_compress_params_defaults[0].d = paramdatas[0].d;
+}
+
+#define VIK_SETTINGS_BFILTER_COMPRESS "bfilter_compress"
+static gboolean bfilter_compress_default_set = FALSE;
+
+static gpointer datasource_bfilter_compress_init ( acq_vik_t *not_used )
+{
+ if ( !bfilter_compress_default_set ) {
+ gdouble tmp;
+ if ( !a_settings_get_double ( VIK_SETTINGS_BFILTER_COMPRESS, &tmp ) )
+ tmp = 0.001;
+
+ bfilter_compress_params_defaults[0].d = tmp;
+ bfilter_compress_default_set = TRUE;
+ }
+
+ return NULL;
}
/**
TRUE,
FALSE, // Close the dialog after successful operation
TRUE,
- NULL, NULL, NULL,
+ (VikDataSourceInitFunc) datasource_bfilter_compress_init,
+ NULL, NULL,
(VikDataSourceGetProcessOptionsFunc) datasource_bfilter_compress_get_process_options,
(VikDataSourceProcessFunc) a_babel_convert_from,
NULL, NULL, NULL,
};
+/************************************ Swap Lat<->Lon ***********************************/
+
+VikLayerParamData bfilter_manual_params_defaults[] = {
+ { .s = NULL },
+};
+
+VikLayerParam bfilter_manual_params[] = {
+ { VIK_LAYER_NUM_TYPES, "manual", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Manual filter:"), VIK_LAYER_WIDGET_ENTRY, NULL, NULL,
+ N_("Manual filter command: e.g. 'swap'."), NULL, NULL, NULL },
+};
+
+static void datasource_bfilter_manual_get_process_options ( VikLayerParamData *paramdatas, ProcessOptions *po, gpointer not_used, const gchar *input_filename, const gchar *not_used3 )
+{
+ po->babelargs = g_strdup ( "-i gpx" );
+ po->filename = g_strdup ( input_filename );
+ po->babel_filters = g_strconcat ( "-x ", paramdatas[0].s, NULL );
+}
+
+VikDataSourceInterface vik_datasource_bfilter_manual_interface = {
+ N_("Manual filter"),
+ N_("Manual filter"),
+ VIK_DATASOURCE_CREATENEWLAYER,
+ VIK_DATASOURCE_INPUTTYPE_TRWLAYER,
+ TRUE,
+ FALSE, /* keep dialog open after success */
+ TRUE,
+ NULL, NULL, NULL,
+ (VikDataSourceGetProcessOptionsFunc) datasource_bfilter_manual_get_process_options,
+ (VikDataSourceProcessFunc) a_babel_convert_from,
+ NULL, NULL, NULL,
+ (VikDataSourceOffFunc) NULL,
+
+ bfilter_manual_params,
+ sizeof(bfilter_manual_params)/sizeof(bfilter_manual_params[0]),
+ bfilter_manual_params_defaults,
+ NULL,
+ 0
+};
+
/************************************ Polygon ***********************************/
static void datasource_bfilter_polygon_get_process_options ( VikLayerParamData *paramdatas, ProcessOptions *po, gpointer not_used, const gchar *input_filename, const gchar *input_track_filename )
VikDataSourceInterface vik_datasource_bfilter_exclude_polygon_interface = {
N_("Waypoints Outside This"),
- N_("Polygonzied Layer"),
+ N_("Polygonized Layer"),
VIK_DATASOURCE_CREATENEWLAYER,
VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK,
TRUE,