1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
2 /*
3  * Libbrasero-burn
4  * Copyright (C) Philippe Rouquier 2005-2009 <bonfire-app@wanadoo.fr>
5  *
6  * Libbrasero-burn is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * The Libbrasero-burn authors hereby grant permission for non-GPL compatible
12  * GStreamer plugins to be used and distributed together with GStreamer
13  * and Libbrasero-burn. This permission is above and beyond the permissions granted
14  * by the GPL license by which Libbrasero-burn is covered. If you modify this code
15  * you may extend this exception to your version of the code, but you are not
16  * obligated to do so. If you do not wish to do so, delete this exception
17  * statement from your version.
18  *
19  * Libbrasero-burn is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU Library General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to:
26  * 	The Free Software Foundation, Inc.,
27  * 	51 Franklin Street, Fifth Floor
28  * 	Boston, MA  02110-1301, USA.
29  */
30 
31 #ifndef _BRASERO_ENUM_H_
32 #define _BRASERO_ENUM_H_
33 
34 #include <glib.h>
35 
36 G_BEGIN_DECLS
37 
38 typedef enum {
39 	BRASERO_BURN_OK,
40 	BRASERO_BURN_ERR,
41 	BRASERO_BURN_RETRY,
42 	BRASERO_BURN_CANCEL,
43 	BRASERO_BURN_RUNNING,
44 	BRASERO_BURN_DANGEROUS,
45 	BRASERO_BURN_NOT_READY,
46 	BRASERO_BURN_NOT_RUNNING,
47 	BRASERO_BURN_NEED_RELOAD,
48 	BRASERO_BURN_NOT_SUPPORTED,
49 } BraseroBurnResult;
50 
51 /* These flags are sorted by importance. That's done to solve the problem of
52  * exclusive flags: that way MERGE will always win over any other flag if they
53  * are exclusive. On the other hand DAO will always lose. */
54 typedef enum {
55 	BRASERO_BURN_FLAG_NONE			= 0,
56 
57 	/* These flags should always be supported */
58 	BRASERO_BURN_FLAG_CHECK_SIZE		= 1,
59 	BRASERO_BURN_FLAG_NOGRACE		= 1 << 1,
60 	BRASERO_BURN_FLAG_EJECT			= 1 << 2,
61 
62 	/* These are of great importance for the result */
63 	BRASERO_BURN_FLAG_MERGE			= 1 << 3,
64 	BRASERO_BURN_FLAG_MULTI			= 1 << 4,
65 	BRASERO_BURN_FLAG_APPEND		= 1 << 5,
66 
67 	BRASERO_BURN_FLAG_BURNPROOF		= 1 << 6,
68 	BRASERO_BURN_FLAG_NO_TMP_FILES		= 1 << 7,
69 	BRASERO_BURN_FLAG_DUMMY			= 1 << 8,
70 
71 	BRASERO_BURN_FLAG_OVERBURN		= 1 << 9,
72 
73 	BRASERO_BURN_FLAG_BLANK_BEFORE_WRITE	= 1 << 10,
74 	BRASERO_BURN_FLAG_FAST_BLANK		= 1 << 11,
75 
76 	/* NOTE: these two are contradictory? */
77 	BRASERO_BURN_FLAG_DAO			= 1 << 13,
78 	BRASERO_BURN_FLAG_RAW			= 1 << 14,
79 
80 	BRASERO_BURN_FLAG_LAST
81 } BraseroBurnFlag;
82 
83 typedef enum {
84 	BRASERO_BURN_ACTION_NONE		= 0,
85 	BRASERO_BURN_ACTION_GETTING_SIZE,
86 	BRASERO_BURN_ACTION_CREATING_IMAGE,
87 	BRASERO_BURN_ACTION_RECORDING,
88 	BRASERO_BURN_ACTION_BLANKING,
89 	BRASERO_BURN_ACTION_CHECKSUM,
90 	BRASERO_BURN_ACTION_DRIVE_COPY,
91 	BRASERO_BURN_ACTION_FILE_COPY,
92 	BRASERO_BURN_ACTION_ANALYSING,
93 	BRASERO_BURN_ACTION_TRANSCODING,
94 	BRASERO_BURN_ACTION_PREPARING,
95 	BRASERO_BURN_ACTION_LEADIN,
96 	BRASERO_BURN_ACTION_RECORDING_CD_TEXT,
97 	BRASERO_BURN_ACTION_FIXATING,
98 	BRASERO_BURN_ACTION_LEADOUT,
99 	BRASERO_BURN_ACTION_START_RECORDING,
100 	BRASERO_BURN_ACTION_FINISHED,
101 	BRASERO_BURN_ACTION_EJECTING,
102 	BRASERO_BURN_ACTION_LAST
103 } BraseroBurnAction;
104 
105 typedef enum {
106 	BRASERO_IMAGE_FS_NONE			= 0,
107 	BRASERO_IMAGE_FS_ISO			= 1,
108 	BRASERO_IMAGE_FS_UDF			= 1 << 1,
109 	BRASERO_IMAGE_FS_JOLIET			= 1 << 2,
110 	BRASERO_IMAGE_FS_VIDEO			= 1 << 3,
111 
112 	/* The following one conflict with UDF and JOLIET */
113 	BRASERO_IMAGE_FS_SYMLINK		= 1 << 4,
114 
115 	BRASERO_IMAGE_ISO_FS_LEVEL_3		= 1 << 5,
116 	BRASERO_IMAGE_ISO_FS_DEEP_DIRECTORY	= 1 << 6,
117 	BRASERO_IMAGE_FS_ANY			= BRASERO_IMAGE_FS_ISO|
118 						  BRASERO_IMAGE_FS_UDF|
119 						  BRASERO_IMAGE_FS_JOLIET|
120 						  BRASERO_IMAGE_FS_SYMLINK|
121 						  BRASERO_IMAGE_ISO_FS_LEVEL_3|
122 						  BRASERO_IMAGE_FS_VIDEO|
123 						  BRASERO_IMAGE_ISO_FS_DEEP_DIRECTORY
124 } BraseroImageFS;
125 
126 typedef enum {
127 	BRASERO_AUDIO_FORMAT_NONE		= 0,
128 	BRASERO_AUDIO_FORMAT_UNDEFINED		= 1,
129 	BRASERO_AUDIO_FORMAT_DTS		= 1 << 1,
130 	BRASERO_AUDIO_FORMAT_RAW		= 1 << 2,
131 	BRASERO_AUDIO_FORMAT_AC3		= 1 << 3,
132 	BRASERO_AUDIO_FORMAT_MP2		= 1 << 4,
133 
134 	BRASERO_AUDIO_FORMAT_44100		= 1 << 5,
135 	BRASERO_AUDIO_FORMAT_48000		= 1 << 6,
136 
137 
138 	BRASERO_VIDEO_FORMAT_UNDEFINED		= 1 << 7,
139 	BRASERO_VIDEO_FORMAT_VCD		= 1 << 8,
140 	BRASERO_VIDEO_FORMAT_VIDEO_DVD		= 1 << 9,
141 
142 	BRASERO_METADATA_INFO			= 1 << 10,
143 
144 	BRASERO_AUDIO_FORMAT_RAW_LITTLE_ENDIAN  = 1 << 11,
145 } BraseroStreamFormat;
146 
147 #define BRASERO_STREAM_FORMAT_AUDIO(stream_FORMAT)	((stream_FORMAT) & 0x087F)
148 #define BRASERO_STREAM_FORMAT_VIDEO(stream_FORMAT)	((stream_FORMAT) & 0x0380)
149 
150 #define	BRASERO_MIN_STREAM_LENGTH			((gint64) 6 * 1000000000LL)
151 #define BRASERO_STREAM_LENGTH(start_MACRO, end_MACRO)					\
152 	((end_MACRO) - (start_MACRO) > BRASERO_MIN_STREAM_LENGTH) ?			\
153 	((end_MACRO) - (start_MACRO)) : BRASERO_MIN_STREAM_LENGTH
154 
155 #define BRASERO_STREAM_FORMAT_HAS_VIDEO(format_MACRO)				\
156 	 ((format_MACRO) & (BRASERO_VIDEO_FORMAT_UNDEFINED|			\
157 	 		    BRASERO_VIDEO_FORMAT_VCD|				\
158 	 		    BRASERO_VIDEO_FORMAT_VIDEO_DVD))
159 
160 typedef enum {
161 	BRASERO_IMAGE_FORMAT_NONE = 0,
162 	BRASERO_IMAGE_FORMAT_BIN = 1,
163 	BRASERO_IMAGE_FORMAT_CUE = 1 << 1,
164 	BRASERO_IMAGE_FORMAT_CLONE = 1 << 2,
165 	BRASERO_IMAGE_FORMAT_CDRDAO = 1 << 3,
166 	BRASERO_IMAGE_FORMAT_ANY = BRASERO_IMAGE_FORMAT_BIN|
167 	BRASERO_IMAGE_FORMAT_CUE|
168 	BRASERO_IMAGE_FORMAT_CDRDAO|
169 	BRASERO_IMAGE_FORMAT_CLONE,
170 } BraseroImageFormat;
171 
172 typedef enum {
173 	BRASERO_PLUGIN_ERROR_NONE					= 0,
174 	BRASERO_PLUGIN_ERROR_MODULE,
175 	BRASERO_PLUGIN_ERROR_MISSING_APP,
176 	BRASERO_PLUGIN_ERROR_WRONG_APP_VERSION,
177 	BRASERO_PLUGIN_ERROR_SYMBOLIC_LINK_APP,
178 	BRASERO_PLUGIN_ERROR_MISSING_LIBRARY,
179 	BRASERO_PLUGIN_ERROR_LIBRARY_VERSION,
180 	BRASERO_PLUGIN_ERROR_MISSING_GSTREAMER_PLUGIN,
181 } BraseroPluginErrorType;
182 
183 G_END_DECLS
184 
185 #endif
186 
187