Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJoerg Mueller <nexyon@gmail.com>2010-11-13 16:44:45 +0300
committerJoerg Mueller <nexyon@gmail.com>2010-11-13 16:44:45 +0300
commit2fbfd11f8db0cc6dbb0afc0a018e951f10f2a42c (patch)
tree8010d6ed7cd94faadae1b932d8eec0dc054b8fd7 /source
parentc1dec420b089e43d1fee5ba361847d7653167937 (diff)
Fix for [#24654] Sound Actuator doesn't find the file when Blender is reopened.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_packedFile.h2
-rw-r--r--source/blender/blenkernel/intern/packedFile.c6
-rw-r--r--source/blender/blenkernel/intern/sound.c7
-rw-r--r--source/blender/editors/sound/sound_ops.c2
4 files changed, 8 insertions, 9 deletions
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;
}