G_TYPE_INSTANCE_GET_PRIVATE(o, ENGINE_MUSIC_TYPE, struct music_priv)
struct music_priv {
- struct upkg_file *f;
struct music_mod *mod;
unsigned loaded;
};
static int load(GObject *o)
{
struct music_priv *priv = MUSIC_GET_PRIV(o);
+ struct upkg_file *f = U_OBJECT(o)->pkg_file;
if (!priv->loaded) {
- g_return_val_if_fail(priv->f != NULL, -1);
+ g_return_val_if_fail(f != NULL, -1);
- if (upkg_export_seek(priv->f, 0, SEEK_SET) != 0) {
+ if (upkg_export_seek(f, 0, SEEK_SET) != 0) {
return -1;
}
- priv->mod = music_mod_open(priv->f);
+ priv->mod = music_mod_open(f);
if (!priv->mod) {
return -1;
}
}
type = music_mod_type(priv->mod);
- rc = snprintf(buf, n, "%s.%s", priv->f->name, type);
+ rc = snprintf(buf, n, "%s.%s", U_OBJECT(o)->pkg_file->name, type);
unload(o);
f->base += pos;
f->len = size;
upkg_export_seek(f, 0, SEEK_SET);
- priv->f = f;
return 0;
}