]> git.street.me.uk Git - andy/viking.git/blobdiff - src/acquire.h
Tidy up: simpler and better use of trackpoint free methods in TRW Layer.
[andy/viking.git] / src / acquire.h
index 86ed42a3f1799a799052236b6f144a47745352dc..988ca0ee175e4996a411e2c074cf1bb04225a91f 100644 (file)
@@ -27,6 +27,7 @@
 #include "vikwindow.h"
 #include "viklayerspanel.h"
 #include "vikviewport.h"
+#include "babel.h"
 
 typedef struct _VikDataSourceInterface VikDataSourceInterface;
 
@@ -42,10 +43,12 @@ typedef struct {
   gpointer user_data;
 } acq_dialog_widgets_t;
 
+/* Direct, URL & Shell types process the results with GPSBabel to create tracks/waypoint */
 typedef enum {
   VIK_DATASOURCE_GPSBABEL_DIRECT,
   VIK_DATASOURCE_URL,
-  VIK_DATASOURCE_SHELL_CMD
+  VIK_DATASOURCE_SHELL_CMD,
+  VIK_DATASOURCE_INTERNAL
 } vik_datasource_type_t;
 
 typedef enum {
@@ -61,7 +64,6 @@ typedef enum {
   VIK_DATASOURCE_INPUTTYPE_TRWLAYER_TRACK
 } vik_datasource_inputtype_t;
 
-
 /* returns pointer to state if OK, otherwise NULL */
 typedef gpointer (*VikDataSourceInitFunc) ();
 
@@ -80,6 +82,9 @@ typedef void (*VikDataSourceGetCmdStringFunc) ( gpointer user_data, gchar **babe
 typedef void (*VikDataSourceGetCmdStringFuncWithInput) ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype, const gchar *input_file_name );
 typedef void (*VikDataSourceGetCmdStringFuncWithInputInput) ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype, const gchar *input_file_name, const gchar *input_track_file_name );
 
+/* The actual function to do stuff - must report success/failure */
+typedef gboolean (*VikDataSourceProcessFunc)  ( gpointer vtl, const gchar *cmd, const gchar *extra, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw );
+
 /* */
 typedef void  (*VikDataSourceProgressFunc)  (gpointer c, gpointer data, acq_dialog_widgets_t *w);
 
@@ -89,6 +94,7 @@ typedef void  (*VikDataSourceAddProgressWidgetsFunc) ( GtkWidget *dialog, gpoint
 /* Frees any widgets created for the setup or progress dialogs, any allocated state, etc. */
 typedef void (*VikDataSourceCleanupFunc) ( gpointer user_data );
 
+typedef void (*VikDataSourceOffFunc) ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype );;
 
 struct _VikDataSourceInterface {
   const gchar *window_title;
@@ -96,6 +102,7 @@ struct _VikDataSourceInterface {
   vik_datasource_type_t type;
   vik_datasource_mode_t mode;
   vik_datasource_inputtype_t inputtype;
+  gboolean autoview;
   gboolean keep_dialog_open; /* when done */
 
 
@@ -108,10 +115,12 @@ struct _VikDataSourceInterface {
   /* or VikDataSourceGetCmdStringFuncWithInput, if inputtype is not NONE */
   VikDataSourceGetCmdStringFunc get_cmd_string_func; 
 
+  VikDataSourceProcessFunc process_func;
+
   VikDataSourceProgressFunc progress_func;
   VikDataSourceAddProgressWidgetsFunc add_progress_widgets_func;
   VikDataSourceCleanupFunc cleanup_func;
-
+  VikDataSourceOffFunc off_func;
 
   /*** UI Building        ***/
   VikLayerParam *                   params;
@@ -142,8 +151,8 @@ GtkWidget *a_acquire_trwlayer_track_menu (VikWindow *vw, VikLayersPanel *vlp, Vi
  * returns NULL if no applicable filters */
 GtkWidget *a_acquire_track_menu (VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikTrack *tr);
 
-/* sets aplication-wide track to use with filter. references the track. */
-void a_acquire_set_filter_track ( VikTrack *tr, const gchar *name );
+/* sets application-wide track to use with filter. references the track. */
+void a_acquire_set_filter_track ( VikTrack *tr );
 
 
 #endif