Top | ![]() |
![]() |
![]() |
![]() |
struct | MirageFragment |
struct | MirageFragmentClass |
enum | MirageMainDataFormat |
enum | MirageSubchannelDataFormat |
MirageFragment object represents an interface between a MirageTrack and data stream(s) containing the data. It allows tracks to read main and subchannel data from the streams, which is then fed to sectors. When constructing a track, a parser will typically create and append at least one fragment.
A MirageFragment object is obtained using g_object_new()
function.
Both main data file stream and subchannel data file stream can be set
using mirage_fragment_main_data_set_stream()
and mirage_fragment_subchannel_data_set_stream()
functions. If no streams are set, a fragment acts as a "NULL" fragment,
and can be used to represent zero-filled pregaps and postgaps in
tracks.
gint
mirage_fragment_get_address (MirageFragment *self
);
Retrieves fragment's start address. The address
is given in sectors.
gint
mirage_fragment_get_length (MirageFragment *self
);
Retrieves fragment's length. The returned length
is given in sectors.
const gchar *
mirage_fragment_main_data_get_filename
(MirageFragment *self
);
Retrieves filename of main data file.
gint
mirage_fragment_main_data_get_format (MirageFragment *self
);
Retrieves main data file format.
guint64
mirage_fragment_main_data_get_offset (MirageFragment *self
);
Retrieves main data file offset.
gint
mirage_fragment_main_data_get_size (MirageFragment *self
);
Retrieves main data file sector size.
void mirage_fragment_main_data_set_format (MirageFragment *self
,gint format
);
Sets main data file format. format
must be one of MirageMainDataFormat.
void mirage_fragment_main_data_set_offset (MirageFragment *self
,guint64 offset
);
Sets main data file offset.
void mirage_fragment_main_data_set_size (MirageFragment *self
,gint size
);
Sets main data file sector size.
void mirage_fragment_main_data_set_stream (MirageFragment *self
,GInputStream *stream
);
Sets main data stream.
gboolean mirage_fragment_read_main_data (MirageFragment *self
,gint address
,guint8 **buffer
,gint *length
,GError **error
);
Reads main channel data for sector at fragment-relative address
(given
in sectors). The buffer for reading data into is allocated by function
and should be freed using g_free()
when no longer needed. The pointer
to buffer is stored into buffer
and the length of read data is stored into
length
.
gboolean mirage_fragment_read_subchannel_data (MirageFragment *self
,gint address
,guint8 **buffer
,gint *length
,GError **error
);
Reads subchannel data for sector at fragment-relative address
(given
in sectors). The buffer for reading data into is allocated by function
and should be freed using g_free()
when no longer needed. The pointer
to buffer is stored into buffer
and the length of read data is stored into
length
.
void mirage_fragment_set_address (MirageFragment *self
,gint address
);
Sets fragment's start address. The address
is given in sectors.
void mirage_fragment_set_length (MirageFragment *self
,gint length
);
Sets fragment's length. The length
is given in sectors.
const gchar *
mirage_fragment_subchannel_data_get_filename
(MirageFragment *self
);
Retrieves subchannel data file name.
gint
mirage_fragment_subchannel_data_get_format
(MirageFragment *self
);
Retrieves subchannel data file format.
guint64
mirage_fragment_subchannel_data_get_offset
(MirageFragment *self
);
Retrieves subchannel data file offset.
gint
mirage_fragment_subchannel_data_get_size
(MirageFragment *self
);
Retrieves subchannel data file sector size.
void mirage_fragment_subchannel_data_set_format (MirageFragment *self
,gint format
);
Sets subchannel data file format. format
must be a combination of
MirageSubchannelDataFormat.
void mirage_fragment_subchannel_data_set_offset (MirageFragment *self
,guint64 offset
);
Sets subchannel data file offset.
void mirage_fragment_subchannel_data_set_size (MirageFragment *self
,gint size
);
Sets subchannel data file sector size.
void mirage_fragment_subchannel_data_set_stream (MirageFragment *self
,GInputStream *stream
);
Sets subchannel data stream.
gboolean mirage_fragment_use_the_rest_of_file (MirageFragment *self
,GError **error
);
Uses the rest of data file. It automatically calculates and sets fragment's length.
struct MirageFragment;
All the fields in the MirageFragment structure are private to the MirageFragment implementation and should never be accessed directly.
struct MirageFragmentClass { MirageObjectClass parent_class; /* Signals */ gint signal_layout_changed; };
The class structure for the MirageFragment type.
Subchannel file data formats.
“layout-changed”
signalvoid user_function (MirageFragment *fragment, gpointer user_data)
Emitted when a layout of MirageFragment changed in a way that causes a bottom-up change.
Flags: Run Last