Blender  V3.3
deg_eval_runtime_backup_sequencer.cc
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2019 Blender Foundation. All rights reserved. */
3 
9 
10 #include "DNA_scene_types.h"
11 #include "DNA_sequence_types.h"
12 
13 #include "BLI_assert.h"
14 
15 #include "BKE_sound.h"
16 
17 #include "SEQ_iterator.h"
18 
19 namespace blender::deg {
20 
22 {
23 }
24 
25 static bool seq_init_cb(Sequence *seq, void *user_data)
26 {
28  SequenceBackup sequence_backup(sb->depsgraph);
29  sequence_backup.init_from_sequence(seq);
30  if (!sequence_backup.isEmpty()) {
31  const SessionUUID &session_uuid = seq->runtime.session_uuid;
33  sb->sequences_backup.add(session_uuid, sequence_backup);
34  }
35  return true;
36 }
37 
39 {
40  if (scene->ed != nullptr) {
42  }
43 }
44 
45 static bool seq_restore_cb(Sequence *seq, void *user_data)
46 {
48  const SessionUUID &session_uuid = seq->runtime.session_uuid;
50  SequenceBackup *sequence_backup = sb->sequences_backup.lookup_ptr(session_uuid);
51  if (sequence_backup != nullptr) {
52  sequence_backup->restore_to_sequence(seq);
53  }
54  return true;
55 }
56 
58 {
59  if (scene->ed != nullptr) {
61  }
62  /* Cleanup audio while the scene is still known. */
63  for (SequenceBackup &sequence_backup : sequences_backup.values()) {
64  if (sequence_backup.scene_sound != nullptr) {
65  BKE_sound_remove_scene_sound(scene, sequence_backup.scene_sound);
66  }
67  }
68 }
69 
70 } // namespace blender::deg
void BKE_sound_remove_scene_sound(struct Scene *scene, void *handle)
#define BLI_assert(a)
Definition: BLI_assert.h:46
bool BLI_session_uuid_is_generated(const SessionUUID *uuid)
Definition: session_uuid.c:38
Map< SessionUUID, SequenceBackup > sequences_backup
Scene scene
const Depsgraph * depsgraph
void * user_data
void SEQ_for_each_callback(ListBase *seqbase, SeqForEachFunc callback, void *user_data)
Definition: iterator.c:76
static bool seq_init_cb(Sequence *seq, void *user_data)
static bool seq_restore_cb(Sequence *seq, void *user_data)
ListBase seqbase
struct Editing * ed
SessionUUID session_uuid
SequenceRuntime runtime