typedef struct _VikDataSourceInterface VikDataSourceInterface;
+typedef struct {
+ VikWindow *vw;
+ VikLayersPanel *vlp;
+ VikViewport *vvp;
+ gpointer userdata;
+} acq_vik_t;
+
/**
* acq_dialog_widgets_t:
*
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;
typedef enum {
VIK_DATASOURCE_CREATENEWLAYER,
- VIK_DATASOURCE_ADDTOLAYER
+ VIK_DATASOURCE_ADDTOLAYER,
+ VIK_DATASOURCE_MANUAL_LAYER_MANAGEMENT,
} vik_datasource_mode_t;
/* TODO: replace track/layer? */
*
* Returns: pointer to state if OK, otherwise %NULL
*/
-typedef gpointer (*VikDataSourceInitFunc) ();
+typedef gpointer (*VikDataSourceInitFunc) ( acq_vik_t *avt );
/**
* VikDataSourceCheckExistenceFunc:
* @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
*
* set both to %NULL to signal refusal (ie already downloading).
*/
-typedef void (*VikDataSourceGetCmdStringFunc) ( gpointer user_data, gchar **args, gchar **extra );
+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 );
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;
gboolean autoview;
gboolean keep_dialog_open; /* when done */
+ gboolean is_thread;
/*** Manual UI Building ***/
VikDataSourceInitFunc init_func;
};
-/**********************************/
-/**********************************/
/**********************************/
-void a_acquire ( VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikDataSourceInterface *source_interface );
+void a_acquire ( VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikDataSourceInterface *source_interface,
+ gpointer userdata, VikDataSourceCleanupFunc cleanup_function );
GtkWidget *a_acquire_trwlayer_menu (VikWindow *vw, VikLayersPanel *vlp, VikViewport *vvp, VikTrwLayer *vtl);