Blender V4.3
strip_edit.cc File Reference
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLT_translation.hh"
#include "BKE_sound.h"
#include "strip_time.hh"
#include "SEQ_add.hh"
#include "SEQ_animation.hh"
#include "SEQ_channels.hh"
#include "SEQ_connect.hh"
#include "SEQ_edit.hh"
#include "SEQ_effects.hh"
#include "SEQ_iterator.hh"
#include "SEQ_relations.hh"
#include "SEQ_render.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_transform.hh"
#include "SEQ_utils.hh"
#include <cstring>

Go to the source code of this file.

Functions

bool SEQ_edit_sequence_swap (Scene *scene, Sequence *seq_a, Sequence *seq_b, const char **r_error_str)
 
static void seq_update_muting_recursive (ListBase *channels, ListBase *seqbasep, Sequence *metaseq, const bool mute)
 
void SEQ_edit_update_muting (Editing *ed)
 
static void sequencer_flag_users_for_removal (Scene *scene, ListBase *seqbase, Sequence *seq)
 
void SEQ_edit_flag_for_removal (Scene *scene, ListBase *seqbase, Sequence *seq)
 
void SEQ_edit_remove_flagged_sequences (Scene *scene, ListBase *seqbase)
 
bool SEQ_edit_move_strip_to_seqbase (Scene *scene, ListBase *seqbase, Sequence *seq, ListBase *dst_seqbase)
 
bool SEQ_edit_move_strip_to_meta (Scene *scene, Sequence *src_seq, Sequence *dst_seqm, const char **r_error_str)
 
static void seq_split_set_right_hold_offset (Main *bmain, Scene *scene, Sequence *seq, int timeline_frame)
 
static void seq_split_set_left_hold_offset (Main *bmain, Scene *scene, Sequence *seq, int timeline_frame)
 
static bool seq_edit_split_intersect_check (const Scene *scene, const Sequence *seq, const int timeline_frame)
 
static void seq_edit_split_handle_strip_offsets (Main *bmain, Scene *scene, Sequence *left_seq, Sequence *right_seq, const int timeline_frame, const eSeqSplitMethod method)
 
static bool seq_edit_split_effect_inputs_intersect (const Scene *scene, const Sequence *seq, const int timeline_frame)
 
static bool seq_edit_split_operation_permitted_check (const Scene *scene, blender::Span< Sequence * > strips, const int timeline_frame, const char **r_error)
 
SequenceSEQ_edit_strip_split (Main *bmain, Scene *scene, ListBase *seqbase, Sequence *seq, const int timeline_frame, const eSeqSplitMethod method, const char **r_error)
 
bool SEQ_edit_remove_gaps (Scene *scene, ListBase *seqbase, const int initial_frame, const bool remove_all_gaps)
 
void SEQ_edit_sequence_name_set (Scene *scene, Sequence *seq, const char *new_name)
 

Function Documentation

◆ SEQ_edit_flag_for_removal()

◆ SEQ_edit_move_strip_to_meta()

bool SEQ_edit_move_strip_to_meta ( Scene * scene,
Sequence * src_seq,
Sequence * dst_seqm,
const char ** r_error_str )

◆ SEQ_edit_move_strip_to_seqbase()

bool SEQ_edit_move_strip_to_seqbase ( Scene * scene,
ListBase * seqbase,
Sequence * seq,
ListBase * dst_seqbase )

Move sequence to seqbase.

Parameters
sceneScene containing the editing
seqbaseseqbase where seq is located
seqSequence to move
dst_seqbaseTarget seqbase

Definition at line 196 of file strip_edit.cc.

References BLI_addtail(), BLI_remlink(), SEQ_relations_invalidate_cache_preprocessed(), SEQ_transform_seqbase_shuffle(), and SEQ_transform_test_overlap().

Referenced by SEQ_edit_move_strip_to_meta().

◆ SEQ_edit_remove_flagged_sequences()

◆ SEQ_edit_remove_gaps()

bool SEQ_edit_remove_gaps ( Scene * scene,
ListBase * seqbase,
int initial_frame,
bool remove_all_gaps )

Find gap after initial_frame and move strips on right side to close the gap

Parameters
sceneScene in which strips are located
seqbaseListBase in which strips are located
initial_frameframe on timeline from where gaps are searched for
remove_all_gapsremove all gaps instead of one gap
Returns
true if gap is removed, otherwise false

Definition at line 497 of file strip_edit.cc.

References GapInfo::gap_exists, GapInfo::gap_length, GapInfo::gap_start_frame, seq_time_gap_info_get(), and SEQ_transform_offset_after_frame().

Referenced by sequencer_gap_remove_exec().

◆ SEQ_edit_sequence_name_set()

void SEQ_edit_sequence_name_set ( Scene * scene,
Sequence * seq,
const char * new_name )

◆ SEQ_edit_sequence_swap()

◆ seq_edit_split_effect_inputs_intersect()

static bool seq_edit_split_effect_inputs_intersect ( const Scene * scene,
const Sequence * seq,
const int timeline_frame )
static

◆ seq_edit_split_handle_strip_offsets()

static void seq_edit_split_handle_strip_offsets ( Main * bmain,
Scene * scene,
Sequence * left_seq,
Sequence * right_seq,
const int timeline_frame,
const eSeqSplitMethod method )
static

◆ seq_edit_split_intersect_check()

static bool seq_edit_split_intersect_check ( const Scene * scene,
const Sequence * seq,
const int timeline_frame )
static

◆ seq_edit_split_operation_permitted_check()

static bool seq_edit_split_operation_permitted_check ( const Scene * scene,
blender::Span< Sequence * > strips,
const int timeline_frame,
const char ** r_error )
static

◆ SEQ_edit_strip_split()

Sequence * SEQ_edit_strip_split ( Main * bmain,
Scene * scene,
ListBase * seqbase,
Sequence * seq,
int timeline_frame,
eSeqSplitMethod method,
const char ** r_error )

◆ SEQ_edit_update_muting()

void SEQ_edit_update_muting ( Editing * ed)

◆ seq_split_set_left_hold_offset()

◆ seq_split_set_right_hold_offset()

◆ seq_update_muting_recursive()

static void seq_update_muting_recursive ( ListBase * channels,
ListBase * seqbasep,
Sequence * metaseq,
const bool mute )
static

◆ sequencer_flag_users_for_removal()

static void sequencer_flag_users_for_removal ( Scene * scene,
ListBase * seqbase,
Sequence * seq )
static