40 if (input ==
nullptr) {
63 if (parent_meta !=
nullptr) {
65 lookup->owner_by_channel.add(channel, parent_meta);
70 lookup->seq_by_name.add(seq->name + 2, seq);
71 lookup->meta_by_seq.add(seq, parent_meta);
84 lookup->is_valid =
true;
111 if (*lookup && (*lookup)->is_valid) {
132 return lookup->seq_by_name.lookup_default(key,
nullptr);
141 return lookup->meta_by_seq.lookup_default(key,
nullptr);
152 return effects.as_span();
162 return lookup->owner_by_channel.lookup_default(channel,
nullptr);
167 if (scene ==
nullptr || scene->ed ==
nullptr) {
173 if (lookup !=
nullptr) {
174 lookup->is_valid =
false;
#define LISTBASE_FOREACH(type, var, list)
These structs are the foundation for all linked lists in the library system.
Read Guarded memory(de)allocation.
Sequence * SEQ_sequence_lookup_owner_by_channel(const Scene *scene, const SeqTimelineChannel *channel)
static void seq_sequence_lookup_rebuild(const Scene *scene, SequenceLookup **lookup)
static void seq_sequence_lookup_free(SequenceLookup **lookup)
static void seq_sequence_lookup_update_if_needed(const Scene *scene, SequenceLookup **lookup)
static SequenceLookup * seq_sequence_lookup_new()
static void seq_sequence_lookup_build_from_seqbase(Sequence *parent_meta, const ListBase *seqbase, SequenceLookup *lookup)
Sequence * seq_sequence_lookup_meta_by_seq(const Scene *scene, const Sequence *key)
static void seq_sequence_lookup_build_effect(Sequence *seq, SequenceLookup *lookup)
blender::Span< Sequence * > seq_sequence_lookup_effects_by_seq(const Scene *scene, const Sequence *key)
static void seq_sequence_lookup_append_effect(const Sequence *input, Sequence *effect, SequenceLookup *lookup)
void SEQ_sequence_lookup_invalidate(const Scene *scene)
static std::mutex lookup_lock
Sequence * SEQ_sequence_lookup_seq_by_name(const Scene *scene, const char *key)
void SEQ_sequence_lookup_free(const Scene *scene)
static void seq_sequence_lookup_build(const Scene *scene, SequenceLookup *lookup)
Editing * SEQ_editing_get(const Scene *scene)
blender::Map< const Sequence *, blender::VectorSet< Sequence * > > effects_by_seq
blender::Map< const Sequence *, Sequence * > meta_by_seq
blender::Map< std::string, Sequence * > seq_by_name
blender::Map< const SeqTimelineChannel *, Sequence * > owner_by_channel