1
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
4
* Copyright (C) Philippe Rouquier 2005-2008 <bonfire-app@wanadoo.fr>
6
* brasero is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
11
* brasero is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
* See the GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License along
17
* with this program. If not, see <http://www.gnu.org/licenses/>.
24
#ifndef _BRASERO_VIDEO_PROJECT_H_
25
#define _BRASERO_VIDEO_PROJECT_H_
27
#include <glib-object.h>
30
#include "brasero-track.h"
32
#include "brasero-disc.h"
36
#include "brasero-file-monitor.h"
42
#define BRASERO_TYPE_VIDEO_PROJECT (brasero_video_project_get_type ())
43
#define BRASERO_VIDEO_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BRASERO_TYPE_VIDEO_PROJECT, BraseroVideoProject))
44
#define BRASERO_VIDEO_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BRASERO_TYPE_VIDEO_PROJECT, BraseroVideoProjectClass))
45
#define BRASERO_IS_VIDEO_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BRASERO_TYPE_VIDEO_PROJECT))
46
#define BRASERO_IS_VIDEO_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BRASERO_TYPE_VIDEO_PROJECT))
47
#define BRASERO_VIDEO_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BRASERO_TYPE_VIDEO_PROJECT, BraseroVideoProjectClass))
49
typedef struct _BraseroVideoProjectClass BraseroVideoProjectClass;
50
typedef struct _BraseroVideoProject BraseroVideoProject;
52
typedef struct _BraseroVideoFile BraseroVideoFile;
53
struct _BraseroVideoFile {
54
BraseroVideoFile *prev;
55
BraseroVideoFile *next;
59
BraseroStreamInfo *info;
78
struct _BraseroVideoProjectClass
81
BraseroFileMonitorClass parent_class;
83
GObjectClass parent_class;
86
/* virtual functions */
89
* num_nodes is the number of nodes that were at the root of the
92
void (*reset) (BraseroVideoProject *project,
95
/* NOTE: node_added is also called when there is a moved node;
96
* in this case a node_removed is first called and then the
97
* following function is called (mostly to match GtkTreeModel
98
* API). To detect such a case look at uri which will then be
100
* NULL uri can also happen when it's a created directory.
101
* if return value is FALSE, node was invalidated during call */
102
gboolean (*node_added) (BraseroVideoProject *project,
103
BraseroVideoFile *node);
105
/* This is more an unparent signal. It shouldn't be assumed that the
106
* node was destroyed or not destroyed. Like the above function, it is
107
* also called when a node is moved. */
108
void (*node_removed) (BraseroVideoProject *project,
109
BraseroVideoFile *node);
111
void (*node_changed) (BraseroVideoProject *project,
112
BraseroVideoFile *node);
114
/* NOTE: there is no node reordered as this list order cannot be changed */
117
struct _BraseroVideoProject
120
BraseroFileMonitor parent_instance;
122
GObject parent_instance;
126
GType brasero_video_project_get_type (void) G_GNUC_CONST;
129
brasero_video_file_free (BraseroVideoFile *file);
132
brasero_video_project_get_size (BraseroVideoProject *project);
135
brasero_video_project_get_file_num (BraseroVideoProject *project);
138
brasero_video_project_reset (BraseroVideoProject *project);
141
brasero_video_project_move (BraseroVideoProject *project,
142
BraseroVideoFile *file,
143
BraseroVideoFile *next);
146
brasero_video_project_rename (BraseroVideoProject *project,
147
BraseroVideoFile *file,
151
brasero_video_project_remove_file (BraseroVideoProject *project,
152
BraseroVideoFile *file);
155
brasero_video_project_add_uri (BraseroVideoProject *project,
157
BraseroStreamInfo *info,
158
BraseroVideoFile *sibling,
163
brasero_video_project_resize_file (BraseroVideoProject *project,
164
BraseroVideoFile *file,
169
brasero_video_project_get_status (BraseroVideoProject *project,
171
gchar **current_task);
174
brasero_video_project_get_contents (BraseroVideoProject *project,
175
gboolean values_set);
178
brasero_video_project_get_nth_item (BraseroVideoProject *project,
181
brasero_video_project_get_item_index (BraseroVideoProject *project,
182
BraseroVideoFile *file);
186
#endif /* _BRASERO_VIDEO_PROJECT_H_ */