![]() |
![]() |
![]() |
Buzztard Bt-Core Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
#include <libbtcore/core.h> BtSongIO; BtSongIOClass; BtSongIO * bt_song_io_make (const gchar * const file_name); gboolean bt_song_io_load (BtSongIO const *self, const BtSong * const song); gboolean bt_song_io_save (BtSongIO const *self, const BtSong * const song); const GList * bt_song_io_get_module_info_list (void); GType (*BtSongIODetect) (const gchar * const file_name); BtSongIOFormatInfo; BtSongIOModuleInfo; #define BT_SONG_IO_MODULE_INFO_MAX_FORMATS gboolean (*bt_song_io_virtual_load) (gconstpointer self, const BtSong * const song); gboolean (*bt_song_io_virtual_save) (gconstpointer const self, const BtSong * const song);
A base class for BtSong loader and saver implementations. A SongIO module
needs to be installed as a shared library into LIBDIR/songio. It is
recognized, if it exports method named bt_song_io_detect()
. At runtime the
detect method of each module is called with the choosen file-name. The module
should return its GType if it can handle the format or NULL
else.
Such a module should overwrite bt_song_io_load()
and/or bt_song_io_save()
.
There is an internal subclass of this called BtSongIONative.
This API is not yet fully stable. Please discuss with the deverloper team. if you intend to write a io plugin
typedef struct { const GObjectClass parent; /* class methods */ bt_song_io_virtual_load load; bt_song_io_virtual_save save; } BtSongIOClass;
Base class for song input and output plugins
const GObjectClass |
parent class type |
bt_song_io_virtual_load |
virtual method for loading a song |
bt_song_io_virtual_save |
virtual method for saving a song |
BtSongIO * bt_song_io_make (const gchar * const file_name);
Create a new instance from the given file_name
. Each installed plugin will
test if it can handle the file type.
|
the file name of the new song |
Returns : |
the new instance or NULL in case of an error
|
gboolean bt_song_io_load (BtSongIO const *self, const BtSong * const song);
load the song from a file. The file is set in the constructor
|
the SongIO instance to use |
|
the Song instance that should initialized |
Returns : |
TRUE for success
|
gboolean bt_song_io_save (BtSongIO const *self, const BtSong * const song);
save the song to a file. The file is set in the constructor
|
the SongIO instance to use |
|
the Song instance that should stored |
Returns : |
TRUE for success
|
const GList * bt_song_io_get_module_info_list (void);
Get read only access to list of BtSongIOModuleInfo entries.
Returns : |
the GList. |
GType (*BtSongIODetect) (const gchar * const file_name);
Type of the file-format detect function. Each BtSongIO plugin must provide this one.
|
the file to run the detection against |
Returns : |
the GType of the song-io class on succes or NULL otherwise
|
typedef struct { const gchar *name; const gchar *mime_type; const gchar *extension; } BtSongIOFormatInfo;
Metadata structure for BtSongIO plugins describing one format.
const gchar * |
format name |
const gchar * |
mime type |
const gchar * |
typedef struct { BtSongIODetect detect; BtSongIOFormatInfo formats[BT_SONG_IO_MODULE_INFO_MAX_FORMATS]; } BtSongIOModuleInfo;
Metadata structure for BtSongIO plugins.
BtSongIODetect |
pointer to detection function |
BtSongIOFormatInfo |
NULL terminated array of formats supported by this plugin
|
#define BT_SONG_IO_MODULE_INFO_MAX_FORMATS 10
Maximum number of BtSongIOFormatInfo per plugin (10).
gboolean (*bt_song_io_virtual_load) (gconstpointer self, const BtSong * const song);
Subclasses will override this methods with the loader function.
|
song-io instance |
|
song object to load |
Returns : |
TRUE for success
|
gboolean (*bt_song_io_virtual_save) (gconstpointer const self, const BtSong * const song);
Subclasses will override this methods with the saver function.
|
song-io instance |
|
song object to save |
Returns : |
TRUE for success
|