diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/sound.c | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_sequencer.c | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index 6cbb01861e2..d42436ecb40 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -677,6 +677,9 @@ void BKE_sound_set_cfra(int cfra) void BKE_sound_set_scene_volume(Scene *scene, float volume) { sound_verify_evaluated_id(&scene->id); + if (scene->sound_scene == NULL) { + return; + } AUD_Sequence_setAnimationData(scene->sound_scene, AUD_AP_VOLUME, CFRA, diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 31ead989f25..18985d41551 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -157,6 +157,13 @@ static void rna_Sequence_invalidate_composite_update(Main *UNUSED(bmain), } } +static void rna_Sequence_scene_switch_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + rna_Sequence_invalidate_raw_update(bmain, scene, ptr); + DEG_id_tag_update(&scene->id, ID_RECALC_AUDIO | ID_RECALC_SEQUENCER_STRIPS); + DEG_relations_tag_update(bmain); +} + static void rna_Sequence_use_sequence(Main *bmain, Scene *scene, PointerRNA *ptr) { /* General update callback. */ @@ -2227,7 +2234,7 @@ static void rna_def_scene(BlenderRNA *brna) prop = RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK); RNA_def_property_ui_text(prop, "Scene", "Scene that this sequence uses"); - RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update"); + RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_scene_switch_update"); prop = RNA_def_property(srna, "scene_camera", PROP_POINTER, PROP_NONE); RNA_def_property_flag(prop, PROP_EDITABLE); |