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); };