]> git.street.me.uk Git - andy/viking.git/blobdiff - src/datasource_bfilter.c
Add Show/Hide all Layers within an Aggregate Layer.
[andy/viking.git] / src / datasource_bfilter.c
index 453eb1821f52330ca5205559b3d04f4c5e817fc8..702352f54a81eff671be5cd32324a99a9bacff07 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * viking -- GPS Data and Topo Analyzer, Explorer, and Manager
  *
- * Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net>
+ * Copyright (C) 2003-2007, Evan Battaglia <gtoevan@gmx.net>
  *
  * 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
@@ -32,7 +32,7 @@
 
 /************************************ Simplify ***********************************/
 
-static void datasource_bfilter_simplify_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename );
+static void datasource_bfilter_simplify_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, gpointer not_used );
 
 /* TODO: shell_escape stuff */
 /* TODO: name is useless for filters */
@@ -43,22 +43,30 @@ VikLayerParamScale simplify_params_scales[] = {
 };
 
 VikLayerParam bfilter_simplify_params[] = {
-  { "numberofpoints", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Max number of points:"), VIK_LAYER_WIDGET_SPINBUTTON, simplify_params_scales + 0 },
+  { VIK_LAYER_NUM_TYPES, "numberofpoints", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Max number of points:"), VIK_LAYER_WIDGET_SPINBUTTON, simplify_params_scales, NULL, NULL },
 };
 
 VikLayerParamData bfilter_simplify_params_defaults[] = {
+  /* 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 },
+#else
   { 100 },
+#endif
 };
 
 VikDataSourceInterface vik_datasource_bfilter_simplify_interface = {
-  N_("Simplify All Tracks"),
+  N_("Simplify All Tracks..."),
   N_("Simplified Tracks"),
-  VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_CREATENEWLAYER,
   VIK_DATASOURCE_INPUTTYPE_TRWLAYER,
+  TRUE,
   FALSE, /* keep dialog open after success */
+  TRUE,
   NULL, NULL, NULL,
   (VikDataSourceGetCmdStringFunc)      datasource_bfilter_simplify_get_cmd_string,
+  (VikDataSourceProcessFunc)        a_babel_convert_from_shellcommand,
   NULL, NULL, NULL,
   (VikDataSourceOffFunc) NULL,
 
@@ -70,7 +78,7 @@ VikDataSourceInterface vik_datasource_bfilter_simplify_interface = {
 };
 
 
-static void datasource_bfilter_simplify_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename )
+static void datasource_bfilter_simplify_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, gpointer not_used )
 {
   *input_file_type = NULL;
   *cmd = g_strdup_printf ( "gpsbabel -i gpx -f %s -x simplify,count=%d -o gpx -F -", input_filename, paramdatas[0].u );
@@ -78,7 +86,7 @@ static void datasource_bfilter_simplify_get_cmd_string ( VikLayerParamData *para
 
 /************************************ Duplicate Location ***********************************/
 
-static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename );
+static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, gpointer not_used );
 
 /* TODO: shell_escape stuff */
 /* TODO: name is useless for filters */
@@ -87,12 +95,14 @@ static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdata
 VikDataSourceInterface vik_datasource_bfilter_dup_interface = {
   N_("Remove Duplicate Waypoints"),
   N_("Remove Duplicate Waypoints"),
-  VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_CREATENEWLAYER,
   VIK_DATASOURCE_INPUTTYPE_TRWLAYER,
+  TRUE,
   FALSE, /* keep dialog open after success */
+  TRUE,
   NULL, NULL, NULL,
   (VikDataSourceGetCmdStringFunc)      datasource_bfilter_dup_get_cmd_string,
+  (VikDataSourceProcessFunc)        a_babel_convert_from_shellcommand,
   NULL, NULL, NULL,
   (VikDataSourceOffFunc) NULL,
 
@@ -100,7 +110,7 @@ VikDataSourceInterface vik_datasource_bfilter_dup_interface = {
 };
 
 
-static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename )
+static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, gpointer not_used )
 {
   *input_file_type = NULL;
   *cmd = g_strdup_printf ( "gpsbabel -i gpx -f %s -x duplicate,location -o gpx -F -", input_filename );
@@ -109,7 +119,7 @@ static void datasource_bfilter_dup_get_cmd_string ( VikLayerParamData *paramdata
 
 /************************************ Polygon ***********************************/
 
-static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename );
+static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename, gpointer not_used );
 
 /* TODO: shell_escape stuff */
 /* TODO: name is useless for filters */
@@ -118,12 +128,14 @@ static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *param
 VikDataSourceInterface vik_datasource_bfilter_polygon_interface = {
   N_("Waypoints Inside This"),
   N_("Polygonized Layer"),
-  VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_CREATENEWLAYER,
   VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK,
+  TRUE,
   FALSE, /* keep dialog open after success */
+  TRUE,
   NULL, NULL, NULL,
   (VikDataSourceGetCmdStringFunc)      datasource_bfilter_polygon_get_cmd_string,
+  (VikDataSourceProcessFunc)        a_babel_convert_from_shellcommand,
   NULL, NULL, NULL,
   (VikDataSourceOffFunc) NULL,
 
@@ -135,7 +147,7 @@ VikDataSourceInterface vik_datasource_bfilter_polygon_interface = {
 };
 
 
-static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename )
+static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename, gpointer not_used )
 {
   *input_file_type = NULL;
   *cmd = g_strdup_printf ( "gpsbabel -i gpx -f %s -o arc -F - | gpsbabel -i gpx -f %s -x polygon,file=- -o gpx -F -", input_track_filename, input_filename );
@@ -143,7 +155,7 @@ static void datasource_bfilter_polygon_get_cmd_string ( VikLayerParamData *param
 
 /************************************ Exclude Polygon ***********************************/
 
-static void datasource_bfilter_exclude_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename );
+static void datasource_bfilter_exclude_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename, gpointer not_used );
 
 /* TODO: shell_escape stuff */
 /* TODO: name is useless for filters */
@@ -152,12 +164,14 @@ static void datasource_bfilter_exclude_polygon_get_cmd_string ( VikLayerParamDat
 VikDataSourceInterface vik_datasource_bfilter_exclude_polygon_interface = {
   N_("Waypoints Outside This"),
   N_("Polygonzied Layer"),
-  VIK_DATASOURCE_SHELL_CMD,
   VIK_DATASOURCE_CREATENEWLAYER,
   VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK,
+  TRUE,
   FALSE, /* keep dialog open after success */
+  TRUE,
   NULL, NULL, NULL,
   (VikDataSourceGetCmdStringFunc)      datasource_bfilter_exclude_polygon_get_cmd_string,
+  (VikDataSourceProcessFunc)        a_babel_convert_from_shellcommand,
   NULL, NULL, NULL,
   (VikDataSourceOffFunc) NULL,
 
@@ -169,7 +183,7 @@ VikDataSourceInterface vik_datasource_bfilter_exclude_polygon_interface = {
 };
 
 
-static void datasource_bfilter_exclude_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename )
+static void datasource_bfilter_exclude_polygon_get_cmd_string ( VikLayerParamData *paramdatas, gchar **cmd, gchar **input_file_type, const gchar *input_filename, const gchar *input_track_filename, gpointer not_used )
 {
   *input_file_type = NULL;
   *cmd = g_strdup_printf ( "gpsbabel -i gpx -f %s -o arc -F - | gpsbabel -i gpx -f %s -x polygon,exclude,file=- -o gpx -F -", input_track_filename, input_filename );