84
85
#define BRASERO_IO_HAS_VIDEO "metadata::has_video"
85
86
#define BRASERO_IO_IS_SEEKABLE "metadata::is_seekable"
88
#define BRASERO_IO_HAS_DTS "metadata::audio::wav::has_dts"
90
#define BRASERO_IO_CHANNELS "metadata::audio::channels"
91
#define BRASERO_IO_RATE "metadata::audio::rate"
87
93
#define BRASERO_IO_DIR_CONTENTS_ADDR "image::directory::address"
89
95
typedef struct _BraseroIOJobProgress BraseroIOJobProgress;
106
112
gpointer user_data);
109
struct _BraseroIOJobBase {
115
struct _BraseroIOJobCallbacks {
111
116
BraseroIOResultCallback callback;
112
117
BraseroIODestroyCallback destroy;
113
118
BraseroIOProgressCallback progress;
115
122
/* Whether we are returning something for this base */
125
typedef struct _BraseroIOJobCallbacks BraseroIOJobCallbacks;
127
struct _BraseroIOJobBase {
129
BraseroIOJobCallbacks *methods;
118
131
typedef struct _BraseroIOJobBase BraseroIOJobBase;
120
133
struct _BraseroIOResultCallbackData {
157
170
BraseroIOResultCallbackData *callback_data);
173
typedef GtkWindow * (* BraseroIOGetParentWinCb) (gpointer user_data);
176
brasero_io_set_parent_window_callback (BraseroIOGetParentWinCb callback,
160
180
brasero_io_shutdown (void);
182
/* NOTE: The split in methods and objects was
183
* done to prevent jobs sharing the same methods
184
* to return their results concurently. In other
185
* words only one job among those sharing the
186
* same methods can return its results. */
162
188
BraseroIOJobBase *
163
189
brasero_io_register (GObject *object,
164
190
BraseroIOResultCallback callback,
165
191
BraseroIODestroyCallback destroy,
166
192
BraseroIOProgressCallback progress);
195
brasero_io_register_with_methods (GObject *object,
196
BraseroIOJobCallbacks *methods);
198
BraseroIOJobCallbacks *
199
brasero_io_register_job_methods (BraseroIOResultCallback callback,
200
BraseroIODestroyCallback destroy,
201
BraseroIOProgressCallback progress);
169
brasero_io_cancel_by_data (gpointer callback_data);
204
brasero_io_job_base_free (BraseroIOJobBase *base);
172
207
brasero_io_cancel_by_base (BraseroIOJobBase *base);