/* unpack */
char *unpackFile(struct ReportList *reports, char *abs_name, char *local_name, struct PackedFile *pf, int how);
int unpackVFont(struct ReportList *reports, struct VFont *vfont, int how);
-int unpackSound(struct ReportList *reports, struct bSound *sound, int how);
+int unpackSound(struct Main *bmain, struct ReportList *reports, struct bSound *sound, int how);
int unpackImage(struct ReportList *reports, struct Image *ima, int how);
void unpackAll(struct Main *bmain, struct ReportList *reports, int how);
return (ret_value);
}
-int unpackSound(ReportList *reports, bSound *sound, int how)
+int unpackSound(Main *bmain, ReportList *reports, bSound *sound, int how)
{
char localname[FILE_MAXDIR + FILE_MAX], fi[FILE_MAX];
char *newname;
freePackedFile(sound->packedfile);
sound->packedfile = 0;
- sound_load(NULL, sound);
+ sound_load(bmain, sound);
ret_value = RET_OK;
}
for(sound=bmain->sound.first; sound; sound=sound->id.next)
if(sound->packedfile)
- unpackSound(reports, sound, how);
+ unpackSound(bmain, reports, sound, how);
}
}
}
-void sound_load(struct Main *UNUSED(bmain), struct bSound* sound)
+void sound_load(struct Main *bmain, struct bSound* sound)
{
if(sound)
{
if(sound->id.lib)
path = sound->id.lib->filepath;
else
- // XXX this should be fixed!
- path = /*bmain ? bmain->name :*/ G.main->name;
+ path = bmain->name;
BLI_path_abs(fullpath, path);
/* or else load it from disk */
else
sound->handle = AUD_load(fullpath);
- } // XXX
+ }
// XXX unused currently
#if 0
break;
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
- unpackSound(op->reports, sound, method);
+ unpackSound(CTX_data_main(C), op->reports, sound, method);
return OPERATOR_FINISHED;
}