| libMirage Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Implemented Interfaces | Signals | ||||
#include <mirage-fragment.h>
MirageFragment;
struct MirageFragmentClass;
enum MirageMainDataFormat;
enum MirageSubchannelDataFormat;
gint mirage_fragment_get_address (MirageFragment *self);
gint mirage_fragment_get_length (MirageFragment *self);
const gchar * mirage_fragment_main_data_get_filename
(MirageFragment *self);
gint mirage_fragment_main_data_get_format
(MirageFragment *self);
guint64 mirage_fragment_main_data_get_offset
(MirageFragment *self);
gint mirage_fragment_main_data_get_size (MirageFragment *self);
void mirage_fragment_main_data_set_format
(MirageFragment *self,
gint format);
void mirage_fragment_main_data_set_offset
(MirageFragment *self,
guint64 offset);
void mirage_fragment_main_data_set_size (MirageFragment *self,
gint size);
void mirage_fragment_main_data_set_stream
(MirageFragment *self,
GInputStream *stream);
gboolean mirage_fragment_read_main_data (MirageFragment *self,
gint address,
guint8 **buffer,
gint *length,
GError **error);
gboolean mirage_fragment_read_subchannel_data
(MirageFragment *self,
gint address,
guint8 **buffer,
gint *length,
GError **error);
void mirage_fragment_set_address (MirageFragment *self,
gint address);
void mirage_fragment_set_length (MirageFragment *self,
gint length);
const gchar * mirage_fragment_subchannel_data_get_filename
(MirageFragment *self);
gint mirage_fragment_subchannel_data_get_format
(MirageFragment *self);
guint64 mirage_fragment_subchannel_data_get_offset
(MirageFragment *self);
gint mirage_fragment_subchannel_data_get_size
(MirageFragment *self);
void mirage_fragment_subchannel_data_set_format
(MirageFragment *self,
gint format);
void mirage_fragment_subchannel_data_set_offset
(MirageFragment *self,
guint64 offset);
void mirage_fragment_subchannel_data_set_size
(MirageFragment *self,
gint size);
void mirage_fragment_subchannel_data_set_stream
(MirageFragment *self,
GInputStream *stream);
gboolean mirage_fragment_use_the_rest_of_file
(MirageFragment *self,
GError **error);
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.
typedef struct _MirageFragment 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;
};
The class structure for the MirageFragment type.
MirageObjectClass |
the parent class |
typedef enum {
MIRAGE_MAIN_DATA = 0x01,
MIRAGE_MAIN_AUDIO = 0x02,
MIRAGE_MAIN_AUDIO_SWAP = 0x04,
} MirageMainDataFormat;
Track file data formats.
typedef enum {
MIRAGE_SUBCHANNEL_INT = 0x01,
MIRAGE_SUBCHANNEL_EXT = 0x02,
MIRAGE_SUBCHANNEL_PW96_INT = 0x10,
MIRAGE_SUBCHANNEL_PW96_LIN = 0x20,
MIRAGE_SUBCHANNEL_RW96 = 0x40,
MIRAGE_SUBCHANNEL_PQ16 = 0x80,
} MirageSubchannelDataFormat;
Subchannel file data formats.
| internal subchannel (i.e. included in track file) | |
| external subchannel (i.e. provided by separate file) | |
| P-W subchannel, 96 bytes, interleaved | |
| P-W subchannel, 96 bytes, linear | |
| R-W subchannel, 96 bytes, deinterleaved | |
| PQ subchannel, 16 bytes |
gint mirage_fragment_get_address (MirageFragment *self);
Retrieves fragment's start address. The address is given in sectors.
|
a MirageFragment |
Returns : |
start address |
gint mirage_fragment_get_length (MirageFragment *self);
Retrieves fragment's length. The returned length is given in sectors.
|
a MirageFragment |
Returns : |
length |
const gchar * mirage_fragment_main_data_get_filename
(MirageFragment *self);
Retrieves filename of main data file.
|
a MirageFragment |
Returns : |
pointer to main data file name string. The string belongs to object and should not be modified. [transfer none] |
gint mirage_fragment_main_data_get_format
(MirageFragment *self);
Retrieves main data file format.
|
a MirageFragment |
Returns : |
main data file format |
guint64 mirage_fragment_main_data_get_offset
(MirageFragment *self);
Retrieves main data file offset.
|
a MirageFragment |
Returns : |
main data file offset |
gint mirage_fragment_main_data_get_size (MirageFragment *self);
Retrieves main data file sector size.
|
a MirageFragment |
Returns : |
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.
|
a MirageFragment |
|
main data file format. [in] |
void mirage_fragment_main_data_set_offset (MirageFragment *self,guint64 offset);
Sets main data file offset.
|
a MirageFragment |
|
main data file offset. [in] |
void mirage_fragment_main_data_set_size (MirageFragment *self,gint size);
Sets main data file sector size.
|
a MirageFragment |
|
main data file sector size. [in] |
void mirage_fragment_main_data_set_stream (MirageFragment *self,GInputStream *stream);
Sets main data stream.
|
a MirageFragment |
|
a GInputStream on main data file. [in][transfer full] |
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.
|
a MirageFragment |
|
address. [in] |
|
location to store pointer to buffer with read data, or NULL. [out][allow-none][array length=length]
|
|
location to store read data length. [out] |
|
location to store error, or NULL. [out][allow-none]
|
Returns : |
TRUE on success, FALSE on failure |
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.
|
a MirageFragment |
|
address. [in] |
|
location to store pointer to buffer with read data, or NULL. [out][allow-none][array length=length]
|
|
location to store read data length. [out] |
|
location to store error, or NULL. [out][allow-none]
|
Returns : |
TRUE on success, FALSE on failure |
void mirage_fragment_set_address (MirageFragment *self,gint address);
Sets fragment's start address. The address is given in sectors.
|
a MirageFragment |
|
start address. [in] |
void mirage_fragment_set_length (MirageFragment *self,gint length);
Sets fragment's length. The length is given in sectors.
|
a MirageFragment |
|
length. [in] |
const gchar * mirage_fragment_subchannel_data_get_filename
(MirageFragment *self);
Retrieves subchannel data file name.
|
a MirageFragment |
Returns : |
pointer to subchannel data file name string. The string belongs to object and should not be modified. [transfer none] |
gint mirage_fragment_subchannel_data_get_format
(MirageFragment *self);
Retrieves subchannel data file format.
|
a MirageFragment |
Returns : |
subchannel data file format |
guint64 mirage_fragment_subchannel_data_get_offset
(MirageFragment *self);
Retrieves subchannel data file offset.
|
a MirageFragment |
Returns : |
subchannel data file offset |
gint mirage_fragment_subchannel_data_get_size
(MirageFragment *self);
Retrieves subchannel data file sector size.
|
a MirageFragment |
Returns : |
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.
|
a MirageFragment |
|
subchannel data file format. [in] |
void mirage_fragment_subchannel_data_set_offset (MirageFragment *self,guint64 offset);
Sets subchannel data file offset.
|
a MirageFragment |
|
subchannel data file offset. [in] |
void mirage_fragment_subchannel_data_set_size (MirageFragment *self,gint size);
Sets subchannel data file sector size.
|
a MirageFragment |
|
subchannel data file sector size. [in] |
void mirage_fragment_subchannel_data_set_stream (MirageFragment *self,GInputStream *stream);
Sets subchannel data stream.
|
a MirageFragment |
|
a GInputStream on subchannel data file. [in][transfer full] |
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.
|
a MirageFragment |
|
location to store error, or NULL. [out][allow-none]
|
Returns : |
TRUE on success, FALSE on failure |
"layout-changed" signalvoid user_function (MirageFragment *fragment,
gpointer user_data) : Run Last
Emitted when a layout of MirageFragment changed in a way that causes a bottom-up change.
|
a MirageFragment |
|
user data set when the signal handler was connected. |