From 2fbfd11f8db0cc6dbb0afc0a018e951f10f2a42c Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Sat, 13 Nov 2010 13:44:45 +0000 Subject: Fix for [#24654] Sound Actuator doesn't find the file when Blender is reopened. --- source/blender/blenkernel/BKE_packedFile.h | 2 +- source/blender/blenkernel/intern/packedFile.c | 6 +++--- source/blender/blenkernel/intern/sound.c | 7 +++---- source/blender/editors/sound/sound_ops.c | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_packedFile.h b/source/blender/blenkernel/BKE_packedFile.h index 58cf144483f..ca03708edef 100644 --- a/source/blender/blenkernel/BKE_packedFile.h +++ b/source/blender/blenkernel/BKE_packedFile.h @@ -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); diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c index e8223caed41..7d7f73222fa 100644 --- a/source/blender/blenkernel/intern/packedFile.c +++ b/source/blender/blenkernel/intern/packedFile.c @@ -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); } diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index cc941c81131..4a9a5fa881b 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -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; diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 18f35502f8b..df45bc15827 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -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; } -- cgit v1.2.3