]> git.street.me.uk Git - andy/viking.git/blobdiff - src/acquire.h
Use elevation values in creating waypoints from Wikipedia.
[andy/viking.git] / src / acquire.h
index 8f3fc51ffbcdd4fca0cc6ea8820801ef1e9adfaf..75107810d93b529c1794379678e48af00c6f823e 100644 (file)
@@ -44,19 +44,11 @@ typedef struct {
   VikLayersPanel *vlp;
   VikViewport *vvp;
   GtkWidget *dialog;
-  gboolean ok; /* if OK is false when we exit, we MUST free w */
+  gboolean running;
   VikDataSourceInterface *source_interface;
   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_INTERNAL
-} vik_datasource_type_t;
-
 typedef enum {
   VIK_DATASOURCE_CREATENEWLAYER,
   VIK_DATASOURCE_ADDTOLAYER
@@ -93,23 +85,30 @@ typedef void (*VikDataSourceAddSetupWidgetsFunc) ( GtkWidget *dialog, VikViewpor
 
 /**
  * VikDataSourceGetCmdStringFunc:
+ * @user_data: provided by #VikDataSourceInterface.init_func or dialog with params
+ * @args: the arguments computed for #VikDataSourceInterface.process_func
+ * @extra: extra arguments for #VikDataSourceInterface.process_func
+ * @options: even more options for #VikDataSourceInterface.process_func
  * 
- * if %VIK_DATASOURCE_GPSBABEL_DIRECT, babelargs and inputfile.
- * if %VIK_DATASOURCE_SHELL_CMD, shellcmd and inputtype.
- * if %VIK_DATASOURCE_URL, url and inputtype.
  * set both to %NULL to signal refusal (ie already downloading).
  */
-typedef void (*VikDataSourceGetCmdStringFunc) ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype );
+typedef void (*VikDataSourceGetCmdStringFunc) ( gpointer user_data, gchar **args, gchar **extra, gpointer options );
 
 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 );
 
 /**
  * VikDataSourceProcessFunc:
+ * @vtl:
+ * @cmd: the arguments computed by #VikDataSourceInterface.get_cmd_string_func
+ * @extra: the extra arguments computed by #VikDataSourceInterface.get_cmd_string_func
+ * @status_cb: the #VikDataSourceInterface.progress_func
+ * @adw: the widgets and data used by #VikDataSourceInterface.progress_func
+ * @options: more options returned by #VikDataSourceInterface.get_cmd_string_func
  * 
  * 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 gboolean (*VikDataSourceProcessFunc)  ( gpointer vtl, const gchar *cmd, const gchar *extra, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw, gpointer options );
 
 /* */
 typedef void  (*VikDataSourceProgressFunc)  ( BabelProgressCode c, gpointer data, acq_dialog_widgets_t *w );
@@ -130,15 +129,20 @@ typedef void (*VikDataSourceCleanupFunc) ( gpointer user_data );
 
 typedef void (*VikDataSourceOffFunc) ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype );;
 
+/**
+ * VikDataSourceInterface:
+ * 
+ * Main interface.
+ */
 struct _VikDataSourceInterface {
   const gchar *window_title;
   const gchar *layer_title;
-  vik_datasource_type_t type;
   vik_datasource_mode_t mode;
   vik_datasource_inputtype_t inputtype;
   gboolean autoview;
   gboolean keep_dialog_open; /* when done */
 
+  gboolean is_thread;
 
   /*** Manual UI Building ***/
   VikDataSourceInitFunc init_func;