Fix for [#24654] Sound Actuator doesn't find the file when Blender is reopened.

This commit is contained in:
2010-11-13 13:44:45 +00:00
parent c1dec420b0
commit 2fbfd11f8d
4 changed files with 8 additions and 9 deletions

View File

@@ -50,7 +50,7 @@ void packAll(struct Main *bmain, struct ReportList *reports);
/* 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);

View File

@@ -467,7 +467,7 @@ int unpackVFont(ReportList *reports, VFont *vfont, 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;
@@ -486,7 +486,7 @@ int unpackSound(ReportList *reports, bSound *sound, int how)
freePackedFile(sound->packedfile);
sound->packedfile = 0;
sound_load(NULL, sound);
sound_load(bmain, sound);
ret_value = RET_OK;
}
@@ -536,6 +536,6 @@ void unpackAll(Main *bmain, ReportList *reports, int how)
for(sound=bmain->sound.first; sound; sound=sound->id.next)
if(sound->packedfile)
unpackSound(reports, sound, how);
unpackSound(bmain, reports, sound, how);
}

View File

@@ -236,7 +236,7 @@ void sound_delete_cache(struct bSound* sound)
}
}
void sound_load(struct Main *UNUSED(bmain), struct bSound* sound)
void sound_load(struct Main *bmain, struct bSound* sound)
{
if(sound)
{
@@ -266,8 +266,7 @@ void sound_load(struct Main *UNUSED(bmain), struct bSound* 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);
@@ -277,7 +276,7 @@ void sound_load(struct Main *UNUSED(bmain), struct bSound* sound)
/* or else load it from disk */
else
sound->handle = AUD_load(fullpath);
} // XXX
}
// XXX unused currently
#if 0
break;

View File

@@ -275,7 +275,7 @@ static int unpack_exec(bContext *C, wmOperator *op)
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;
}