~mfisch/brasero/update-to-3.8.0

« back to all changes in this revision

Viewing changes to src/brasero-video-project.h

  • Committer: Bazaar Package Importer
  • Author(s): Robert Ancell
  • Date: 2009-07-14 14:13:00 UTC
  • mfrom: (1.1.25 upstream)
  • Revision ID: james.westby@ubuntu.com-20090714141300-e08q13sp48b2xzwd
Tags: 2.27.4-0ubuntu1
* New upstream release: (LP: #399112)
  - Hal support removed, now relies on GIO only for drives/media probing
  - New layout for size reporting in data/audio/video project
  - Lot's of bug fixes
  - Fixed some memleaks
  - Bump libbrasero-media version to reflect changes (important to packagers)
  - Fix #582261 – brasero shows 0% done, while continues burning disc
  - Fix #582513 – Bogus VIDEO_TS directory error if AUDIO_TS directory present
  - Fix #573805 – "Increase compatibility with Windows systems"?
  - Fix #585190 – remove 0 from 03 % status
  - Fix #586744 – Use AS_HELP_STRING for configure switches
  - Fix #584793 – Poor language in warning dialog when attempting to burn an audio CD onto a CDRW
  - Fix #580617 – Brasero floods .xsession-errors log with "Unknown (or already deleted) monitored directory" warnings
  - Fix #563501 – Brasero burning window shouldn't try to show drive speed while is converting audio files
  - Fix #485719 – Burn dialog CD icon
  - Fix #585481 – Deep hierarchy warning
  - Fix #554070 – The need of a "replace all" and "replace non" button
  - Fix #582461 – Brasero hangs at normalizing tracks
  - Fix #587284 – nautilus hangs every time
  - Fix #574093 – Caret visible in instructions for project creation
  - Fix #581742 – port from HAL to DeviceKit-disks
  - Fix #573801 – Bad error message when burning empty burn:///
  - Fix #573486 – Various i18n and string issues for good
  - Fix #587399 – License clarification
  - Fix #587554 – Unclear meaning of text
  - Fix #582979 – brasero should not include Categories in mime handler .desktop files
  - Fix #586040 – duplicated command listed in open-with dialog
  - Fixes for #573486 – Various i18n and string issues
* debian/control.in:
  - Add in missing comma in brasero suggests

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
2
 
/*
3
 
 * brasero
4
 
 * Copyright (C) Philippe Rouquier 2005-2008 <bonfire-app@wanadoo.fr>
5
 
 * 
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.
10
 
 * 
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.
15
 
 * 
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/>.
18
 
 */
19
 
 
20
 
#ifdef HAVE_CONFIG_H
21
 
#  include <config.h>
22
 
#endif
23
 
 
24
 
#ifndef _BRASERO_VIDEO_PROJECT_H_
25
 
#define _BRASERO_VIDEO_PROJECT_H_
26
 
 
27
 
#include <glib-object.h>
28
 
#include <gdk/gdk.h>
29
 
 
30
 
#include "brasero-track.h"
31
 
 
32
 
#include "brasero-disc.h"
33
 
 
34
 
#ifdef BUILD_INOTIFY
35
 
 
36
 
#include "brasero-file-monitor.h"
37
 
 
38
 
#endif
39
 
 
40
 
G_BEGIN_DECLS
41
 
 
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))
48
 
 
49
 
typedef struct _BraseroVideoProjectClass BraseroVideoProjectClass;
50
 
typedef struct _BraseroVideoProject BraseroVideoProject;
51
 
 
52
 
typedef struct _BraseroVideoFile BraseroVideoFile;
53
 
struct _BraseroVideoFile {
54
 
        BraseroVideoFile *prev;
55
 
        BraseroVideoFile *next;
56
 
 
57
 
        gchar *uri;
58
 
 
59
 
        BraseroStreamInfo *info;
60
 
 
61
 
        guint64 start;
62
 
        guint64 end;
63
 
 
64
 
        GdkPixbuf *snapshot;
65
 
 
66
 
        guint editable:1;
67
 
        guint is_loading:1;
68
 
        guint is_reloading:1;
69
 
        guint is_monitored:1;
70
 
 
71
 
        guint len_set:1;
72
 
        guint isrc_set:1;
73
 
        guint title_set:1;
74
 
        guint artist_set:1;
75
 
        guint composer_set:1;
76
 
};
77
 
 
78
 
struct _BraseroVideoProjectClass
79
 
{
80
 
#ifdef BUILD_INOTIFY
81
 
        BraseroFileMonitorClass parent_class;
82
 
#else
83
 
        GObjectClass parent_class;
84
 
#endif
85
 
 
86
 
        /* virtual functions */
87
 
 
88
 
        /**
89
 
         * num_nodes is the number of nodes that were at the root of the 
90
 
         * project.
91
 
         */
92
 
        void            (*reset)                (BraseroVideoProject *project,
93
 
                                                 guint num_nodes);
94
 
 
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
99
 
         * set to NULL.
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);
104
 
 
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);
110
 
 
111
 
        void            (*node_changed)         (BraseroVideoProject *project,
112
 
                                                 BraseroVideoFile *node);
113
 
 
114
 
        /* NOTE: there is no node reordered as this list order cannot be changed */
115
 
};
116
 
 
117
 
struct _BraseroVideoProject
118
 
{
119
 
#ifdef BUILD_INOTIFY
120
 
        BraseroFileMonitor parent_instance;
121
 
#else
122
 
        GObject parent_instance;
123
 
#endif
124
 
};
125
 
 
126
 
GType brasero_video_project_get_type (void) G_GNUC_CONST;
127
 
 
128
 
void
129
 
brasero_video_file_free (BraseroVideoFile *file);
130
 
 
131
 
guint64
132
 
brasero_video_project_get_size (BraseroVideoProject *project);
133
 
 
134
 
guint
135
 
brasero_video_project_get_file_num (BraseroVideoProject *project);
136
 
 
137
 
void
138
 
brasero_video_project_reset (BraseroVideoProject *project);
139
 
 
140
 
void
141
 
brasero_video_project_move (BraseroVideoProject *project,
142
 
                            BraseroVideoFile *file,
143
 
                            BraseroVideoFile *next);
144
 
 
145
 
void
146
 
brasero_video_project_rename (BraseroVideoProject *project,
147
 
                              BraseroVideoFile *file,
148
 
                              const gchar *name);
149
 
 
150
 
void
151
 
brasero_video_project_remove_file (BraseroVideoProject *project,
152
 
                                   BraseroVideoFile *file);
153
 
 
154
 
BraseroVideoFile *
155
 
brasero_video_project_add_uri (BraseroVideoProject *project,
156
 
                               const gchar *uri,
157
 
                               BraseroStreamInfo *info,
158
 
                               BraseroVideoFile *sibling,
159
 
                               gint64 start,
160
 
                               gint64 end);
161
 
 
162
 
void
163
 
brasero_video_project_resize_file (BraseroVideoProject *project,
164
 
                                   BraseroVideoFile *file,
165
 
                                   gint64 start,
166
 
                                   gint64 end);
167
 
 
168
 
BraseroDiscResult
169
 
brasero_video_project_get_status (BraseroVideoProject *project,
170
 
                                  gint *remaining,
171
 
                                  gchar **current_task);
172
 
 
173
 
GSList *
174
 
brasero_video_project_get_contents (BraseroVideoProject *project,
175
 
                                    gboolean values_set);
176
 
 
177
 
BraseroVideoFile *
178
 
brasero_video_project_get_nth_item (BraseroVideoProject *project,
179
 
                                    guint nth);
180
 
guint
181
 
brasero_video_project_get_item_index (BraseroVideoProject *project,
182
 
                                      BraseroVideoFile *file);
183
 
 
184
 
G_END_DECLS
185
 
 
186
 
#endif /* _BRASERO_VIDEO_PROJECT_H_ */