| Top |
This object stores all parameters for all operations performed by BurnerBurn such as burning, blanking and checksumming. To have this object configured automatically see BurnerSessionCfg.
BurnerBurnSession *
burner_burn_session_new (void);
Returns a new BurnerBurnSession object.
BurnerBurnResult burner_burn_session_add_track (BurnerBurnSession *session,BurnerTrack *new_track,BurnerTrack *sibling);
Inserts a new track after sibling
or appended if sibling
is NULL. If track
is NULL then all tracks
already in session
will be removed.
NOTE: if there are already BurnerTrack objects inserted in the session and if they are not
of the same type as new_track
then they will be removed before the insertion of new_track
.
session |
||
new_track |
a BurnerTrack or NULL. |
[allow-none] |
sibling |
a BurnerTrack or NULL. |
[allow-none] |
a BurnerBurnResult. BURNER_BURN_OK if the track was successfully inserted or BURNER_BURN_ERR otherwise.
BurnerBurnResult burner_burn_session_move_track (BurnerBurnSession *session,BurnerTrack *track,BurnerTrack *sibling);
Moves track
after sibling
; if sibling
is NULL then it is appended.
a BurnerBurnResult. BURNER_BURN_OK if the track was successfully moved or BURNER_BURN_ERR otherwise.
BurnerBurnResult burner_burn_session_remove_track (BurnerBurnSession *session,BurnerTrack *track);
Removes track
from session
.
a BurnerBurnResult. BURNER_BURN_OK if the track was successfully removed or BURNER_BURN_ERR otherwise.
GSList *
burner_burn_session_get_tracks (BurnerBurnSession *session);
Returns the list of BurnerTrack added to session
.
a GSList or BurnerTrack object. Do not unref the objects in the list nor destroy the list.
[element-type BurnerBurn.Track][transfer none]
BurnerBurnResult burner_burn_session_get_status (BurnerBurnSession *session,BurnerStatus *status);
Sets status
to reflect whether session
is ready to be used.
a BurnerBurnResult.
BURNER_BURN_OK if it was successful
BURNER_BURN_NOT_READY if track
needs more time for processing
BURNER_BURN_ERR if something is wrong or if it is empty
BurnerBurnResult burner_burn_session_get_size (BurnerBurnSession *session,goffset *blocks,goffset *bytes);
Returns the size of the data contained by session
in bytes or in sectors
a BurnerBurnResult.
BURNER_BURN_OK if it was successful
BURNER_BURN_NOT_READY if track
needs more time for processing the size
BURNER_BURN_ERR if something is wrong or if it is empty
BurnerBurnResult burner_burn_session_get_input_type (BurnerBurnSession *session,BurnerTrackType *type);
Sets type
to reflect the type of data contained in session
BurnerBurnResult burner_burn_session_tag_lookup (BurnerBurnSession *session,const gchar *tag,GValue **value);
Retrieves a value associated with session
through
burner_session_tag_add() and stores it in value
. Do
not destroy value
afterwards as it is not a copy.
a BurnerBurnResult. BURNER_BURN_OK if the retrieval was successful BURNER_BURN_ERR otherwise
BurnerBurnResult burner_burn_session_tag_add (BurnerBurnSession *session,const gchar *tag,GValue *value);
Associates a new tag
with session
. This can be used
to pass arbitrary information for plugins, like parameters
for video discs, ...
NOTE: the BurnerBurnSession object takes ownership of value
.
See burner-tags.h for a list of knowns tags.
BurnerBurnResult burner_burn_session_tag_remove (BurnerBurnSession *session,const gchar *tag);
Removes a value associated with session
through
burner_session_tag_add().
a BurnerBurnResult. BURNER_BURN_OK if the retrieval was successful BURNER_BURN_ERR otherwise
BurnerDrive *
burner_burn_session_get_burner (BurnerBurnSession *session);
Returns the BurnerDrive that should be used to burn the session contents.
void burner_burn_session_set_burner (BurnerBurnSession *session,BurnerDrive *drive);
Sets the BurnerDrive that should be used to burn the session contents.
BurnerBurnResult burner_burn_session_set_image_output_full (BurnerBurnSession *session,BurnerImageFormat format,const gchar *image,const gchar *toc);
When the contents of session
should be written to a
file, this function sets the different parameters of this
image like its path (and the one of the associated toc if
necessary) and its format.
NOTE: after a call to this function the BurnerDrive for
session
will be the fake BurnerDrive.
BurnerBurnResult burner_burn_session_get_output (BurnerBurnSession *session,gchar **image,gchar **toc);
When the contents of session
should be written to a
file then this function returns the image path (and if
necessary a toc path).
image
and toc
should be freed if not used anymore.
NOTE: before using this function a BurnerDrive should have been
set with burner_burn_session_set_burner() and it should be the
fake drive (see burner_drive_is_fake()).
BurnerImageFormat
burner_burn_session_get_output_format (BurnerBurnSession *session);
When the contents of session
should be written to a
file then this function returns the format of the image to write.
NOTE: before using this function a BurnerDrive should have been
set with burner_burn_session_set_burner() and it should be the
fake drive (see burner_drive_is_fake()).
void burner_burn_session_set_flags (BurnerBurnSession *session,BurnerBurnFlag flags);
Replaces the current flags set in session
with flags
.
void burner_burn_session_add_flag (BurnerBurnSession *session,BurnerBurnFlag flags);
Merges the current flags set in session
with flags
.
void burner_burn_session_remove_flag (BurnerBurnSession *session,BurnerBurnFlag flags);
Removes flags
from the current flags set for session
.
BurnerBurnFlag
burner_burn_session_get_flags (BurnerBurnSession *session);
Returns the current flags set for session
.
BurnerBurnResult burner_burn_session_set_tmpdir (BurnerBurnSession *session,const gchar *path);
Sets the path of the directory in which to write temporary directories and files.
If set to NULL then the result of g_get_tmp_dir() will be used.
const gchar *
burner_burn_session_get_tmpdir (BurnerBurnSession *session);
Returns the path of the directory in which to write temporary directories and files.
BurnerBurnResult burner_burn_session_get_burn_flags (BurnerBurnSession *session,BurnerBurnFlag *supported,BurnerBurnFlag *compulsory);
Given the various parameters stored in session
, this function
stores:
the flags that can be used (supported
)
the flags that must be used (compulsory
)
when writing session
to a disc.
a BurnerBurnResult. BURNER_BURN_OK if the retrieval was successful. BURNER_BURN_ERR otherwise.
BurnerBurnResult burner_burn_session_get_blank_flags (BurnerBurnSession *session,BurnerBurnFlag *supported,BurnerBurnFlag *compulsory);
Given the various parameters stored in session
,
stores in supported
and compulsory
, the flags
that can be used (supported
) and must be used
(compulsory
) when blanking the medium in the
BurnerDrive (set with burner_burn_session_set_burner()).
a BurnerBurnResult. BURNER_BURN_OK if the retrieval was successful. BURNER_BURN_ERR otherwise.
BurnerBurnResult
burner_burn_session_can_blank (BurnerBurnSession *session);
Given the various parameters stored in session
, this
function checks whether the medium in the
BurnerDrive (set with burner_burn_session_set_burner())
can be blanked.
BurnerBurnResult burner_burn_session_can_burn (BurnerBurnSession *session,gboolean check_flags);
Given the various parameters stored in session
, this
function checks whether the data contained in session
can be burnt to the medium in the BurnerDrive (set
through burner_burn_session_set_burner()).
If check_flags
determine the behavior of this function.
BurnerBurnResult burner_burn_session_input_supported (BurnerBurnSession *session,BurnerTrackType *input,gboolean check_flags);
Given the various parameters stored in session
, this
function checks whether a session with the data type
type
could be burnt to the medium in the BurnerDrive (set
through burner_burn_session_set_burner()).
If check_flags
is TRUE, then flags are taken into account
and are not if it is FALSE.
BurnerBurnResult burner_burn_session_output_supported (BurnerBurnSession *session,BurnerTrackType *output);
Make sure that the image type or medium type defined in output
can be
created/burnt given the parameters and the current data set in session
.
BurnerMedia
burner_burn_session_get_required_media_type
(BurnerBurnSession *session);
Return the medium types that could be used to burn
session
.
guint burner_burn_session_get_possible_output_formats (BurnerBurnSession *session,BurnerImageFormat *formats);
Returns the disc image types that could be set to create
an image given the current state of session
.
BurnerImageFormat
burner_burn_session_get_default_output_format
(BurnerBurnSession *session);
Returns the default disc image type that should be set to create
an image given the current state of session
.
const gchar *
burner_burn_session_get_label (BurnerBurnSession *session);
Returns the label (a string) set for session
.
void burner_burn_session_set_label (BurnerBurnSession *session,const gchar *label);
Sets the label for session
.
BurnerBurnResult burner_burn_session_set_rate (BurnerBurnSession *session,guint64 rate);
Sets the speed at which the medium should be burnt.
NOTE: before using this function a BurnerDrive should have been
set with burner_burn_session_set_burner().
guint64
burner_burn_session_get_rate (BurnerBurnSession *session);
Returns the speed at which the medium should be burnt.
NOTE: before using this function a BurnerDrive should have been
set with burner_burn_session_set_burner().
struct BurnerBurnSessionClass {
GObjectClass parent_class;
/** Virtual functions **/
BurnerBurnResult (*set_output_image) (BurnerBurnSession *session,
BurnerImageFormat format,
const gchar *image,
const gchar *toc);
BurnerBurnResult (*get_output_path) (BurnerBurnSession *session,
gchar **image,
gchar **toc);
BurnerImageFormat (*get_output_format) (BurnerBurnSession *session);
/** Signals **/
void (*tag_changed) (BurnerBurnSession *session,
const gchar *tag);
void (*track_added) (BurnerBurnSession *session,
BurnerTrack *track);
void (*track_removed) (BurnerBurnSession *session,
BurnerTrack *track,
guint former_position);
void (*track_changed) (BurnerBurnSession *session,
BurnerTrack *track);
void (*output_changed) (BurnerBurnSession *session,
BurnerMedium *former_medium);
};