Blender V4.3
sequencer_add.cc File Reference
#include <cctype>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "BKE_context.hh"
#include "BKE_global.hh"
#include "BKE_main.hh"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "IMB_imbuf.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "RNA_define.hh"
#include "RNA_enum_types.hh"
#include "RNA_prototypes.hh"
#include "SEQ_add.hh"
#include "SEQ_connect.hh"
#include "SEQ_effects.hh"
#include "SEQ_proxy.hh"
#include "SEQ_select.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_transform.hh"
#include "ED_scene.hh"
#include "ED_screen.hh"
#include "ED_sequencer.hh"
#include "UI_interface.hh"
#include "UI_view2d.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_build.hh"
#include "sequencer_intern.hh"

Go to the source code of this file.

Classes

struct  SequencerAddData
 

Macros

#define SEQPROP_STARTFRAME   (1 << 0)
 
#define SEQPROP_ENDFRAME   (1 << 1)
 
#define SEQPROP_NOPATHS   (1 << 2)
 
#define SEQPROP_NOCHAN   (1 << 3)
 
#define SEQPROP_FIT_METHOD   (1 << 4)
 
#define SEQPROP_VIEW_TRANSFORM   (1 << 5)
 
#define SEQPROP_PLAYBACK_RATE   (1 << 6)
 

Functions

static void sequencer_generic_props__internal (wmOperatorType *ot, int flag)
 
static void sequencer_generic_invoke_path__internal (bContext *C, wmOperator *op, const char *identifier)
 
static int sequencer_generic_invoke_xy_guess_channel (bContext *C, int type)
 
static void sequencer_file_drop_channel_frame_set (bContext *C, wmOperator *op, const wmEvent *event)
 
static void sequencer_generic_invoke_xy__internal (bContext *C, wmOperator *op, int flag, int type, const wmEvent *event=nullptr)
 
static void load_data_init_from_operator (SeqLoadData *load_data, bContext *C, wmOperator *op)
 
static void seq_load_apply_generic_options (bContext *C, wmOperator *op, Sequence *seq)
 
static bool seq_load_apply_generic_options_only_test_overlap (bContext *C, wmOperator *op, Sequence *seq)
 
static bool seq_effect_add_properties_poll (const bContext *, wmOperator *op, const PropertyRNA *prop)
 
static int sequencer_add_scene_strip_exec (bContext *C, wmOperator *op)
 
static void sequencer_disable_one_time_properties (bContext *C, wmOperator *op)
 
static int sequencer_add_scene_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_scene_strip_add (wmOperatorType *ot)
 
static int sequencer_add_scene_strip_new_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_scene_strip_new_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static const EnumPropertyItemstrip_new_sequencer_enum_itemf (bContext *C, PointerRNA *, PropertyRNA *, bool *r_free)
 
void SEQUENCER_OT_scene_strip_add_new (wmOperatorType *ot)
 
static int sequencer_add_movieclip_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_movieclip_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_movieclip_strip_add (wmOperatorType *ot)
 
static int sequencer_add_mask_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_mask_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_mask_strip_add (wmOperatorType *ot)
 
static void sequencer_add_init (bContext *, wmOperator *op)
 
static void sequencer_add_cancel (bContext *, wmOperator *op)
 
static bool sequencer_add_draw_check_fn (PointerRNA *, PropertyRNA *prop, void *)
 
static IMB_Proxy_Size seq_get_proxy_size_flags (bContext *C)
 
static void seq_build_proxy (bContext *C, blender::Span< Sequence * > movie_strips)
 
static void sequencer_add_movie_sync_sound_strip (Main *bmain, Scene *scene, Sequence *seq_movie, Sequence *seq_sound, SeqLoadData *load_data)
 
static void sequencer_add_movie_multiple_strips (bContext *C, wmOperator *op, SeqLoadData *load_data, blender::VectorSet< Sequence * > &r_movie_strips)
 
static bool sequencer_add_movie_single_strip (bContext *C, wmOperator *op, SeqLoadData *load_data, blender::VectorSet< Sequence * > &r_movie_strips)
 
static int sequencer_add_movie_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_movie_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static void sequencer_add_draw (bContext *, wmOperator *op)
 
void SEQUENCER_OT_movie_strip_add (wmOperatorType *ot)
 
static void sequencer_add_sound_multiple_strips (bContext *C, wmOperator *op, SeqLoadData *load_data)
 
static bool sequencer_add_sound_single_strip (bContext *C, wmOperator *op, SeqLoadData *load_data)
 
static int sequencer_add_sound_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_sound_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_sound_strip_add (wmOperatorType *ot)
 
int sequencer_image_seq_get_minmax_frame (wmOperator *op, int sfra, int *r_minframe, int *r_numdigits)
 
void sequencer_image_seq_reserve_frames (wmOperator *op, StripElem *se, int len, int minframe, int numdigits)
 
static int sequencer_add_image_strip_calculate_length (wmOperator *op, const int start_frame, int *minframe, int *numdigits)
 
static void sequencer_add_image_strip_load_files (wmOperator *op, Scene *scene, Sequence *seq, SeqLoadData *load_data, const int minframe, const int numdigits)
 
static int sequencer_add_image_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_image_strip_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
void SEQUENCER_OT_image_strip_add (wmOperatorType *ot)
 
static int sequencer_add_effect_strip_exec (bContext *C, wmOperator *op)
 
static int sequencer_add_effect_strip_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
static std::string sequencer_add_effect_strip_get_description (bContext *, wmOperatorType *, PointerRNA *ptr)
 
void SEQUENCER_OT_effect_strip_add (wmOperatorType *ot)
 

Variables

static const EnumPropertyItem scale_fit_methods []
 
static EnumPropertyItem strip_new_scene_items []
 

Macro Definition Documentation

◆ SEQPROP_ENDFRAME

◆ SEQPROP_FIT_METHOD

#define SEQPROP_FIT_METHOD   (1 << 4)

◆ SEQPROP_NOCHAN

#define SEQPROP_NOCHAN   (1 << 3)

◆ SEQPROP_NOPATHS

◆ SEQPROP_PLAYBACK_RATE

#define SEQPROP_PLAYBACK_RATE   (1 << 6)

◆ SEQPROP_STARTFRAME

◆ SEQPROP_VIEW_TRANSFORM

#define SEQPROP_VIEW_TRANSFORM   (1 << 5)

Function Documentation

◆ load_data_init_from_operator()

◆ seq_build_proxy()

◆ seq_effect_add_properties_poll()

static bool seq_effect_add_properties_poll ( const bContext * ,
wmOperator * op,
const PropertyRNA * prop )
static

◆ seq_get_proxy_size_flags()

◆ seq_load_apply_generic_options()

◆ seq_load_apply_generic_options_only_test_overlap()

◆ sequencer_add_cancel()

static void sequencer_add_cancel ( bContext * ,
wmOperator * op )
static

◆ sequencer_add_draw()

◆ sequencer_add_draw_check_fn()

static bool sequencer_add_draw_check_fn ( PointerRNA * ,
PropertyRNA * prop,
void *  )
static

Definition at line 776 of file sequencer_add.cc.

References RNA_property_identifier(), and STR_ELEM.

Referenced by sequencer_add_draw().

◆ sequencer_add_effect_strip_exec()

◆ sequencer_add_effect_strip_get_description()

◆ sequencer_add_effect_strip_invoke()

◆ sequencer_add_image_strip_calculate_length()

static int sequencer_add_image_strip_calculate_length ( wmOperator * op,
const int start_frame,
int * minframe,
int * numdigits )
static

◆ sequencer_add_image_strip_exec()

◆ sequencer_add_image_strip_invoke()

◆ sequencer_add_image_strip_load_files()

◆ sequencer_add_init()

static void sequencer_add_init ( bContext * ,
wmOperator * op )
static

◆ sequencer_add_mask_strip_exec()

◆ sequencer_add_mask_strip_invoke()

static int sequencer_add_mask_strip_invoke ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ sequencer_add_movie_multiple_strips()

◆ sequencer_add_movie_single_strip()

◆ sequencer_add_movie_strip_exec()

◆ sequencer_add_movie_strip_invoke()

◆ sequencer_add_movie_sync_sound_strip()

static void sequencer_add_movie_sync_sound_strip ( Main * bmain,
Scene * scene,
Sequence * seq_movie,
Sequence * seq_sound,
SeqLoadData * load_data )
static

◆ sequencer_add_movieclip_strip_exec()

◆ sequencer_add_movieclip_strip_invoke()

◆ sequencer_add_scene_strip_exec()

◆ sequencer_add_scene_strip_invoke()

◆ sequencer_add_scene_strip_new_exec()

◆ sequencer_add_scene_strip_new_invoke()

static int sequencer_add_scene_strip_new_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ sequencer_add_sound_multiple_strips()

◆ sequencer_add_sound_single_strip()

◆ sequencer_add_sound_strip_exec()

◆ sequencer_add_sound_strip_invoke()

◆ sequencer_disable_one_time_properties()

◆ sequencer_file_drop_channel_frame_set()

static void sequencer_file_drop_channel_frame_set ( bContext * C,
wmOperator * op,
const wmEvent * event )
static

◆ sequencer_generic_invoke_path__internal()

static void sequencer_generic_invoke_path__internal ( bContext * C,
wmOperator * op,
const char * identifier )
static

◆ sequencer_generic_invoke_xy__internal()

◆ sequencer_generic_invoke_xy_guess_channel()

static int sequencer_generic_invoke_xy_guess_channel ( bContext * C,
int type )
static

◆ sequencer_generic_props__internal()

◆ sequencer_image_seq_get_minmax_frame()

int sequencer_image_seq_get_minmax_frame ( wmOperator * op,
int sfra,
int * r_minframe,
int * r_numdigits )

◆ sequencer_image_seq_reserve_frames()

void sequencer_image_seq_reserve_frames ( wmOperator * op,
StripElem * se,
int len,
int minframe,
int numdigits )

◆ SEQUENCER_OT_effect_strip_add()

◆ SEQUENCER_OT_image_strip_add()

◆ SEQUENCER_OT_mask_strip_add()

◆ SEQUENCER_OT_movie_strip_add()

◆ SEQUENCER_OT_movieclip_strip_add()

◆ SEQUENCER_OT_scene_strip_add()

◆ SEQUENCER_OT_scene_strip_add_new()

◆ SEQUENCER_OT_sound_strip_add()

◆ strip_new_sequencer_enum_itemf()

Variable Documentation

◆ scale_fit_methods

const EnumPropertyItem scale_fit_methods[]
static
Initial value:
= {
{SEQ_SCALE_TO_FIT, "FIT", 0, "Scale to Fit", "Scale image to fit within the canvas"},
{SEQ_SCALE_TO_FILL, "FILL", 0, "Scale to Fill", "Scale image to completely fill the canvas"},
{SEQ_STRETCH_TO_FILL, "STRETCH", 0, "Stretch to Fill", "Stretch image to fill the canvas"},
{SEQ_USE_ORIGINAL_SIZE, "ORIGINAL", 0, "Use Original Size", "Keep image at its original size"},
{0, nullptr, 0, nullptr, nullptr},
}
@ SEQ_SCALE_TO_FILL
@ SEQ_STRETCH_TO_FILL
@ SEQ_USE_ORIGINAL_SIZE
@ SEQ_SCALE_TO_FIT

Definition at line 81 of file sequencer_add.cc.

Referenced by RNA_api_sequences(), rna_def_sequencer_tool_settings(), and sequencer_generic_props__internal().

◆ strip_new_scene_items

EnumPropertyItem strip_new_scene_items[]
static
Initial value:
= {
{SCE_COPY_NEW, "NEW", 0, "New", "Add new Strip with a new empty Scene with default settings"},
"EMPTY",
0,
"Copy Settings",
"Add a new Strip, with an empty scene, and copy settings from the current scene"},
"LINK_COPY",
0,
"Linked Copy",
"Add a Strip and link in the collections from the current scene (shallow copy)"},
"FULL_COPY",
0,
"Full Copy",
"Add a Strip and make a full copy of the current scene"},
{0, nullptr, 0, nullptr, nullptr},
}
@ SCE_COPY_EMPTY
Definition BKE_scene.hh:31
@ SCE_COPY_NEW
Definition BKE_scene.hh:30
@ SCE_COPY_FULL
Definition BKE_scene.hh:33
@ SCE_COPY_LINK_COLLECTION
Definition BKE_scene.hh:32

Definition at line 519 of file sequencer_add.cc.

Referenced by SEQUENCER_OT_scene_strip_add_new(), and strip_new_sequencer_enum_itemf().