Sequencer: Fix crash when trying to change filepath of Sound strip
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 27 Jan 2016 10:01:41 +0000 (11:01 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 27 Jan 2016 10:01:41 +0000 (11:01 +0100)
It was not implemented and fallback RNA-based approach was not
correct since there's no filepath property of sound strip.

source/blender/editors/space_sequencer/sequencer_edit.c

index d65cce1ad9c274e5b7288cd8ea3f6125e4b28d6c..9d96226027afd1f10fc923251d629aef5b02e806 100644 (file)
@@ -44,6 +44,7 @@
 #include "BLT_translation.h"
 
 #include "DNA_scene_types.h"
+#include "DNA_sound_types.h"
 
 #include "BKE_context.h"
 #include "BKE_global.h"
@@ -3774,6 +3775,16 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
                /* important else we don't get the imbuf cache flushed */
                BKE_sequencer_free_imbuf(scene, &ed->seqbase, false);
        }
+       else if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD)) {
+               bSound *sound = seq->sound;
+               if (sound == NULL) {
+                       return OPERATOR_CANCELLED;
+               }
+               char filepath[FILE_MAX];
+               RNA_string_get(op->ptr, "filepath", filepath);
+               BLI_strncpy(sound->name, filepath, sizeof(sound->name));
+               BKE_sound_load(bmain, sound);
+       }
        else {
                /* lame, set rna filepath */
                PointerRNA seq_ptr;