Blender  V3.3
Functions
iterator.c File Reference
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BKE_scene.h"
#include "SEQ_iterator.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "SEQ_time.h"
#include "render.h"

Go to the source code of this file.

Functions

static void query_all_strips_recursive (ListBase *seqbase, SeqCollection *collection)
 
SeqCollectionSEQ_query_all_strips_recursive (ListBase *seqbase)
 
SeqCollectionSEQ_query_all_strips (ListBase *seqbase)
 
SeqCollectionSEQ_query_selected_strips (ListBase *seqbase)
 
static SeqCollectionquery_strips_at_frame (const Scene *scene, ListBase *seqbase, const int timeline_frame)
 
static void collection_filter_channel_up_to_incl (SeqCollection *collection, const int channel)
 
static bool must_render_strip (const Sequence *seq, SeqCollection *strips_at_timeline_frame)
 
static void collection_filter_rendered_strips (ListBase *channels, SeqCollection *collection)
 
SeqCollectionSEQ_query_rendered_strips (const Scene *scene, ListBase *channels, ListBase *seqbase, const int timeline_frame, const int displayed_channel)
 
SeqCollectionSEQ_query_unselected_strips (ListBase *seqbase)
 
void SEQ_query_strip_effect_chain (const Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection)
 
void SEQ_filter_selected_strips (SeqCollection *collection)
 
bool SEQ_iterator_ensure (SeqCollection *collection, SeqIterator *iterator, Sequence **r_seq)
 
SequenceSEQ_iterator_yield (SeqIterator *iterator)
 
static bool seq_for_each_recursive (ListBase *seqbase, SeqForEachFunc callback, void *user_data)
 
void SEQ_for_each_callback (ListBase *seqbase, SeqForEachFunc callback, void *user_data)
 
void SEQ_collection_free (SeqCollection *collection)
 
SeqCollectionSEQ_collection_create (const char *name)
 
uint SEQ_collection_len (const SeqCollection *collection)
 
bool SEQ_collection_has_strip (const Sequence *seq, const SeqCollection *collection)
 
SeqCollectionSEQ_query_by_reference (Sequence *seq_reference, const Scene *scene, ListBase *seqbase, void seq_query_func(const Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection))
 
bool SEQ_collection_append_strip (Sequence *seq, SeqCollection *collection)
 
bool SEQ_collection_remove_strip (Sequence *seq, SeqCollection *collection)
 
void SEQ_collection_merge (SeqCollection *collection_dst, SeqCollection *collection_src)
 
void SEQ_collection_exclude (SeqCollection *collection, SeqCollection *exclude_elements)
 
void SEQ_collection_expand (const Scene *scene, ListBase *seqbase, SeqCollection *collection, void seq_query_func(const Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection))
 
SeqCollectionSEQ_collection_duplicate (SeqCollection *collection)
 

Function Documentation

◆ collection_filter_channel_up_to_incl()

static void collection_filter_channel_up_to_incl ( SeqCollection collection,
const int  channel 
)
static

◆ collection_filter_rendered_strips()

static void collection_filter_rendered_strips ( ListBase channels,
SeqCollection collection 
)
static

◆ must_render_strip()

static bool must_render_strip ( const Sequence seq,
SeqCollection strips_at_timeline_frame 
)
static

◆ query_all_strips_recursive()

static void query_all_strips_recursive ( ListBase seqbase,
SeqCollection collection 
)
static

◆ query_strips_at_frame()

static SeqCollection* query_strips_at_frame ( const Scene scene,
ListBase seqbase,
const int  timeline_frame 
)
static

◆ SEQ_collection_append_strip()

bool SEQ_collection_append_strip ( struct Sequence seq,
SeqCollection collection 
)

◆ SEQ_collection_create()

SeqCollection* SEQ_collection_create ( const char *  name)

◆ SEQ_collection_duplicate()

SeqCollection* SEQ_collection_duplicate ( SeqCollection collection)

Duplicate collection

Parameters
collectioncollection to be duplicated
Returns
duplicate of collection

Definition at line 172 of file iterator.c.

References SEQ_collection_append_strip(), SEQ_collection_create(), and SEQ_ITERATOR_FOREACH.

Referenced by query_snap_targets(), and query_time_dependent_strips_strips().

◆ SEQ_collection_exclude()

void SEQ_collection_exclude ( SeqCollection collection,
SeqCollection exclude_elements 
)

Remove strips from collection that are also in exclude_elements. Source collection will be freed.

Parameters
collectioncollection from which strips are removed
exclude_elementscollection of strips to be removed

Definition at line 142 of file iterator.c.

References SEQ_collection_free(), SEQ_collection_remove_strip(), and SEQ_ITERATOR_FOREACH.

Referenced by query_snap_targets().

◆ SEQ_collection_expand()

void SEQ_collection_expand ( const Scene scene,
ListBase seqbase,
SeqCollection collection,
void   seq_query_funcconst Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection 
)

◆ SEQ_collection_free()

void SEQ_collection_free ( SeqCollection collection)

◆ SEQ_collection_has_strip()

bool SEQ_collection_has_strip ( const Sequence seq,
const SeqCollection collection 
)

◆ SEQ_collection_len()

uint SEQ_collection_len ( const SeqCollection collection)

◆ SEQ_collection_merge()

void SEQ_collection_merge ( SeqCollection collection_dst,
SeqCollection collection_src 
)

Move strips from collection_src to collection_dst. Source collection will be freed.

Parameters
collection_dstdestination collection
collection_srcsource collection

Definition at line 133 of file iterator.c.

References SEQ_collection_append_strip(), SEQ_collection_free(), and SEQ_ITERATOR_FOREACH.

Referenced by SEQ_collection_expand().

◆ SEQ_collection_remove_strip()

bool SEQ_collection_remove_strip ( struct Sequence seq,
SeqCollection collection 
)

Remove strip from collection.

Parameters
seqstrip to be removed
collectioncollection from which strip will be removed
Returns
true if strip exists in set and it was removed from set, otherwise false

Definition at line 128 of file iterator.c.

References BLI_gset_remove(), NULL, and SeqCollection::set.

Referenced by collection_filter_channel_up_to_incl(), collection_filter_rendered_strips(), query_overwrite_targets(), query_scene_strips(), query_time_dependent_strips_strips(), SEQ_collection_exclude(), and SEQ_filter_selected_strips().

◆ SEQ_filter_selected_strips()

void SEQ_filter_selected_strips ( SeqCollection collection)

◆ SEQ_for_each_callback()

void SEQ_for_each_callback ( struct ListBase seqbase,
SeqForEachFunc  callback,
void user_data 
)

◆ seq_for_each_recursive()

static bool seq_for_each_recursive ( ListBase seqbase,
SeqForEachFunc  callback,
void user_data 
)
static

Definition at line 60 of file iterator.c.

References callback, LISTBASE_FOREACH, SEQ_TYPE_META, and user_data.

Referenced by SEQ_for_each_callback().

◆ SEQ_iterator_ensure()

bool SEQ_iterator_ensure ( SeqCollection collection,
SeqIterator iterator,
Sequence **  r_seq 
)

◆ SEQ_iterator_yield()

Sequence* SEQ_iterator_yield ( SeqIterator iterator)

Utility function for SEQ_ITERATOR_FOREACH macro. Yield collection element

Parameters
iteratoriterator to be initialized
Returns
collection element or NULL when iteration has ended

Definition at line 52 of file iterator.c.

References BLI_gsetIterator_done(), BLI_gsetIterator_getKey(), BLI_gsetIterator_step(), SeqIterator::gsi, and NULL.

◆ SEQ_query_all_strips()

SeqCollection* SEQ_query_all_strips ( ListBase seqbase)

Query all strips in seqbase. This does not include strips nested in meta strips.

Parameters
seqbaseListBase in which strips are queried
Returns
strip collection

Definition at line 206 of file iterator.c.

References LISTBASE_FOREACH, SEQ_collection_append_strip(), and SEQ_collection_create().

Referenced by all_strips_from_context(), seq_frame_apply_snap(), and seq_time_gap_info_get().

◆ SEQ_query_all_strips_recursive()

SeqCollection* SEQ_query_all_strips_recursive ( ListBase seqbase)

Query all strips in seqbase and nested meta strips.

Parameters
seqbaseListBase in which strips are queried
Returns
strip collection

Definition at line 194 of file iterator.c.

References LISTBASE_FOREACH, query_all_strips_recursive(), SEQ_collection_append_strip(), SEQ_collection_create(), and SEQ_TYPE_META.

Referenced by query_scene_strips(), and SEQ_get_meta_by_seqbase().

◆ SEQ_query_by_reference()

SeqCollection* SEQ_query_by_reference ( Sequence seq_reference,
const Scene scene,
ListBase seqbase,
void   seq_query_funcconst Scene *scene, Sequence *seq_reference, ListBase *seqbase, SeqCollection *collection 
)

Definition at line 105 of file iterator.c.

References scene, and SEQ_collection_create().

Referenced by SEQ_collection_expand(), and seq_transform_handle_overwrite_trim().

◆ SEQ_query_rendered_strips()

SeqCollection* SEQ_query_rendered_strips ( const Scene scene,
ListBase channels,
ListBase seqbase,
const int  timeline_frame,
const int  displayed_channel 
)

◆ SEQ_query_selected_strips()

SeqCollection* SEQ_query_selected_strips ( struct ListBase seqbase)

Query all selected strips in seqbase.

Parameters
seqbaseListBase in which strips are queried
Returns
strip collection

Definition at line 215 of file iterator.c.

References LISTBASE_FOREACH, SELECT, SEQ_collection_append_strip(), and SEQ_collection_create().

Referenced by query_time_dependent_strips_strips(), selected_strips_from_context(), and transform_snap_sequencer_data_alloc().

◆ SEQ_query_strip_effect_chain()

void SEQ_query_strip_effect_chain ( const Scene scene,
Sequence seq_reference,
ListBase seqbase,
SeqCollection collection 
)

◆ SEQ_query_unselected_strips()

SeqCollection* SEQ_query_unselected_strips ( struct ListBase seqbase)

Query all unselected strips in seqbase.

Parameters
seqbaseListBase in which strips are queried
Returns
strip collection

Definition at line 323 of file iterator.c.

References LISTBASE_FOREACH, SELECT, SEQ_collection_append_strip(), and SEQ_collection_create().

Referenced by query_overwrite_targets().