Blender V4.3
strip_connect.cc File Reference
#include "BLI_blenlib.h"
#include "DNA_sequence_types.h"
#include "SEQ_connect.hh"
#include "SEQ_time.hh"

Go to the source code of this file.

Functions

static void seq_connections_free (Sequence *seq)
 
void SEQ_connections_duplicate (ListBase *connections_dst, ListBase *connections_src)
 
bool SEQ_disconnect (Sequence *seq)
 
bool SEQ_disconnect (blender::VectorSet< Sequence * > &seq_list)
 
void SEQ_cut_one_way_connections (Sequence *seq)
 
void SEQ_connect (Sequence *seq1, Sequence *seq2)
 
void SEQ_connect (blender::VectorSet< Sequence * > &seq_list)
 
blender::VectorSet< Sequence * > SEQ_get_connected_strips (const Sequence *seq)
 
bool SEQ_is_strip_connected (const Sequence *seq)
 
bool SEQ_are_strips_connected_together (blender::VectorSet< Sequence * > &seq_list)
 

Function Documentation

◆ SEQ_are_strips_connected_together()

bool SEQ_are_strips_connected_together ( blender::VectorSet< Sequence * > & seq_list)

Check whether the list of strips are a single connection "group", that is, they are all connected to each other and there are no outside connections.

Definition at line 137 of file strip_connect.cc.

References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), SEQ_get_connected_strips(), and blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size().

Referenced by sequencer_connect_exec().

◆ SEQ_connect() [1/2]

◆ SEQ_connect() [2/2]

void SEQ_connect ( Sequence * seq1,
Sequence * seq2 )

Connect strips so that they may be selected together. Any connections the strips already have will be severed before reconnection.

Definition at line 89 of file strip_connect.cc.

References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), and SEQ_connect().

Referenced by SEQ_connect(), sequencer_add_movie_multiple_strips(), sequencer_add_movie_single_strip(), and sequencer_connect_exec().

◆ SEQ_connections_duplicate()

void SEQ_connections_duplicate ( ListBase * connections_dst,
ListBase * connections_src )

Definition at line 28 of file strip_connect.cc.

References BLI_addtail(), and LISTBASE_FOREACH.

Referenced by seq_dupli().

◆ seq_connections_free()

static void seq_connections_free ( Sequence * seq)
static

Definition at line 16 of file strip_connect.cc.

References BLI_listbase_clear(), Sequence::connections, and LISTBASE_FOREACH_MUTABLE.

Referenced by SEQ_disconnect().

◆ SEQ_cut_one_way_connections()

void SEQ_cut_one_way_connections ( Sequence * seq)

Ensure that the strip has only bidirectional connections (expected behavior).

Definition at line 67 of file strip_connect.cc.

References BLI_remlink(), Sequence::connections, LISTBASE_FOREACH, and LISTBASE_FOREACH_MUTABLE.

Referenced by SEQ_sequence_base_dupli_recursive(), and SEQ_sequence_dupli_recursive().

◆ SEQ_disconnect() [1/2]

bool SEQ_disconnect ( blender::VectorSet< Sequence * > & seq_list)

Definition at line 57 of file strip_connect.cc.

References SEQ_disconnect().

◆ SEQ_disconnect() [2/2]

bool SEQ_disconnect ( Sequence * seq)

Disconnect the strip(s) from any connections with other strips. This function also frees the allocated memory as necessary. Returns false if any of the strips were not already connected.

Definition at line 36 of file strip_connect.cc.

References BLI_listbase_is_empty(), BLI_remlink(), Sequence::connections, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, and seq_connections_free().

Referenced by SEQ_connect(), SEQ_disconnect(), seq_sequence_free_ex(), sequencer_connect_exec(), and sequencer_disconnect_exec().

◆ SEQ_get_connected_strips()

blender::VectorSet< Sequence * > SEQ_get_connected_strips ( const Sequence * seq)

Returns a list of strips that the seq is connected to. NOTE: This does not include seq itself. This list is empty if seq is not connected.

Definition at line 118 of file strip_connect.cc.

References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), Sequence::connections, and LISTBASE_FOREACH.

Referenced by select_connected_keys(), SEQ_are_strips_connected_together(), SEQ_edit_strip_split(), sequencer_meta_make_exec(), sequencer_select_connected_strips(), and sequencer_select_exec().

◆ SEQ_is_strip_connected()