Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
file_import_progress_dialog.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2023 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
9
10#ifndef __GUI_WIDGETS_DIALOGS_FILE_IMPORT_PROGRESS_PROGRESS_DIALOG_H__
11#define __GUI_WIDGETS_DIALOGS_FILE_IMPORT_PROGRESS_PROGRESS_DIALOG_H__
12
13#include "common/dsp/track.h"
14#include "common/utils/types.h"
15#include "gui/backend/gtk_widgets/libadwaita_wrapper.h"
16
17#define FILE_IMPORT_PROGRESS_PROGRESS_DIALOG_TYPE \
18 (file_import_progress_dialog_get_type ())
19G_DECLARE_FINAL_TYPE (
20 FileImportProgressDialog,
21 file_import_progress_dialog,
22 Z,
23 FILE_IMPORT_PROGRESS_DIALOG,
24 AdwMessageDialog);
25
26struct FileImportInfo;
27TYPEDEF_STRUCT_UNDERSCORED (FileImport);
28
34
38using FileImportProgressDialogWidget = struct _FileImportProgressDialog
39{
40 AdwMessageDialog parent_instance;
41
42 char ** filepaths;
43 int num_files_total;
44 FileImportInfo * import_info;
45 int num_files_remaining;
46 GCancellable * cancellable;
47
49 GPtrArray * file_imports;
50
52 std::vector<std::vector<std::shared_ptr<Region>>> region_arrays;
53
54 TracksReadyCallback tracks_ready_cb;
55};
56
61FileImportProgressDialog *
63 const char ** filepaths,
64 FileImportInfo * import_info,
65 TracksReadyCallback tracks_ready_cb,
66 GtkWidget * parent);
67
72void
73file_import_progress_dialog_run (FileImportProgressDialog * self);
74
78
79#endif
struct _FileImportProgressDialog { AdwMessageDialog parent_instance; char ** filepaths; int num_files_total; FileImportInfo *import_info; int num_files_remaining; GCancellable * cancellable; GPtrArray *file_imports; std::vector< std::vector< std::shared_ptr< Region > > > region_arrays; TracksReadyCallback tracks_ready_cb;} FileImportProgressDialogWidget
A progress dialog for file import.
void file_import_progress_dialog_run(FileImportProgressDialog *self)
Runs the dialog and imports each file asynchronously while presenting progress info.
FileImportProgressDialog * file_import_progress_dialog_new(const char **filepaths, FileImportInfo *import_info, TracksReadyCallback tracks_ready_cb, GtkWidget *parent)
Creates an instance of FileImportProgressDialog for the given array of filepaths (NULL-delimited).