-/* 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 (*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 );
+/**
+ * VikDataSourceGetProcessOptionsFunc:
+ * @user_data: provided by #VikDataSourceInterface.init_func or dialog with params
+ * @process_options: main options controlling the behaviour of #VikDataSourceInterface.process_func
+ * @download_options: optional options for downloads from URLs for #VikDataSourceInterface.process_func
+ * @input_file_name:
+ * @input_track_file_name:
+ *
+ * set both to %NULL to signal refusal (ie already downloading).
+ */
+typedef void (*VikDataSourceGetProcessOptionsFunc) ( gpointer user_data, ProcessOptions *process_options, gpointer download_options, const gchar *input_file_name, const gchar *input_track_file_name );
+
+/**
+ * VikDataSourceProcessFunc:
+ * @vtl:
+ * @process_options: options to control the behaviour of this function (see #ProcessOptions)
+ * @status_cb: the #VikDataSourceInterface.progress_func
+ * @adw: the widgets and data used by #VikDataSourceInterface.progress_func
+ * @download_options: Optional options used if downloads from URLs is used.
+ *
+ * The actual function to do stuff - must report success/failure.
+ */
+typedef gboolean (*VikDataSourceProcessFunc) ( gpointer vtl, ProcessOptions *process_options, BabelStatusFunc, acq_dialog_widgets_t *adw, gpointer download_options );