Refactor: VSE: Rename Sequence to Strip

This renames the struct `Sequence` to `Strip`.

While the motivation for this partially comes from
the "Sequence Design" #131329, it seems like this
is a good refactor whether the design gets implemented
or not.

The `Sequence` represents what users see as strips in the
VSE. Many places in the code already refere to a `Sequence`
as "strip". It's the C-style "base class" of all strip types.

This also renames the python RNA type `bpy.types.Sequence`
to `bpy.types.Strip` which means that this technically breaks
the python API.

Pull Request: https://projects.blender.org/blender/blender/pulls/132179
This commit is contained in:
Falk David
2025-01-06 14:19:24 +01:00
committed by Falk David
parent fd06944d15
commit 655a17a6ab
138 changed files with 1963 additions and 2049 deletions
+1 -1
View File
@@ -2967,7 +2967,7 @@ class SEQUENCER_PT_custom_props(SequencerButtonsPanel, PropertyPanel, Panel):
'BLENDER_WORKBENCH',
}
_context_path = "active_sequence_strip"
_property_type = (bpy.types.Sequence,)
_property_type = (bpy.types.Strip,)
bl_category = "Strip"
+6 -6
View File
@@ -19,7 +19,7 @@ extern "C" {
struct Depsgraph;
struct Main;
struct Sequence;
struct Strip;
struct bSound;
struct SoundInfo;
@@ -126,13 +126,13 @@ void BKE_sound_update_fps(struct Main *bmain, struct Scene *scene);
void BKE_sound_update_scene_listener(struct Scene *scene);
void *BKE_sound_scene_add_scene_sound(
struct Scene *scene, struct Sequence *sequence, int startframe, int endframe, int frameskip);
struct Scene *scene, struct Strip *sequence, int startframe, int endframe, int frameskip);
void *BKE_sound_scene_add_scene_sound_defaults(struct Scene *scene, struct Sequence *sequence);
void *BKE_sound_scene_add_scene_sound_defaults(struct Scene *scene, struct Strip *sequence);
void *BKE_sound_add_scene_sound(
struct Scene *scene, struct Sequence *sequence, int startframe, int endframe, int frameskip);
void *BKE_sound_add_scene_sound_defaults(struct Scene *scene, struct Sequence *sequence);
struct Scene *scene, struct Strip *sequence, int startframe, int endframe, int frameskip);
void *BKE_sound_add_scene_sound_defaults(struct Scene *scene, struct Strip *sequence);
void BKE_sound_remove_scene_sound(struct Scene *scene, void *handle);
@@ -144,7 +144,7 @@ void BKE_sound_move_scene_sound(const struct Scene *scene,
int endframe,
int frameskip,
double audio_offset);
void BKE_sound_move_scene_sound_defaults(struct Scene *scene, struct Sequence *sequence);
void BKE_sound_move_scene_sound_defaults(struct Scene *scene, struct Strip *sequence);
/* Join the Sequence with the structure in Audaspace, the second parameter is a bSound */
void BKE_sound_update_scene_sound(void *handle, struct bSound *sound);
+1 -1
View File
@@ -1865,7 +1865,7 @@ static void stampdata(
}
if (use_dynamic && scene->r.stamp & R_STAMP_SEQSTRIP) {
const Sequence *seq = SEQ_get_topmost_sequence(scene, scene->r.cfra);
const Strip *seq = SEQ_get_topmost_sequence(scene, scene->r.cfra);
if (seq) {
STRNCPY(text, seq->name + 2);
+5 -5
View File
@@ -1028,7 +1028,7 @@ static char *get_rna_access(ID *id,
int adrcode,
const char actname[],
const char constname[],
Sequence *seq,
Strip *seq,
int *r_array_index)
{
DynStr *path = BLI_dynstr_new();
@@ -1405,7 +1405,7 @@ static void icu_to_fcurves(ID *id,
IpoCurve *icu,
char *actname,
char *constname,
Sequence *seq,
Strip *seq,
int muteipo)
{
AdrBit2Path *abp;
@@ -1692,7 +1692,7 @@ static void ipo_to_animato(ID *id,
Ipo *ipo,
char actname[],
char constname[],
Sequence *seq,
Strip *seq,
ListBase *animgroups,
ListBase *anim,
ListBase *drivers)
@@ -1840,7 +1840,7 @@ static void action_to_animato(
* from animation data is accomplished here too...
*/
static void ipo_to_animdata(
Main *bmain, ID *id, Ipo *ipo, char actname[], char constname[], Sequence *seq)
Main *bmain, ID *id, Ipo *ipo, char actname[], char constname[], Strip *seq)
{
AnimData *adt = BKE_animdata_from_id(id);
ListBase anim = {nullptr, nullptr};
@@ -2042,7 +2042,7 @@ struct Seq_callback_data {
AnimData *adt;
};
static bool seq_convert_callback(Sequence *seq, void *userdata)
static bool seq_convert_callback(Strip *seq, void *userdata)
{
IpoCurve *icu = static_cast<IpoCurve *>((seq->ipo) ? seq->ipo->curve.first : nullptr);
short adrcode = SEQ_FAC1;
+11 -12
View File
@@ -794,7 +794,7 @@ static void scene_foreach_layer_collection(LibraryForeachIDData *data,
}
}
static bool seq_foreach_member_id_cb(Sequence *seq, void *user_data)
static bool seq_foreach_member_id_cb(Strip *seq, void *user_data)
{
LibraryForeachIDData *data = static_cast<LibraryForeachIDData *>(user_data);
const int flag = BKE_lib_query_foreachid_process_flags_get(data);
@@ -942,7 +942,7 @@ static void scene_foreach_id(ID *id, LibraryForeachIDData *data)
}
}
static bool seq_foreach_path_callback(Sequence *seq, void *user_data)
static bool seq_foreach_path_callback(Strip *seq, void *user_data)
{
if (SEQ_HAS_PATH(seq)) {
StripElem *se = seq->data->stripdata;
@@ -1178,9 +1178,9 @@ static void direct_link_paint_helper(BlendDataReader *reader, const Scene *scene
static void link_recurs_seq(BlendDataReader *reader, ListBase *lb)
{
BLO_read_struct_list(reader, Sequence, lb);
BLO_read_struct_list(reader, Strip, lb);
LISTBASE_FOREACH_MUTABLE (Sequence *, seq, lb) {
LISTBASE_FOREACH_MUTABLE (Strip *, seq, lb) {
/* Sanity check. */
if (!SEQ_is_valid_strip_channel(seq)) {
BLI_freelinkN(lb, seq);
@@ -1298,8 +1298,8 @@ static void scene_blend_read_data(BlendDataReader *reader, ID *id)
BLO_read_struct(reader, Editing, &sce->ed);
Editing *ed = sce->ed;
ed->act_seq = static_cast<Sequence *>(
BLO_read_get_new_data_address_no_us(reader, ed->act_seq, sizeof(Sequence)));
ed->act_seq = static_cast<Strip *>(
BLO_read_get_new_data_address_no_us(reader, ed->act_seq, sizeof(Strip)));
ed->cache = nullptr;
ed->prefetch_job = nullptr;
ed->runtime.sequence_lookup = nullptr;
@@ -1323,8 +1323,8 @@ static void scene_blend_read_data(BlendDataReader *reader, ID *id)
* would be to calculate offset using sDNA from the file (NOT from the
* current Blender). Even better would be having some sort of dedicated
* map of seqbase pointers to avoid this offset magic. */
constexpr intptr_t seqbase_offset = offsetof(Sequence, seqbase);
constexpr intptr_t channels_offset = offsetof(Sequence, channels);
constexpr intptr_t seqbase_offset = offsetof(Strip, seqbase);
constexpr intptr_t channels_offset = offsetof(Strip, channels);
#if ARCH_CPU_64_BITS
static_assert(seqbase_offset == 264, "Sequence seqbase member offset cannot be changed");
static_assert(channels_offset == 280, "Sequence channels member offset cannot be changed");
@@ -1340,7 +1340,7 @@ static void scene_blend_read_data(BlendDataReader *reader, ID *id)
else {
seqbase_poin = POINTER_OFFSET(ed->seqbasep, -seqbase_offset);
seqbase_poin = BLO_read_get_new_data_address_no_us(reader, seqbase_poin, sizeof(Sequence));
seqbase_poin = BLO_read_get_new_data_address_no_us(reader, seqbase_poin, sizeof(Strip));
if (seqbase_poin) {
ed->seqbasep = (ListBase *)POINTER_OFFSET(seqbase_poin, seqbase_offset);
@@ -1371,15 +1371,14 @@ static void scene_blend_read_data(BlendDataReader *reader, ID *id)
BLO_read_struct_list(reader, MetaStack, &(ed->metastack));
LISTBASE_FOREACH (MetaStack *, ms, &ed->metastack) {
BLO_read_struct(reader, Sequence, &ms->parseq);
BLO_read_struct(reader, Strip, &ms->parseq);
if (ms->oldbasep == old_seqbasep) {
ms->oldbasep = &ed->seqbase;
}
else {
seqbase_poin = POINTER_OFFSET(ms->oldbasep, -seqbase_offset);
seqbase_poin = BLO_read_get_new_data_address_no_us(
reader, seqbase_poin, sizeof(Sequence));
seqbase_poin = BLO_read_get_new_data_address_no_us(reader, seqbase_poin, sizeof(Strip));
if (seqbase_poin) {
ms->oldbasep = (ListBase *)POINTER_OFFSET(seqbase_poin, seqbase_offset);
}
+9 -9
View File
@@ -703,7 +703,7 @@ void BKE_sound_update_scene_listener(Scene *scene)
}
void *BKE_sound_scene_add_scene_sound(
Scene *scene, Sequence *sequence, int startframe, int endframe, int frameskip)
Scene *scene, Strip *sequence, int startframe, int endframe, int frameskip)
{
sound_verify_evaluated_id(&scene->id);
if (sequence->scene && scene != sequence->scene) {
@@ -717,7 +717,7 @@ void *BKE_sound_scene_add_scene_sound(
return nullptr;
}
void *BKE_sound_scene_add_scene_sound_defaults(Scene *scene, Sequence *sequence)
void *BKE_sound_scene_add_scene_sound_defaults(Scene *scene, Strip *sequence)
{
return BKE_sound_scene_add_scene_sound(scene,
sequence,
@@ -727,7 +727,7 @@ void *BKE_sound_scene_add_scene_sound_defaults(Scene *scene, Sequence *sequence)
}
void *BKE_sound_add_scene_sound(
Scene *scene, Sequence *sequence, int startframe, int endframe, int frameskip)
Scene *scene, Strip *sequence, int startframe, int endframe, int frameskip)
{
sound_verify_evaluated_id(&scene->id);
/* Happens when sequence's sound data-block was removed. */
@@ -752,7 +752,7 @@ void *BKE_sound_add_scene_sound(
-offset_time);
}
void *BKE_sound_add_scene_sound_defaults(Scene *scene, Sequence *sequence)
void *BKE_sound_add_scene_sound_defaults(Scene *scene, Strip *sequence)
{
return BKE_sound_add_scene_sound(scene,
sequence,
@@ -789,7 +789,7 @@ void BKE_sound_move_scene_sound(const Scene *scene,
}
}
void BKE_sound_move_scene_sound_defaults(Scene *scene, Sequence *sequence)
void BKE_sound_move_scene_sound_defaults(Scene *scene, Strip *sequence)
{
sound_verify_evaluated_id(&scene->id);
if (sequence->scene_sound) {
@@ -1339,26 +1339,26 @@ void BKE_sound_unlock() {}
void BKE_sound_reset_scene_specs(Scene * /*scene*/) {}
void BKE_sound_mute_scene(Scene * /*scene*/, int /*muted*/) {}
void *BKE_sound_scene_add_scene_sound(Scene * /*scene*/,
Sequence * /*sequence*/,
Strip * /*sequence*/,
int /*startframe*/,
int /*endframe*/,
int /*frameskip*/)
{
return nullptr;
}
void *BKE_sound_scene_add_scene_sound_defaults(Scene * /*scene*/, Sequence * /*sequence*/)
void *BKE_sound_scene_add_scene_sound_defaults(Scene * /*scene*/, Strip * /*sequence*/)
{
return nullptr;
}
void *BKE_sound_add_scene_sound(Scene * /*scene*/,
Sequence * /*sequence*/,
Strip * /*sequence*/,
int /*startframe*/,
int /*endframe*/,
int /*frameskip*/)
{
return nullptr;
}
void *BKE_sound_add_scene_sound_defaults(Scene * /*scene*/, Sequence * /*sequence*/)
void *BKE_sound_add_scene_sound_defaults(Scene * /*scene*/, Strip * /*sequence*/)
{
return nullptr;
}
@@ -616,7 +616,7 @@ static void do_versions_socket_default_value_259(bNodeSocket *sock)
}
}
static bool seq_sound_proxy_update_cb(Sequence *seq, void * /*user_data*/)
static bool seq_sound_proxy_update_cb(Strip *seq, void * /*user_data*/)
{
#define SEQ_USE_PROXY_CUSTOM_DIR (1 << 19)
#define SEQ_USE_PROXY_CUSTOM_FILE (1 << 21)
@@ -629,13 +629,13 @@ static bool seq_sound_proxy_update_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_set_volume_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_volume_cb(Strip *seq, void * /*user_data*/)
{
seq->volume = 1.0f;
return true;
}
static bool seq_set_sat_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_sat_cb(Strip *seq, void * /*user_data*/)
{
if (seq->sat == 0.0f) {
seq->sat = 1.0f;
@@ -643,7 +643,7 @@ static bool seq_set_sat_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_set_pitch_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_pitch_cb(Strip *seq, void * /*user_data*/)
{
seq->pitch = 1.0f;
return true;
@@ -992,7 +992,7 @@ static void do_versions_nodetree_customnodes(bNodeTree *ntree, int /*is_group*/)
}
}
static bool seq_colorbalance_update_cb(Sequence *seq, void * /*user_data*/)
static bool seq_colorbalance_update_cb(Strip *seq, void * /*user_data*/)
{
StripData *data = seq->data;
@@ -1015,7 +1015,7 @@ static bool seq_colorbalance_update_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_set_alpha_mode_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_alpha_mode_cb(Strip *seq, void * /*user_data*/)
{
enum { SEQ_MAKE_PREMUL = (1 << 6) };
if (seq->flag & SEQ_MAKE_PREMUL) {
@@ -1027,7 +1027,7 @@ static bool seq_set_alpha_mode_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_set_wipe_angle_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_wipe_angle_cb(Strip *seq, void * /*user_data*/)
{
if (seq->type == SEQ_TYPE_WIPE) {
WipeVars *wv = static_cast<WipeVars *>(seq->effectdata);
@@ -422,7 +422,7 @@ static void do_version_bbone_easing_fcurve_fix(ID * /*id*/, FCurve *fcu)
}
}
static bool seq_update_proxy_cb(Sequence *seq, void * /*user_data*/)
static bool seq_update_proxy_cb(Strip *seq, void * /*user_data*/)
{
seq->stereo3d_format = static_cast<Stereo3dFormat *>(
MEM_callocN(sizeof(Stereo3dFormat), "Stereo Display 3d Format"));
@@ -442,7 +442,7 @@ static bool seq_update_proxy_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_update_effectdata_cb(Sequence *seq, void * /*user_data*/)
static bool seq_update_effectdata_cb(Strip *seq, void * /*user_data*/)
{
if (seq->type != SEQ_TYPE_TEXT) {
@@ -614,7 +614,7 @@ static void do_version_constraints_copy_rotation_mix_mode(ListBase *lb)
static void do_versions_seq_alloc_transform_and_crop(ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD) == 0) {
if (seq->data->transform == nullptr) {
seq->data->transform = static_cast<StripTransform *>(
@@ -767,7 +767,7 @@ static void do_version_curvemapping_walker(Main *bmain, void (*callback)(CurveMa
}
if (scene->ed != nullptr) {
LISTBASE_FOREACH (Sequence *, seq, &scene->ed->seqbase) {
LISTBASE_FOREACH (Strip *, seq, &scene->ed->seqbase) {
LISTBASE_FOREACH (SequenceModifierData *, smd, &seq->modifiers) {
const SequenceModifierTypeInfo *smti = SEQ_modifier_type_info_get(smd->type);
@@ -2995,7 +2995,7 @@ void do_versions_after_linking_280(FileData *fd, Main *bmain)
* (see #55668, involving Meta strips). */
static void do_versions_seq_unique_name_all_strips(Scene *sce, ListBase *seqbasep)
{
LISTBASE_FOREACH (Sequence *, seq, seqbasep) {
LISTBASE_FOREACH (Strip *, seq, seqbasep) {
SEQ_sequence_base_unique_name_recursive(sce, &sce->ed->seqbase, seq);
if (seq->seqbase.first != nullptr) {
do_versions_seq_unique_name_all_strips(sce, &seq->seqbase);
@@ -3009,7 +3009,7 @@ static void do_versions_seq_set_cache_defaults(Editing *ed)
ed->recycle_max_cost = 10.0f;
}
static bool seq_update_flags_cb(Sequence *seq, void * /*user_data*/)
static bool seq_update_flags_cb(Strip *seq, void * /*user_data*/)
{
seq->flag &= ~((1 << 6) | (1 << 18) | (1 << 19) | (1 << 21));
if (seq->type == SEQ_TYPE_SPEED) {
@@ -99,7 +99,7 @@ static eSpaceSeq_Proxy_RenderSize get_sequencer_render_size(Main *bmain)
return render_size;
}
static bool can_use_proxy(const Sequence *seq, int psize)
static bool can_use_proxy(const Strip *seq, int psize)
{
if (seq->data->proxy == nullptr) {
return false;
@@ -109,7 +109,7 @@ static bool can_use_proxy(const Sequence *seq, int psize)
}
/* image_size is width or height depending what RNA property is converted - X or Y. */
static void seq_convert_transform_animation(const Sequence *seq,
static void seq_convert_transform_animation(const Strip *seq,
const Scene *scene,
const char *path,
const int image_size,
@@ -144,7 +144,7 @@ static void seq_convert_transform_animation(const Sequence *seq,
}
static void seq_convert_transform_crop(const Scene *scene,
Sequence *seq,
Strip *seq,
const eSpaceSeq_Proxy_RenderSize render_size)
{
if (seq->data->transform == nullptr) {
@@ -256,7 +256,7 @@ static void seq_convert_transform_crop_lb(const Scene *scene,
const eSpaceSeq_Proxy_RenderSize render_size)
{
LISTBASE_FOREACH (Sequence *, seq, lb) {
LISTBASE_FOREACH (Strip *, seq, lb) {
if (!ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD)) {
seq_convert_transform_crop(scene, seq, render_size);
}
@@ -287,7 +287,7 @@ static void seq_convert_transform_animation_2(const Scene *scene,
}
static void seq_convert_transform_crop_2(const Scene *scene,
Sequence *seq,
Strip *seq,
const eSpaceSeq_Proxy_RenderSize render_size)
{
const StripElem *s_elem = seq->data->stripdata;
@@ -342,7 +342,7 @@ static void seq_convert_transform_crop_lb_2(const Scene *scene,
const eSpaceSeq_Proxy_RenderSize render_size)
{
LISTBASE_FOREACH (Sequence *, seq, lb) {
LISTBASE_FOREACH (Strip *, seq, lb) {
if (!ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD)) {
seq_convert_transform_crop_2(scene, seq, render_size);
}
@@ -372,7 +372,7 @@ static void seq_update_meta_disp_range(Scene *scene)
SEQ_time_right_handle_frame_set(scene, ms->parseq, ms->disp_range[1]);
/* Recalculate effects using meta strip. */
LISTBASE_FOREACH (Sequence *, seq, ms->oldbasep) {
LISTBASE_FOREACH (Strip *, seq, ms->oldbasep) {
if (seq->seq2) {
seq->start = seq->startdisp = max_ii(seq->seq1->startdisp, seq->seq2->startdisp);
seq->enddisp = min_ii(seq->seq1->enddisp, seq->seq2->enddisp);
@@ -782,7 +782,7 @@ static void do_versions_291_fcurve_handles_limit(FCurve *fcu)
static void do_versions_strip_cache_settings_recursive(const ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
seq->cache_flag = 0;
if (seq->type == SEQ_TYPE_META) {
do_versions_strip_cache_settings_recursive(&seq->seqbase);
@@ -289,7 +289,7 @@ static void do_versions_idproperty_bones_recursive(Bone *bone)
static void do_versions_idproperty_seq_recursive(ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
version_idproperty_ui_data(seq->prop);
if (seq->type == SEQ_TYPE_META) {
do_versions_idproperty_seq_recursive(&seq->seqbase);
@@ -425,7 +425,7 @@ static void do_versions_sequencer_speed_effect_recursive(Scene *scene, const Lis
#define SEQ_SPEED_INTEGRATE (1 << 0)
#define SEQ_SPEED_COMPRESS_IPO_Y (1 << 2)
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (seq->type == SEQ_TYPE_SPEED) {
SpeedControlVars *v = (SpeedControlVars *)seq->effectdata;
const char *substr = nullptr;
@@ -462,8 +462,7 @@ static void do_versions_sequencer_speed_effect_recursive(Scene *scene, const Lis
v->flags &= ~(SEQ_SPEED_INTEGRATE | SEQ_SPEED_COMPRESS_IPO_Y);
if (substr || globalSpeed != 1.0f) {
FCurve *fcu = id_data_find_fcurve(
&scene->id, seq, &RNA_Sequence, "speed_factor", 0, nullptr);
FCurve *fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Strip, "speed_factor", 0, nullptr);
if (fcu) {
if (globalSpeed != 1.0f) {
for (int i = 0; i < fcu->totvert; i++) {
@@ -490,13 +489,13 @@ static void do_versions_sequencer_speed_effect_recursive(Scene *scene, const Lis
#undef SEQ_SPEED_COMPRESS_IPO_Y
}
static bool do_versions_sequencer_color_tags(Sequence *seq, void * /*user_data*/)
static bool do_versions_sequencer_color_tags(Strip *seq, void * /*user_data*/)
{
seq->color_tag = SEQUENCE_COLOR_NONE;
return true;
}
static bool do_versions_sequencer_color_balance_sop(Sequence *seq, void * /*user_data*/)
static bool do_versions_sequencer_color_balance_sop(Strip *seq, void * /*user_data*/)
{
LISTBASE_FOREACH (SequenceModifierData *, smd, &seq->modifiers) {
if (smd->type == seqModifierType_ColorBalance) {
@@ -631,7 +630,7 @@ static bNodeTree *add_realize_node_tree(Main *bmain)
return node_tree;
}
static void seq_speed_factor_fix_rna_path(Sequence *seq, ListBase *fcurves)
static void seq_speed_factor_fix_rna_path(Strip *seq, ListBase *fcurves)
{
char name_esc[(sizeof(seq->name) - 2) * 2];
BLI_str_escape(name_esc, seq->name + 2, sizeof(name_esc));
@@ -644,7 +643,7 @@ static void seq_speed_factor_fix_rna_path(Sequence *seq, ListBase *fcurves)
MEM_freeN(path);
}
static bool version_fix_seq_meta_range(Sequence *seq, void *user_data)
static bool version_fix_seq_meta_range(Strip *seq, void *user_data)
{
Scene *scene = (Scene *)user_data;
if (seq->type == SEQ_TYPE_META) {
@@ -653,7 +652,7 @@ static bool version_fix_seq_meta_range(Sequence *seq, void *user_data)
return true;
}
static bool seq_speed_factor_set(Sequence *seq, void *user_data)
static bool seq_speed_factor_set(Strip *seq, void *user_data)
{
const Scene *scene = static_cast<const Scene *>(user_data);
if (seq->type == SEQ_TYPE_SOUND_RAM) {
@@ -1503,7 +1502,7 @@ static bNodeSocket *do_version_replace_float_size_with_vector(bNodeTree *ntree,
return new_socket;
}
static bool seq_transform_origin_set(Sequence *seq, void * /*user_data*/)
static bool seq_transform_origin_set(Strip *seq, void * /*user_data*/)
{
StripTransform *transform = seq->data->transform;
if (seq->data->transform != nullptr) {
@@ -1512,7 +1511,7 @@ static bool seq_transform_origin_set(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_transform_filter_set(Sequence *seq, void * /*user_data*/)
static bool seq_transform_filter_set(Strip *seq, void * /*user_data*/)
{
StripTransform *transform = seq->data->transform;
if (seq->data->transform != nullptr) {
@@ -1521,7 +1520,7 @@ static bool seq_transform_filter_set(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_meta_channels_ensure(Sequence *seq, void * /*user_data*/)
static bool seq_meta_channels_ensure(Strip *seq, void * /*user_data*/)
{
if (seq->type == SEQ_TYPE_META) {
SEQ_channels_ensure(&seq->channels);
@@ -1750,7 +1749,7 @@ static void version_node_tree_socket_id_delim(bNodeTree *ntree)
}
}
static bool version_merge_still_offsets(Sequence *seq, void * /*user_data*/)
static bool version_merge_still_offsets(Strip *seq, void * /*user_data*/)
{
seq->startofs -= seq->startstill;
seq->endofs -= seq->endstill;
@@ -1759,13 +1758,13 @@ static bool version_merge_still_offsets(Sequence *seq, void * /*user_data*/)
return true;
}
static bool version_fix_delete_flag(Sequence *seq, void * /*user_data*/)
static bool version_fix_delete_flag(Strip *seq, void * /*user_data*/)
{
seq->flag &= ~SEQ_FLAG_DELETE;
return true;
}
static bool version_set_seq_single_frame_content(Sequence *seq, void * /*user_data*/)
static bool version_set_seq_single_frame_content(Strip *seq, void * /*user_data*/)
{
if ((seq->len == 1) &&
(seq->type == SEQ_TYPE_IMAGE ||
@@ -1776,7 +1775,7 @@ static bool version_set_seq_single_frame_content(Sequence *seq, void * /*user_da
return true;
}
static bool version_seq_fix_broken_sound_strips(Sequence *seq, void * /*user_data*/)
static bool version_seq_fix_broken_sound_strips(Strip *seq, void * /*user_data*/)
{
if (seq->type != SEQ_TYPE_SOUND_RAM || seq->speed_factor != 0.0f) {
return true;
@@ -1019,7 +1019,7 @@ static void version_nla_tweakmode_incomplete(Main *bmain)
}
}
static bool versioning_convert_strip_speed_factor(Sequence *seq, void *user_data)
static bool versioning_convert_strip_speed_factor(Strip *seq, void *user_data)
{
const Scene *scene = static_cast<Scene *>(user_data);
const float speed_factor = seq->speed_factor;
@@ -1042,7 +1042,7 @@ static bool versioning_convert_strip_speed_factor(Sequence *seq, void *user_data
return true;
}
static bool versioning_clear_strip_unused_flag(Sequence *seq, void * /*user_data*/)
static bool versioning_clear_strip_unused_flag(Strip *seq, void * /*user_data*/)
{
seq->flag &= ~(1 << 6);
return true;
@@ -2973,7 +2973,7 @@ static void fix_geometry_nodes_object_info_scale(bNodeTree &ntree)
}
}
static bool seq_filter_bilinear_to_auto(Sequence *seq, void * /*user_data*/)
static bool seq_filter_bilinear_to_auto(Strip *seq, void * /*user_data*/)
{
StripTransform *transform = seq->data->transform;
if (transform != nullptr && transform->filter == SEQ_TRANSFORM_FILTER_BILINEAR) {
@@ -3047,7 +3047,7 @@ static void hue_correct_set_wrapping(CurveMapping *curve_mapping)
curve_mapping->curr.ymax = 1.0f;
}
static bool seq_hue_correct_set_wrapping(Sequence *seq, void * /*user_data*/)
static bool seq_hue_correct_set_wrapping(Strip *seq, void * /*user_data*/)
{
LISTBASE_FOREACH (SequenceModifierData *, smd, &seq->modifiers) {
if (smd->type == seqModifierType_HueCorrect) {
@@ -3067,7 +3067,7 @@ static void versioning_update_timecode(short int *tc)
}
}
static bool seq_proxies_timecode_update(Sequence *seq, void * /*user_data*/)
static bool seq_proxies_timecode_update(Strip *seq, void * /*user_data*/)
{
if (seq->data == nullptr || seq->data->proxy == nullptr) {
return true;
@@ -3077,7 +3077,7 @@ static bool seq_proxies_timecode_update(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_text_data_update(Sequence *seq, void * /*user_data*/)
static bool seq_text_data_update(Strip *seq, void * /*user_data*/)
{
if (seq->type != SEQ_TYPE_TEXT || seq->effectdata == nullptr) {
return true;
@@ -3252,7 +3252,7 @@ static void hide_simulation_node_skip_socket_value(Main &bmain)
}
}
static bool versioning_convert_seq_text_anchor(Sequence *seq, void * /*user_data*/)
static bool versioning_convert_seq_text_anchor(Strip *seq, void * /*user_data*/)
{
if (seq->type != SEQ_TYPE_TEXT || seq->effectdata == nullptr) {
return true;
@@ -462,7 +462,7 @@ void blo_do_version_old_trackto_to_constraints(Object *ob)
ob->track = nullptr;
}
static bool seq_set_alpha_mode_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_alpha_mode_cb(Strip *seq, void * /*user_data*/)
{
if (ELEM(seq->type, SEQ_TYPE_IMAGE, SEQ_TYPE_MOVIE)) {
seq->alpha_mode = SEQ_ALPHA_STRAIGHT;
@@ -470,7 +470,7 @@ static bool seq_set_alpha_mode_cb(Sequence *seq, void * /*user_data*/)
return true;
}
static bool seq_set_blend_mode_cb(Sequence *seq, void * /*user_data*/)
static bool seq_set_blend_mode_cb(Strip *seq, void * /*user_data*/)
{
if (seq->blend_mode == 0) {
seq->blend_opacity = 100.0f;
@@ -2607,7 +2607,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *bmain)
while (sce) {
ed = sce->ed;
if (ed) {
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (seq->data && seq->data->proxy) {
seq->data->proxy->quality = 90;
}
@@ -2236,7 +2236,7 @@ void DepsgraphNodeBuilder::build_vfont(VFont *vfont)
&vfont->id, NodeType::GENERIC_DATABLOCK, OperationCode::GENERIC_DATABLOCK_UPDATE);
}
static bool seq_node_build_cb(Sequence *seq, void *user_data)
static bool seq_node_build_cb(Strip *seq, void *user_data)
{
DepsgraphNodeBuilder *nb = (DepsgraphNodeBuilder *)user_data;
nb->build_idproperties(seq->prop);
@@ -3349,7 +3349,7 @@ struct Seq_build_prop_cb_data {
bool has_audio_strips;
};
static bool seq_build_prop_cb(Sequence *seq, void *user_data)
static bool seq_build_prop_cb(Strip *seq, void *user_data)
{
Seq_build_prop_cb_data *cd = (Seq_build_prop_cb_data *)user_data;
@@ -350,7 +350,7 @@ RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr,
node_identifier.type = NodeType::GEOMETRY;
return node_identifier;
}
else if (RNA_struct_is_a(ptr->type, &RNA_Sequence)) {
else if (RNA_struct_is_a(ptr->type, &RNA_Strip)) {
/* Sequencer strip */
node_identifier.type = NodeType::SEQUENCER;
return node_identifier;
@@ -23,7 +23,7 @@ void SequenceBackup::reset()
BLI_listbase_clear(&anims);
}
void SequenceBackup::init_from_sequence(Sequence *sequence)
void SequenceBackup::init_from_sequence(Strip *sequence)
{
scene_sound = sequence->scene_sound;
anims = sequence->anims;
@@ -32,7 +32,7 @@ void SequenceBackup::init_from_sequence(Sequence *sequence)
BLI_listbase_clear(&sequence->anims);
}
void SequenceBackup::restore_to_sequence(Sequence *sequence)
void SequenceBackup::restore_to_sequence(Strip *sequence)
{
sequence->scene_sound = scene_sound;
sequence->anims = anims;
@@ -10,7 +10,7 @@
#include "BLI_listbase.h"
struct Sequence;
struct Strip;
namespace blender::deg {
@@ -23,8 +23,8 @@ class SequenceBackup {
void reset();
void init_from_sequence(Sequence *sequence);
void restore_to_sequence(Sequence *sequence);
void init_from_sequence(Strip *sequence);
void restore_to_sequence(Strip *sequence);
bool isEmpty() const;
@@ -21,7 +21,7 @@ namespace blender::deg {
SequencerBackup::SequencerBackup(const Depsgraph *depsgraph) : depsgraph(depsgraph) {}
static bool seq_init_cb(Sequence *seq, void *user_data)
static bool seq_init_cb(Strip *seq, void *user_data)
{
SequencerBackup *sb = (SequencerBackup *)user_data;
SequenceBackup sequence_backup(sb->depsgraph);
@@ -41,7 +41,7 @@ void SequencerBackup::init_from_scene(Scene *scene)
}
}
static bool seq_restore_cb(Sequence *seq, void *user_data)
static bool seq_restore_cb(Strip *seq, void *user_data)
{
SequencerBackup *sb = (SequencerBackup *)user_data;
const SessionUID &session_uid = seq->runtime.session_uid;
@@ -182,7 +182,7 @@ static void animchan_sync_fcurve_scene(bAnimListElem *ale)
BLI_assert(GS(owner_id->name) == ID_SCE);
Scene *scene = (Scene *)owner_id;
FCurve *fcu = (FCurve *)ale->data;
Sequence *seq = nullptr;
Strip *seq = nullptr;
/* Only affect if F-Curve involves sequence_editor.sequences. */
char seq_name[sizeof(seq->name)];
@@ -183,7 +183,7 @@ static bool actedit_get_context(bAnimContext *ac, SpaceAction *saction)
{
/* TODO: other methods to get the mask. */
#if 0
Sequence *seq = SEQ_select_active_get(ac->scene);
Strip *seq = SEQ_select_active_get(ac->scene);
MovieClip *clip = ac->scene->clip;
struct Mask *mask = seq ? seq->mask : nullptr;
#endif
@@ -1009,7 +1009,7 @@ static bool skip_fcurve_selected_data(bAnimContext *ac,
}
else if (GS(owner_id->name) == ID_SCE) {
Scene *scene = (Scene *)owner_id;
Sequence *seq = nullptr;
Strip *seq = nullptr;
char seq_name[sizeof(seq->name)];
/* Only consider if F-Curve involves `sequence_editor.sequences`. */
+1 -1
View File
@@ -118,7 +118,7 @@ static int seq_frame_apply_snap(bContext *C, Scene *scene, const int timeline_fr
int best_frame = 0;
int best_distance = MAXFRAME;
for (Sequence *seq : SEQ_query_all_strips(seqbase)) {
for (Strip *seq : SEQ_query_all_strips(seqbase)) {
seq_frame_snap_update_best(
SEQ_time_left_handle_frame_get(scene, seq), timeline_frame, &best_frame, &best_distance);
seq_frame_snap_update_best(
@@ -11,7 +11,7 @@
#include "BLI_vector_set.hh"
struct Scene;
struct Sequence;
struct Strip;
struct SpaceSeq;
struct bContext;
struct View2D;
@@ -24,12 +24,12 @@ enum eSeqHandle {
};
struct StripSelection {
Sequence *seq1 = nullptr;
Sequence *seq2 = nullptr;
Strip *seq1 = nullptr;
Strip *seq2 = nullptr;
eSeqHandle handle = SEQ_HANDLE_NONE;
};
void ED_sequencer_select_sequence_single(Scene *scene, Sequence *seq, bool deselect_all);
void ED_sequencer_select_sequence_single(Scene *scene, Strip *seq, bool deselect_all);
/**
* Iterates over a scene's sequences and deselects all of them.
*
@@ -58,7 +58,7 @@ bool ED_space_sequencer_has_playback_animation(const SpaceSeq *sseq, const Scene
void ED_operatormacros_sequencer();
Sequence *ED_sequencer_special_preview_get();
Strip *ED_sequencer_special_preview_get();
void ED_sequencer_special_preview_set(bContext *C, const int mval[2]);
void ED_sequencer_special_preview_clear();
bool sequencer_retiming_mode_is_active(const bContext *C);
@@ -68,11 +68,11 @@ bool sequencer_retiming_mode_is_active(const bContext *C);
* frame.
*
* \param C: context
* \return collection of strips (`Sequence`)
* \return collection of strips (`Strip`)
*/
blender::VectorSet<Sequence *> ED_sequencer_selected_strips_from_context(bContext *C);
blender::VectorSet<Strip *> ED_sequencer_selected_strips_from_context(bContext *C);
StripSelection ED_sequencer_pick_strip_and_handle(const struct Scene *scene,
const View2D *v2d,
float mouse_co[2]);
bool ED_sequencer_can_select_handle(const Scene *scene, const Sequence *seq, const View2D *v2d);
bool ED_sequencer_handle_is_selected(const Sequence *seq, eSeqHandle handle);
bool ED_sequencer_can_select_handle(const Scene *scene, const Strip *seq, const View2D *v2d);
bool ED_sequencer_handle_is_selected(const Strip *seq, eSeqHandle handle);
@@ -1171,7 +1171,7 @@ bool UI_context_copy_to_selected_list(bContext *C,
*r_lb = list_of_things;
}
else if (RNA_struct_is_a(ptr->type, &RNA_Sequence)) {
else if (RNA_struct_is_a(ptr->type, &RNA_Strip)) {
/* Special case when we do this for 'Sequence.lock'.
* (if the sequence is locked, it won't be in "selected_editable_sequences"). */
const char *prop_id = RNA_property_identifier(prop);
@@ -1298,9 +1298,9 @@ bool UI_context_copy_to_selected_list(bContext *C,
}
else if (GS(id->name) == ID_SCE) {
/* Sequencer's ID is scene :/ */
/* Try to recursively find an RNA_Sequence ancestor,
/* Try to recursively find an RNA_Strip ancestor,
* to handle situations like #41062... */
*r_path = RNA_path_resolve_from_type_to_property(ptr, prop, &RNA_Sequence);
*r_path = RNA_path_resolve_from_type_to_property(ptr, prop, &RNA_Strip);
if (r_path->has_value()) {
/* Special case when we do this for 'Sequence.lock'.
* (if the sequence is locked, it won't be in "selected_editable_sequences"). */
+3 -3
View File
@@ -71,7 +71,7 @@ Scene *ED_scene_sequencer_add(Main *bmain,
eSceneCopyMethod method,
const bool assign_strip)
{
Sequence *seq = nullptr;
Strip *seq = nullptr;
Scene *scene_active = CTX_data_scene(C);
Scene *scene_strip = nullptr;
/* Sequencer need to use as base the scene defined in the strip, not the main scene. */
@@ -311,7 +311,7 @@ static int scene_new_sequencer_exec(bContext *C, wmOperator *op)
static bool scene_new_sequencer_poll(bContext *C)
{
Scene *scene = CTX_data_scene(C);
const Sequence *seq = SEQ_select_active_get(scene);
const Strip *seq = SEQ_select_active_get(scene);
return (seq && (seq->type == SEQ_TYPE_SCENE));
}
@@ -334,7 +334,7 @@ static const EnumPropertyItem *scene_new_sequencer_enum_itemf(bContext *C,
}
else {
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq && (seq->type == SEQ_TYPE_SCENE) && (seq->scene != nullptr)) {
has_scene_or_no_context = true;
}
@@ -673,9 +673,9 @@ static eContextResult screen_ctx_active_sequence_strip(const bContext *C,
{
wmWindow *win = CTX_wm_window(C);
Scene *scene = WM_window_get_active_scene(win);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq) {
CTX_data_pointer_set(result, &scene->id, &RNA_Sequence, seq);
CTX_data_pointer_set(result, &scene->id, &RNA_Strip, seq);
return CTX_RESULT_OK;
}
return CTX_RESULT_NO_DATA;
@@ -686,8 +686,8 @@ static eContextResult screen_ctx_sequences(const bContext *C, bContextDataResult
Scene *scene = WM_window_get_active_scene(win);
Editing *ed = SEQ_editing_get(scene);
if (ed) {
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
CTX_data_list_add(result, &scene->id, &RNA_Strip, seq);
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return CTX_RESULT_OK;
@@ -700,9 +700,9 @@ static eContextResult screen_ctx_selected_sequences(const bContext *C, bContextD
Scene *scene = WM_window_get_active_scene(win);
Editing *ed = SEQ_editing_get(scene);
if (ed) {
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
CTX_data_list_add(result, &scene->id, &RNA_Strip, seq);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
@@ -721,9 +721,9 @@ static eContextResult screen_ctx_selected_editable_sequences(const bContext *C,
}
ListBase *channels = SEQ_channels_displayed_get(ed);
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT && !SEQ_transform_is_locked(channels, seq)) {
CTX_data_list_add(result, &scene->id, &RNA_Sequence, seq);
CTX_data_list_add(result, &scene->id, &RNA_Strip, seq);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+4 -4
View File
@@ -192,13 +192,13 @@ static void SOUND_OT_open_mono(wmOperatorType *ot)
static void sound_update_animation_flags(Scene *scene);
static bool sound_update_animation_flags_fn(Sequence *seq, void *user_data)
static bool sound_update_animation_flags_fn(Strip *seq, void *user_data)
{
const FCurve *fcu;
Scene *scene = (Scene *)user_data;
bool driven;
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "volume", 0, &driven);
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Strip, "volume", 0, &driven);
if (fcu || driven) {
seq->flag |= SEQ_AUDIO_VOLUME_ANIMATED;
}
@@ -206,7 +206,7 @@ static bool sound_update_animation_flags_fn(Sequence *seq, void *user_data)
seq->flag &= ~SEQ_AUDIO_VOLUME_ANIMATED;
}
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pitch", 0, &driven);
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Strip, "pitch", 0, &driven);
if (fcu || driven) {
seq->flag |= SEQ_AUDIO_PITCH_ANIMATED;
}
@@ -214,7 +214,7 @@ static bool sound_update_animation_flags_fn(Sequence *seq, void *user_data)
seq->flag &= ~SEQ_AUDIO_PITCH_ANIMATED;
}
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, "pan", 0, &driven);
fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Strip, "pan", 0, &driven);
if (fcu || driven) {
seq->flag |= SEQ_AUDIO_PAN_ANIMATED;
}
@@ -736,7 +736,7 @@ static void tree_element_sequence_activate(bContext *C,
const eOLSetState set)
{
const TreeElementSequence *te_seq = tree_element_cast<TreeElementSequence>(te);
Sequence *seq = &te_seq->get_sequence();
Strip *seq = &te_seq->get_sequence();
Editing *ed = SEQ_editing_get(scene);
if (BLI_findindex(ed->seqbasep, seq) != -1) {
@@ -764,7 +764,7 @@ static void tree_element_sequence_dup_activate(Scene *scene, TreeElement * /*te*
#if 0
select_single_seq(seq, 1);
#endif
Sequence *p = static_cast<Sequence *>(ed->seqbasep->first);
Strip *p = static_cast<Strip *>(ed->seqbasep->first);
while (p) {
if ((!p->data) || (!p->data->stripdata) || (p->data->stripdata->filename[0] == '\0')) {
p = p->next;
@@ -1023,7 +1023,7 @@ static eOLDrawState tree_element_bone_collection_state_get(const TreeElement *te
static eOLDrawState tree_element_sequence_state_get(const Scene *scene, const TreeElement *te)
{
const TreeElementSequence *te_seq = tree_element_cast<TreeElementSequence>(te);
const Sequence *seq = &te_seq->get_sequence();
const Strip *seq = &te_seq->get_sequence();
const Editing *ed = scene->ed;
if (ed && ed->act_seq == seq && seq->flag & SELECT) {
@@ -1036,7 +1036,7 @@ static eOLDrawState tree_element_sequence_dup_state_get(const TreeElement *te)
{
const TreeElementSequenceStripDuplicate *te_dup =
tree_element_cast<TreeElementSequenceStripDuplicate>(te);
const Sequence *seq = &te_dup->get_sequence();
const Strip *seq = &te_dup->get_sequence();
if (seq->flag & SELECT) {
return OL_DRAWSEL_NORMAL;
}
@@ -255,7 +255,7 @@ static void outliner_select_sync_to_sequence(Scene *scene, const TreeElement *te
const TreeStoreElem *tselem = TREESTORE(te);
const TreeElementSequence *te_sequence = tree_element_cast<TreeElementSequence>(te);
Sequence *seq = &te_sequence->get_sequence();
Strip *seq = &te_sequence->get_sequence();
if (tselem->flag & TSE_ACTIVE) {
SEQ_select_active_set(scene, seq);
@@ -424,12 +424,12 @@ static void outliner_select_sync_from_pose_bone(bPoseChannel *pchan_active,
}
}
static void outliner_select_sync_from_sequence(Sequence *sequence_active, const TreeElement *te)
static void outliner_select_sync_from_sequence(Strip *sequence_active, const TreeElement *te)
{
TreeStoreElem *tselem = TREESTORE(te);
const TreeElementSequence *te_sequence = tree_element_cast<TreeElementSequence>(te);
const Sequence *seq = &te_sequence->get_sequence();
const Strip *seq = &te_sequence->get_sequence();
if (seq == sequence_active) {
tselem->flag |= TSE_ACTIVE;
@@ -454,7 +454,7 @@ struct SyncSelectActiveData {
Object *object;
EditBone *edit_bone;
bPoseChannel *pose_channel;
Sequence *sequence;
Strip *sequence;
};
/** Sync select and active flags from active view layer, bones, and sequences to the outliner. */
@@ -2150,7 +2150,7 @@ static void ebone_fn(int event, TreeElement *te, TreeStoreElem * /*tselem*/, voi
static void sequence_fn(int event, TreeElement *te, TreeStoreElem * /*tselem*/, void *scene_ptr)
{
TreeElementSequence *te_seq = tree_element_cast<TreeElementSequence>(te);
Sequence *seq = &te_seq->get_sequence();
Strip *seq = &te_seq->get_sequence();
Scene *scene = (Scene *)scene_ptr;
Editing *ed = SEQ_editing_get(scene);
if (BLI_findindex(ed->seqbasep, seq) != -1) {
@@ -30,7 +30,7 @@ struct Library;
struct ListBase;
struct Main;
struct Scene;
struct Sequence;
struct Strip;
struct SpaceOutliner;
struct ViewLayer;
@@ -237,8 +237,8 @@ class TreeDisplaySequencer final : public AbstractTreeDisplay {
/**
* Helped function to put duplicate sequence in the same tree.
*/
SequenceAddOp need_add_seq_dup(Sequence *seq) const;
void add_seq_dup(Sequence *seq, TreeElement *te, short index);
SequenceAddOp need_add_seq_dup(Strip *seq) const;
void add_seq_dup(Strip *seq, TreeElement *te, short index);
};
/* -------------------------------------------------------------------- */
@@ -38,7 +38,7 @@ ListBase TreeDisplaySequencer::build_tree(const TreeSourceData &source_data)
return tree;
}
for (Sequence *seq : List<Sequence>(ed->seqbasep)) {
for (Strip *seq : List<Strip>(ed->seqbasep)) {
SequenceAddOp op = need_add_seq_dup(seq);
if (op == SEQUENCE_DUPLICATE_NONE) {
add_element(&tree, nullptr, seq, nullptr, TSE_SEQUENCE, 0);
@@ -52,7 +52,7 @@ ListBase TreeDisplaySequencer::build_tree(const TreeSourceData &source_data)
return tree;
}
SequenceAddOp TreeDisplaySequencer::need_add_seq_dup(Sequence *seq) const
SequenceAddOp TreeDisplaySequencer::need_add_seq_dup(Strip *seq) const
{
if ((!seq->data) || (!seq->data->stripdata)) {
return SEQUENCE_DUPLICATE_NONE;
@@ -62,7 +62,7 @@ SequenceAddOp TreeDisplaySequencer::need_add_seq_dup(Sequence *seq) const
* First check backward, if we found a duplicate
* sequence before this, don't need it, just return.
*/
Sequence *p = seq->prev;
Strip *p = seq->prev;
while (p) {
if ((!p->data) || (!p->data->stripdata)) {
p = p->prev;
@@ -91,9 +91,9 @@ SequenceAddOp TreeDisplaySequencer::need_add_seq_dup(Sequence *seq) const
return SEQUENCE_DUPLICATE_NONE;
}
void TreeDisplaySequencer::add_seq_dup(Sequence *seq, TreeElement *te, short index)
void TreeDisplaySequencer::add_seq_dup(Strip *seq, TreeElement *te, short index)
{
Sequence *p = seq;
Strip *p = seq;
while (p) {
if ((!p->data) || (!p->data->stripdata) || (p->data->stripdata->filename[0] == '\0')) {
p = p->next;
@@ -127,14 +127,13 @@ std::unique_ptr<AbstractTreeElement> AbstractTreeElement::create_from_type(const
return std::make_unique<TreeElementRNAArrayElement>(
legacy_te, *static_cast<PointerRNA *>(create_data), legacy_te.index);
case TSE_SEQUENCE:
return std::make_unique<TreeElementSequence>(legacy_te,
*static_cast<Sequence *>(create_data));
return std::make_unique<TreeElementSequence>(legacy_te, *static_cast<Strip *>(create_data));
case TSE_SEQ_STRIP:
return std::make_unique<TreeElementSequenceStrip>(legacy_te,
*static_cast<StripData *>(create_data));
case TSE_SEQUENCE_DUP:
return std::make_unique<TreeElementSequenceStripDuplicate>(
legacy_te, *static_cast<Sequence *>(create_data));
legacy_te, *static_cast<Strip *>(create_data));
case TSE_BONE:
return std::make_unique<TreeElementBone>(
legacy_te, *owner_id, *static_cast<Bone *>(create_data));
@@ -18,7 +18,7 @@
namespace blender::ed::outliner {
TreeElementSequence::TreeElementSequence(TreeElement &legacy_te, Sequence &sequence)
TreeElementSequence::TreeElementSequence(TreeElement &legacy_te, Strip &sequence)
: AbstractTreeElement(legacy_te), sequence_(sequence)
{
BLI_assert(legacy_te.store_elem->type == TSE_SEQUENCE);
@@ -39,7 +39,7 @@ void TreeElementSequence::expand(SpaceOutliner & /*space_outliner*/) const
*/
if (sequence_.type == SEQ_TYPE_META) {
LISTBASE_FOREACH (Sequence *, child, &sequence_.seqbase) {
LISTBASE_FOREACH (Strip *, child, &sequence_.seqbase) {
add_element(&legacy_te_.subtree, nullptr, child, &legacy_te_, TSE_SEQUENCE, 0);
}
}
@@ -48,7 +48,7 @@ void TreeElementSequence::expand(SpaceOutliner & /*space_outliner*/) const
}
}
Sequence &TreeElementSequence::get_sequence() const
Strip &TreeElementSequence::get_sequence() const
{
return sequence_;
}
@@ -78,14 +78,14 @@ TreeElementSequenceStrip::TreeElementSequenceStrip(TreeElement &legacy_te, Strip
/* Strip Duplicate */
TreeElementSequenceStripDuplicate::TreeElementSequenceStripDuplicate(TreeElement &legacy_te,
Sequence &sequence)
Strip &sequence)
: AbstractTreeElement(legacy_te), sequence_(sequence)
{
BLI_assert(legacy_te.store_elem->type == TSE_SEQUENCE_DUP);
legacy_te_.name = sequence.data->stripdata->filename;
}
Sequence &TreeElementSequenceStripDuplicate::get_sequence() const
Strip &TreeElementSequenceStripDuplicate::get_sequence() const
{
return sequence_;
}
@@ -12,21 +12,21 @@
#include "tree_element.hh"
struct Sequence;
struct Strip;
struct StripData;
namespace blender::ed::outliner {
class TreeElementSequence : public AbstractTreeElement {
Sequence &sequence_;
Strip &sequence_;
public:
TreeElementSequence(TreeElement &legacy_te, Sequence &sequence);
TreeElementSequence(TreeElement &legacy_te, Strip &sequence);
bool expand_poll(const SpaceOutliner &) const override;
void expand(SpaceOutliner &) const override;
Sequence &get_sequence() const;
Strip &get_sequence() const;
SequenceType get_sequence_type() const;
};
@@ -40,12 +40,12 @@ class TreeElementSequenceStrip : public AbstractTreeElement {
/* -------------------------------------------------------------------- */
class TreeElementSequenceStripDuplicate : public AbstractTreeElement {
Sequence &sequence_;
Strip &sequence_;
public:
TreeElementSequenceStripDuplicate(TreeElement &legacy_te, Sequence &sequence);
TreeElementSequenceStripDuplicate(TreeElement &legacy_te, Strip &sequence);
Sequence &get_sequence() const;
Strip &get_sequence() const;
};
} // namespace blender::ed::outliner
@@ -173,7 +173,7 @@ static void sequencer_generic_invoke_path__internal(bContext *C,
{
if (RNA_struct_find_property(op->ptr, identifier)) {
Scene *scene = CTX_data_scene(C);
Sequence *last_seq = SEQ_select_active_get(scene);
Strip *last_seq = SEQ_select_active_get(scene);
if (last_seq && last_seq->data && SEQ_HAS_PATH(last_seq)) {
Main *bmain = CTX_data_main(C);
char dirpath[FILE_MAX];
@@ -186,7 +186,7 @@ static void sequencer_generic_invoke_path__internal(bContext *C,
static int sequencer_generic_invoke_xy_guess_channel(bContext *C, int type)
{
Sequence *tgt = nullptr;
Strip *tgt = nullptr;
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_ensure(scene);
int timeline_frame = int(scene->r.cfra);
@@ -196,7 +196,7 @@ static int sequencer_generic_invoke_xy_guess_channel(bContext *C, int type)
return 1;
}
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
const int strip_end = SEQ_time_right_handle_frame_get(scene, seq);
if (ELEM(type, -1, seq->type) && (strip_end <= timeline_frame) &&
(timeline_frame - strip_end < proximity))
@@ -372,7 +372,7 @@ static bool load_data_init_from_operator(SeqLoadData *load_data, bContext *C, wm
return true;
}
static void seq_load_apply_generic_options(bContext *C, wmOperator *op, Sequence *seq)
static void seq_load_apply_generic_options(bContext *C, wmOperator *op, Strip *seq)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
@@ -395,7 +395,7 @@ static void seq_load_apply_generic_options(bContext *C, wmOperator *op, Sequence
if (RNA_boolean_get(op->ptr, "overlap_shuffle_override")) {
/* Use set overlap_mode to fix overlaps. */
blender::VectorSet<Sequence *> strip_col;
blender::VectorSet<Strip *> strip_col;
strip_col.add(seq);
ScrArea *area = CTX_wm_area(C);
@@ -412,7 +412,7 @@ static void seq_load_apply_generic_options(bContext *C, wmOperator *op, Sequence
/* In this alternative version we only check for overlap, but do not do anything about them. */
static bool seq_load_apply_generic_options_only_test_overlap(bContext *C,
wmOperator *op,
Sequence *seq)
Strip *seq)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
@@ -470,7 +470,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
load_data_init_from_operator(&load_data, C, op);
load_data.scene = sce_seq;
Sequence *seq = SEQ_add_scene_strip(scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_scene_strip(scene, ed->seqbasep, &load_data);
seq_load_apply_generic_options(C, op, seq);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -569,7 +569,7 @@ static int sequencer_add_scene_strip_new_exec(bContext *C, wmOperator *op)
}
load_data.scene = scene_new;
Sequence *seq = SEQ_add_scene_strip(scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_scene_strip(scene, ed->seqbasep, &load_data);
seq_load_apply_generic_options(C, op, seq);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -607,7 +607,7 @@ static const EnumPropertyItem *strip_new_sequencer_enum_itemf(bContext *C,
}
else {
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq && (seq->type == SEQ_TYPE_SCENE) && (seq->scene != nullptr)) {
has_scene_or_no_context = true;
}
@@ -671,7 +671,7 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
}
load_data.clip = clip;
Sequence *seq = SEQ_add_movieclip_strip(scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_movieclip_strip(scene, ed->seqbasep, &load_data);
seq_load_apply_generic_options(C, op, seq);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -735,7 +735,7 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
load_data_init_from_operator(&load_data, C, op);
load_data.mask = mask;
Sequence *seq = SEQ_add_mask_strip(scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_mask_strip(scene, ed->seqbasep, &load_data);
seq_load_apply_generic_options(C, op, seq);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -820,7 +820,7 @@ static IMB_Proxy_Size seq_get_proxy_size_flags(bContext *C)
return proxy_sizes;
}
static void seq_build_proxy(bContext *C, blender::Span<Sequence *> movie_strips)
static void seq_build_proxy(bContext *C, blender::Span<Strip *> movie_strips)
{
if (U.sequencer_proxy_setup != USER_SEQ_PROXY_SETUP_AUTOMATIC) {
return;
@@ -829,7 +829,7 @@ static void seq_build_proxy(bContext *C, blender::Span<Sequence *> movie_strips)
wmJob *wm_job = ED_seq_proxy_wm_job_get(C);
ProxyJob *pj = ED_seq_proxy_job_get(C, wm_job);
for (Sequence *seq : movie_strips) {
for (Strip *seq : movie_strips) {
/* Enable and set proxy size. */
SEQ_proxy_set(seq, true);
seq->data->proxy->build_size_flags = seq_get_proxy_size_flags(C);
@@ -845,7 +845,7 @@ 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)
Main *bmain, Scene *scene, Strip *seq_movie, Strip *seq_sound, SeqLoadData *load_data)
{
if (ELEM(nullptr, seq_movie, seq_sound)) {
return;
@@ -866,7 +866,7 @@ static void sequencer_add_movie_sync_sound_strip(
static void sequencer_add_movie_multiple_strips(bContext *C,
wmOperator *op,
SeqLoadData *load_data,
blender::VectorSet<Sequence *> &r_movie_strips)
blender::VectorSet<Strip *> &r_movie_strips)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -874,7 +874,7 @@ static void sequencer_add_movie_multiple_strips(bContext *C,
bool overlap_shuffle_override = RNA_boolean_get(op->ptr, "overlap") == false &&
RNA_boolean_get(op->ptr, "overlap_shuffle_override");
bool has_seq_overlap = false;
blender::Vector<Sequence *> added_strips;
blender::Vector<Strip *> added_strips;
RNA_BEGIN (op->ptr, itemptr, "files") {
char dir_only[FILE_MAX];
@@ -883,8 +883,8 @@ static void sequencer_add_movie_multiple_strips(bContext *C,
RNA_string_get(&itemptr, "name", file_only);
BLI_path_join(load_data->path, sizeof(load_data->path), dir_only, file_only);
STRNCPY(load_data->name, file_only);
Sequence *seq_movie = nullptr;
Sequence *seq_sound = nullptr;
Strip *seq_movie = nullptr;
Strip *seq_sound = nullptr;
seq_movie = SEQ_add_movie_strip(bmain, scene, ed->seqbasep, load_data);
@@ -938,15 +938,15 @@ static void sequencer_add_movie_multiple_strips(bContext *C,
static bool sequencer_add_movie_single_strip(bContext *C,
wmOperator *op,
SeqLoadData *load_data,
blender::VectorSet<Sequence *> &r_movie_strips)
blender::VectorSet<Strip *> &r_movie_strips)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
const Editing *ed = SEQ_editing_ensure(scene);
Sequence *seq_movie = nullptr;
Sequence *seq_sound = nullptr;
blender::Vector<Sequence *> added_strips;
Strip *seq_movie = nullptr;
Strip *seq_sound = nullptr;
blender::Vector<Strip *> added_strips;
seq_movie = SEQ_add_movie_strip(bmain, scene, ed->seqbasep, load_data);
@@ -1010,7 +1010,7 @@ static int sequencer_add_movie_strip_exec(bContext *C, wmOperator *op)
ED_sequencer_deselect_all(scene);
}
blender::VectorSet<Sequence *> movie_strips;
blender::VectorSet<Strip *> movie_strips;
const int tot_files = RNA_property_collection_length(op->ptr,
RNA_struct_find_property(op->ptr, "files"));
if (tot_files > 1) {
@@ -1142,7 +1142,7 @@ static void sequencer_add_sound_multiple_strips(bContext *C,
RNA_string_get(&itemptr, "name", file_only);
BLI_path_join(load_data->path, sizeof(load_data->path), dir_only, file_only);
STRNCPY(load_data->name, file_only);
Sequence *seq = SEQ_add_sound_strip(bmain, scene, ed->seqbasep, load_data);
Strip *seq = SEQ_add_sound_strip(bmain, scene, ed->seqbasep, load_data);
if (seq == nullptr) {
BKE_reportf(op->reports, RPT_ERROR, "File '%s' could not be loaded", load_data->path);
}
@@ -1161,7 +1161,7 @@ static bool sequencer_add_sound_single_strip(bContext *C, wmOperator *op, SeqLoa
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_ensure(scene);
Sequence *seq = SEQ_add_sound_strip(bmain, scene, ed->seqbasep, load_data);
Strip *seq = SEQ_add_sound_strip(bmain, scene, ed->seqbasep, load_data);
if (seq == nullptr) {
BKE_reportf(op->reports, RPT_ERROR, "File '%s' could not be loaded", load_data->path);
return false;
@@ -1326,7 +1326,7 @@ static int sequencer_add_image_strip_calculate_length(wmOperator *op,
static void sequencer_add_image_strip_load_files(wmOperator *op,
Scene *scene,
Sequence *seq,
Strip *seq,
SeqLoadData *load_data,
const int minframe,
const int numdigits)
@@ -1374,7 +1374,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
ED_sequencer_deselect_all(scene);
}
Sequence *seq = SEQ_add_image_strip(CTX_data_main(C), scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_image_strip(CTX_data_main(C), scene, ed->seqbasep, &load_data);
sequencer_add_image_strip_load_files(op, scene, seq, &load_data, minframe, numdigits);
SEQ_add_image_init_alpha_mode(seq);
@@ -1467,7 +1467,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
load_data_init_from_operator(&load_data, C, op);
load_data.effect.type = RNA_enum_get(op->ptr, "type");
Sequence *seq1, *seq2;
Strip *seq1, *seq2;
if (!seq_effect_find_selected(scene, nullptr, load_data.effect.type, &seq1, &seq2, &error_msg)) {
BKE_report(op->reports, RPT_ERROR, error_msg);
return OPERATOR_CANCELLED;
@@ -1490,7 +1490,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
}
}
Sequence *seq = SEQ_add_effect_strip(scene, ed->seqbasep, &load_data);
Strip *seq = SEQ_add_effect_strip(scene, ed->seqbasep, &load_data);
seq_load_apply_generic_options(C, op, seq);
if (seq->type == SEQ_TYPE_COLOR) {
@@ -72,13 +72,13 @@ using namespace blender::bke::blendfile;
*/
static void sequencer_copy_animation_listbase(Scene *scene_src,
Sequence *seq_dst,
Strip *seq_dst,
ListBase *clipboard_dst,
ListBase *fcurve_base_src)
{
/* Add curves for strips inside meta strip. */
if (seq_dst->type == SEQ_TYPE_META) {
LISTBASE_FOREACH (Sequence *, meta_child, &seq_dst->seqbase) {
LISTBASE_FOREACH (Strip *, meta_child, &seq_dst->seqbase) {
sequencer_copy_animation_listbase(scene_src, meta_child, clipboard_dst, fcurve_base_src);
}
}
@@ -96,14 +96,14 @@ static void sequencer_copy_animation_listbase(Scene *scene_src,
* above, except that it copies from an action's animation to a vector rather
* than between two listbases. */
static void sequencer_copy_animation_to_vector(Scene *scene_src,
Sequence *seq_dst,
Strip *seq_dst,
Vector<FCurve *> &clipboard_dst,
bAction &fcurves_src_action,
animrig::slot_handle_t fcurves_src_slot_handle)
{
/* Add curves for strips inside meta strip. */
if (seq_dst->type == SEQ_TYPE_META) {
LISTBASE_FOREACH (Sequence *, meta_child, &seq_dst->seqbase) {
LISTBASE_FOREACH (Strip *, meta_child, &seq_dst->seqbase) {
sequencer_copy_animation_to_vector(
scene_src, meta_child, clipboard_dst, fcurves_src_action, fcurves_src_slot_handle);
}
@@ -127,7 +127,7 @@ static void sequencer_copy_animation_to_vector(Scene *scene_src,
static void sequencer_copy_animation(Scene *scene_src,
Vector<FCurve *> &fcurves_dst,
ListBase *drivers_dst,
Sequence *seq_dst)
Strip *seq_dst)
{
if (SEQ_animation_keyframes_exist(scene_src)) {
sequencer_copy_animation_to_vector(
@@ -175,10 +175,10 @@ static bool sequencer_write_copy_paste_file(Main *bmain_src,
/* Save current frame and active strip. */
scene_dst->r.cfra = scene_src->r.cfra;
Sequence *active_seq_src = SEQ_select_active_get(scene_src);
Strip *active_seq_src = SEQ_select_active_get(scene_src);
if (active_seq_src) {
Sequence *seq_dst = static_cast<Sequence *>(
BLI_findstring(&scene_dst->ed->seqbase, active_seq_src->name, offsetof(Sequence, name)));
Strip *seq_dst = static_cast<Strip *>(
BLI_findstring(&scene_dst->ed->seqbase, active_seq_src->name, offsetof(Strip, name)));
if (seq_dst) {
SEQ_select_active_set(scene_dst, seq_dst);
}
@@ -186,7 +186,7 @@ static bool sequencer_write_copy_paste_file(Main *bmain_src,
Vector<FCurve *> fcurves_dst = {};
ListBase drivers_dst = {nullptr, nullptr};
LISTBASE_FOREACH (Sequence *, seq_dst, &scene_dst->ed->seqbase) {
LISTBASE_FOREACH (Strip *, seq_dst, &scene_dst->ed->seqbase) {
/* Copy any fcurves/drivers from `scene_src` that are relevant to `seq_dst`. */
sequencer_copy_animation(scene_src, fcurves_dst, &drivers_dst, seq_dst);
}
@@ -414,7 +414,7 @@ int sequencer_clipboard_paste_exec(bContext *C, wmOperator *op)
}
else {
int min_seq_startdisp = INT_MAX;
LISTBASE_FOREACH (Sequence *, seq, &scene_src->ed->seqbase) {
LISTBASE_FOREACH (Strip *, seq, &scene_src->ed->seqbase) {
if (SEQ_time_left_handle_frame_get(scene_src, seq) < min_seq_startdisp) {
min_seq_startdisp = SEQ_time_left_handle_frame_get(scene_src, seq);
}
@@ -423,7 +423,7 @@ int sequencer_clipboard_paste_exec(bContext *C, wmOperator *op)
ofs = scene_dst->r.cfra - min_seq_startdisp;
}
Sequence *prev_active_seq = SEQ_select_active_get(scene_src);
Strip *prev_active_seq = SEQ_select_active_get(scene_src);
std::string active_seq_name;
if (prev_active_seq) {
active_seq_name.assign(prev_active_seq->name);
@@ -461,12 +461,12 @@ int sequencer_clipboard_paste_exec(bContext *C, wmOperator *op)
}
BKE_id_delete(bmain_dst, scene_src);
Sequence *iseq_first = static_cast<Sequence *>(nseqbase.first);
Strip *iseq_first = static_cast<Strip *>(nseqbase.first);
BLI_movelisttolist(ed_dst->seqbasep, &nseqbase);
/* Restore "first" pointer as BLI_movelisttolist sets it to nullptr */
nseqbase.first = iseq_first;
LISTBASE_FOREACH (Sequence *, iseq, &nseqbase) {
LISTBASE_FOREACH (Strip *, iseq, &nseqbase) {
if (iseq->name == active_seq_name) {
SEQ_select_active_set(scene_dst, iseq);
}
@@ -475,7 +475,7 @@ int sequencer_clipboard_paste_exec(bContext *C, wmOperator *op)
SEQ_ensure_unique_name(iseq, scene_dst);
}
LISTBASE_FOREACH (Sequence *, iseq, &nseqbase) {
LISTBASE_FOREACH (Strip *, iseq, &nseqbase) {
/* Translate after name has been changed, otherwise this will affect animdata of original
* strip. */
SEQ_transform_translate_sequence(scene_dst, iseq, ofs);
@@ -224,7 +224,7 @@ static float update_overlay_strip_position_data(bContext *C, const int mval[2])
else {
/* Check if there is a strip that would intersect with the new strip(s). */
coords->is_intersecting = false;
Sequence dummy_seq{};
Strip dummy_seq{};
dummy_seq.machine = coords->channel;
dummy_seq.start = coords->start_frame;
dummy_seq.len = coords->strip_len;
@@ -279,7 +279,7 @@ static void sequencer_drop_copy(bContext *C, wmDrag *drag, wmDropBox *drop)
/* Get the top most strip channel that is in view. */
int max_channel = -1;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
max_channel = max_ii(seq->machine, max_channel);
}
@@ -195,7 +195,7 @@ bool sequencer_strip_editable_poll(bContext *C)
bool sequencer_strip_has_path_poll(bContext *C)
{
Editing *ed;
Sequence *seq;
Strip *seq;
return (((ed = SEQ_editing_get(CTX_data_scene(C))) != nullptr) &&
((seq = ed->act_seq) != nullptr) && SEQ_HAS_PATH(seq));
}
@@ -361,7 +361,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
snap_frame = RNA_int_get(op->ptr, "frame");
/* Check meta-strips. */
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT && !SEQ_transform_is_locked(channels, seq) &&
SEQ_transform_sequence_can_be_translated(seq))
{
@@ -382,7 +382,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
}
/* Test for effects and overlap. */
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT && !SEQ_transform_is_locked(channels, seq)) {
seq->flag &= ~SEQ_OVERLAP;
if (SEQ_transform_test_overlap(scene, ed->seqbasep, seq)) {
@@ -392,7 +392,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
}
/* Recalculate bounds of effect strips, offsetting the keyframes if not snapping any handle. */
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->type & SEQ_TYPE_EFFECT) {
const bool either_handle_selected = (seq->flag & (SEQ_LEFTSEL | SEQ_RIGHTSEL)) != 0;
@@ -466,18 +466,18 @@ struct SlipData {
int previous_offset;
float previous_subframe_offset;
float subframe_restore;
Sequence **seq_array;
Strip **seq_array;
int num_seq;
bool slow;
int slow_offset; /* Offset at the point where offset was turned on. */
NumInput num_input;
};
static void slip_add_sequences(ListBase *seqbasep, Sequence **seq_array)
static void slip_add_sequences(ListBase *seqbasep, Strip **seq_array)
{
int i = 0;
LISTBASE_FOREACH (Sequence *, seq, seqbasep) {
LISTBASE_FOREACH (Strip *, seq, seqbasep) {
if (!(seq->type & SEQ_TYPE_EFFECT) && (seq->flag & SELECT)) {
seq_array[i] = seq;
i++;
@@ -489,7 +489,7 @@ static int slip_count_sequences(ListBase *seqbasep)
{
int trimmed_sequences = 0;
LISTBASE_FOREACH (Sequence *, seq, seqbasep) {
LISTBASE_FOREACH (Strip *, seq, seqbasep) {
if (!(seq->type & SEQ_TYPE_EFFECT) && (seq->flag & SELECT)) {
trimmed_sequences++;
}
@@ -516,7 +516,7 @@ static int sequencer_slip_invoke(bContext *C, wmOperator *op, const wmEvent *eve
data = MEM_cnew<SlipData>("trimdata");
op->customdata = static_cast<void *>(data);
data->seq_array = MEM_cnew_array<Sequence *>(num_seq, "trimdata_sequences");
data->seq_array = MEM_cnew_array<Strip *>(num_seq, "trimdata_sequences");
data->num_seq = num_seq;
data->previous_offset = 0;
@@ -544,7 +544,7 @@ static int sequencer_slip_invoke(bContext *C, wmOperator *op, const wmEvent *eve
static void sequencer_slip_strips(Scene *scene, SlipData *data, int delta, float subframe_delta)
{
for (int i = data->num_seq - 1; i >= 0; i--) {
Sequence *seq = data->seq_array[i];
Strip *seq = data->seq_array[i];
ListBase *channels = SEQ_channels_displayed_get(SEQ_editing_get(scene));
if (SEQ_transform_is_locked(channels, seq)) {
@@ -555,7 +555,7 @@ static void sequencer_slip_strips(Scene *scene, SlipData *data, int delta, float
}
for (int i = data->num_seq - 1; i >= 0; i--) {
Sequence *seq = data->seq_array[i];
Strip *seq = data->seq_array[i];
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
}
@@ -567,7 +567,7 @@ static int sequencer_slip_apply_limits(const Scene *scene, SlipData *data, int *
int delta_offset = *offset - data->previous_offset;
for (int i = 0; i < data->num_seq; i++) {
Sequence *seq = data->seq_array[i];
Strip *seq = data->seq_array[i];
int seq_content_start = SEQ_time_start_frame_get(seq) + delta_offset;
int seq_content_end = seq_content_start + seq->len + seq->anim_startofs + seq->anim_endofs;
int diff = 0;
@@ -601,7 +601,7 @@ static int sequencer_slip_exec(bContext *C, wmOperator *op)
SlipData *data = MEM_cnew<SlipData>("trimdata");
op->customdata = static_cast<void *>(data);
data->seq_array = MEM_cnew_array<Sequence *>(num_seq, "trimdata_sequences");
data->seq_array = MEM_cnew_array<Strip *>(num_seq, "trimdata_sequences");
data->num_seq = num_seq;
slip_add_sequences(ed->seqbasep, data->seq_array);
@@ -843,7 +843,7 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op)
selected = !RNA_boolean_get(op->ptr, "unselected");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (!SEQ_transform_is_locked(channels, seq)) {
if (selected) {
if (seq->flag & SELECT) {
@@ -899,7 +899,7 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op)
selected = !RNA_boolean_get(op->ptr, "unselected");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (!SEQ_transform_is_locked(channels, seq)) {
if (selected) {
if (seq->flag & SELECT) {
@@ -954,7 +954,7 @@ static int sequencer_lock_exec(bContext *C, wmOperator * /*op*/)
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
seq->flag |= SEQ_LOCK;
}
@@ -991,7 +991,7 @@ static int sequencer_unlock_exec(bContext *C, wmOperator * /*op*/)
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
seq->flag &= ~SEQ_LOCK;
}
@@ -1029,7 +1029,7 @@ static int sequencer_connect_exec(bContext *C, wmOperator *op)
Editing *ed = SEQ_editing_get(scene);
ListBase *active_seqbase = SEQ_active_seqbase_get(ed);
blender::VectorSet<Sequence *> selected = SEQ_query_selected_strips(active_seqbase);
blender::VectorSet<Strip *> selected = SEQ_query_selected_strips(active_seqbase);
if (selected.is_empty()) {
return OPERATOR_CANCELLED;
@@ -1073,7 +1073,7 @@ static int sequencer_disconnect_exec(bContext *C, wmOperator * /*op*/)
Editing *ed = SEQ_editing_get(scene);
ListBase *active_seqbase = SEQ_active_seqbase_get(ed);
blender::VectorSet<Sequence *> selected = SEQ_query_selected_strips(active_seqbase);
blender::VectorSet<Strip *> selected = SEQ_query_selected_strips(active_seqbase);
if (SEQ_disconnect(selected)) {
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -1109,7 +1109,7 @@ static int sequencer_reload_exec(bContext *C, wmOperator *op)
Editing *ed = SEQ_editing_get(scene);
const bool adjust_length = RNA_boolean_get(op->ptr, "adjust_length");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
SEQ_add_reload_new_file(bmain, scene, seq, !adjust_length);
blender::seq::thumbnail_cache_invalidate_strip(scene, seq);
@@ -1198,14 +1198,14 @@ void SEQUENCER_OT_refresh_all(wmOperatorType *ot)
* \{ */
int seq_effect_find_selected(Scene *scene,
Sequence *activeseq,
Strip *activeseq,
int type,
Sequence **r_selseq1,
Sequence **r_selseq2,
Strip **r_selseq1,
Strip **r_selseq2,
const char **r_error_str)
{
Editing *ed = SEQ_editing_get(scene);
Sequence *seq1 = nullptr, *seq2 = nullptr;
Strip *seq1 = nullptr, *seq2 = nullptr;
*r_error_str = nullptr;
@@ -1218,7 +1218,7 @@ int seq_effect_find_selected(Scene *scene,
return 1;
}
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
if (seq->type == SEQ_TYPE_SOUND_RAM) {
*r_error_str = N_("Cannot apply effects to audio sequence strips");
@@ -1276,7 +1276,7 @@ int seq_effect_find_selected(Scene *scene,
static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq1, *seq2, *last_seq = SEQ_select_active_get(scene);
Strip *seq1, *seq2, *last_seq = SEQ_select_active_get(scene);
const char *error_msg;
if (SEQ_effect_get_num_inputs(last_seq->type) == 0) {
@@ -1323,7 +1323,7 @@ static bool sequencer_effect_poll(bContext *C)
Editing *ed = SEQ_editing_get(scene);
if (ed) {
Sequence *last_seq = SEQ_select_active_get(scene);
Strip *last_seq = SEQ_select_active_get(scene);
if (last_seq && (last_seq->type & SEQ_TYPE_EFFECT)) {
return true;
}
@@ -1356,7 +1356,7 @@ void SEQUENCER_OT_reassign_inputs(wmOperatorType *ot)
static int sequencer_swap_inputs_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq, *last_seq = SEQ_select_active_get(scene);
Strip *seq, *last_seq = SEQ_select_active_get(scene);
if (last_seq->seq1 == nullptr || last_seq->seq2 == nullptr) {
BKE_report(op->reports, RPT_ERROR, "No valid inputs to swap");
@@ -1461,7 +1461,7 @@ static int sequencer_split_exec(bContext *C, wmOperator *op)
SEQ_prefetch_stop(scene);
LISTBASE_FOREACH_BACKWARD (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH_BACKWARD (Strip *, seq, ed->seqbasep) {
if (use_cursor_position && seq->machine != split_channel) {
continue;
}
@@ -1482,7 +1482,7 @@ static int sequencer_split_exec(bContext *C, wmOperator *op)
if (changed) { /* Got new strips? */
if (ignore_selection) {
if (use_cursor_position) {
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (SEQ_time_right_handle_frame_get(scene, seq) == split_frame &&
seq->machine == split_channel)
{
@@ -1490,7 +1490,7 @@ static int sequencer_split_exec(bContext *C, wmOperator *op)
}
}
if (!seq_selected) {
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (SEQ_time_left_handle_frame_get(scene, seq) == split_frame &&
seq->machine == split_channel)
{
@@ -1502,7 +1502,7 @@ static int sequencer_split_exec(bContext *C, wmOperator *op)
}
else {
if (split_side != SEQ_SIDE_BOTH) {
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (split_side == SEQ_SIDE_LEFT) {
if (SEQ_time_left_handle_frame_get(scene, seq) >= split_frame) {
seq->flag &= ~SEQ_ALLSEL;
@@ -1659,7 +1659,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator * /*op*/)
return OPERATOR_CANCELLED;
}
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
ListBase duplicated_strips = {nullptr, nullptr};
SEQ_sequence_base_dupli_recursive(scene, scene, &duplicated_strips, ed->seqbasep, 0, 0);
@@ -1678,7 +1678,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator * /*op*/)
SEQ_animation_backup_original(scene, &animation_backup);
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
Sequence *seq_last = static_cast<Sequence *>(seqbase->last);
Strip *seq_last = static_cast<Strip *>(seqbase->last);
/* Rely on the `duplicated_strips` list being added at the end.
* Their UIDs has been re-generated by the #SEQ_sequence_base_dupli_recursive(). */
@@ -1686,7 +1686,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator * /*op*/)
/* Handle duplicated strips: set active, select, ensure unique name and duplicate animation
* data. */
for (Sequence *seq = seq_last->next; seq; seq = seq->next) {
for (Strip *seq = seq_last->next; seq; seq = seq->next) {
if (active_seq != nullptr && STREQ(seq->name, active_seq->name)) {
SEQ_select_active_set(scene, seq);
}
@@ -1700,14 +1700,14 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator * /*op*/)
/* Special case for duplicating strips in preview: Do not duplicate sound strips and handle
* overlap, because strips won't be translated. */
if (region->regiontype == RGN_TYPE_PREVIEW && sequencer_view_preview_only_poll(C)) {
for (Sequence *seq = seq_last->next; seq; seq = seq->next) {
for (Strip *seq = seq_last->next; seq; seq = seq->next) {
if (seq->type == SEQ_TYPE_SOUND_RAM) {
SEQ_edit_flag_for_removal(scene, ed->seqbasep, seq);
}
}
SEQ_edit_remove_flagged_sequences(scene, ed->seqbasep);
for (Sequence *seq = seq_last->next; seq; seq = seq->next) {
for (Strip *seq = seq_last->next; seq; seq = seq->next) {
if (SEQ_transform_test_overlap(scene, ed->seqbasep, seq)) {
SEQ_transform_seqbase_shuffle(ed->seqbasep, seq, scene);
}
@@ -1743,7 +1743,7 @@ void SEQUENCER_OT_duplicate(wmOperatorType *ot)
/** \name Erase Strips Operator
* \{ */
static void sequencer_delete_strip_data(bContext *C, Sequence *seq)
static void sequencer_delete_strip_data(bContext *C, Strip *seq)
{
if (seq->type != SEQ_TYPE_SCENE) {
return;
@@ -1770,7 +1770,7 @@ static int sequencer_delete_exec(bContext *C, wmOperator *op)
SEQ_prefetch_stop(scene);
for (Sequence *seq : ED_sequencer_selected_strips_from_context(C)) {
for (Strip *seq : ED_sequencer_selected_strips_from_context(C)) {
SEQ_edit_flag_for_removal(scene, seqbasep, seq);
if (delete_data) {
sequencer_delete_strip_data(C, seq);
@@ -1842,12 +1842,11 @@ static int sequencer_offset_clear_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *seq;
Strip *seq;
ListBase *channels = SEQ_channels_displayed_get(SEQ_editing_get(scene));
/* For effects, try to find a replacement input. */
for (seq = static_cast<Sequence *>(ed->seqbasep->first); seq;
seq = static_cast<Sequence *>(seq->next))
for (seq = static_cast<Strip *>(ed->seqbasep->first); seq; seq = static_cast<Strip *>(seq->next))
{
if (SEQ_transform_is_locked(channels, seq)) {
continue;
@@ -1859,14 +1858,13 @@ static int sequencer_offset_clear_exec(bContext *C, wmOperator * /*op*/)
}
/* Update lengths, etc. */
seq = static_cast<Sequence *>(ed->seqbasep->first);
seq = static_cast<Strip *>(ed->seqbasep->first);
while (seq) {
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
seq = seq->next;
}
for (seq = static_cast<Sequence *>(ed->seqbasep->first); seq;
seq = static_cast<Sequence *>(seq->next))
for (seq = static_cast<Strip *>(ed->seqbasep->first); seq; seq = static_cast<Strip *>(seq->next))
{
if ((seq->type & SEQ_TYPE_EFFECT) == 0 && (seq->flag & SELECT)) {
if (SEQ_transform_test_overlap(scene, ed->seqbasep, seq)) {
@@ -1908,19 +1906,19 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
Editing *ed = SEQ_editing_get(scene);
ListBase *seqbase = SEQ_active_seqbase_get(ed);
Sequence *seq, *seq_new;
Strip *seq, *seq_new;
StripData *data_new;
StripElem *se, *se_new;
int start_ofs, timeline_frame, frame_end;
int step = RNA_int_get(op->ptr, "length");
seq = static_cast<Sequence *>(seqbase->first); /* Poll checks this is valid. */
seq = static_cast<Strip *>(seqbase->first); /* Poll checks this is valid. */
SEQ_prefetch_stop(scene);
while (seq) {
if ((seq->flag & SELECT) && (seq->type == SEQ_TYPE_IMAGE) && (seq->len > 1)) {
Sequence *seq_next;
Strip *seq_next;
/* TODO: remove f-curve and assign to split image strips.
* The old animation system would remove the user of `seq->ipo`. */
@@ -1964,7 +1962,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
start_ofs += step;
}
seq_next = static_cast<Sequence *>(seq->next);
seq_next = static_cast<Strip *>(seq->next);
SEQ_edit_flag_for_removal(scene, seqbase, seq);
seq = seq_next;
}
@@ -2013,7 +2011,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
SEQ_prefetch_stop(scene);
@@ -2029,7 +2027,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator * /*op*/)
}
/* Display parent meta. */
Sequence *meta_parent = SEQ_meta_stack_pop(ed);
Strip *meta_parent = SEQ_meta_stack_pop(ed);
SEQ_select_active_set(scene, meta_parent);
}
@@ -2064,7 +2062,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
ListBase *active_seqbase = SEQ_active_seqbase_get(ed);
if (SEQ_transform_seqbase_isolated_sel_check(active_seqbase) == false) {
@@ -2076,19 +2074,19 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
int channel_max = 1, channel_min = INT_MAX, meta_start_frame = MAXFRAME,
meta_end_frame = MINFRAME;
Sequence *seqm = SEQ_sequence_alloc(active_seqbase, 1, 1, SEQ_TYPE_META);
Strip *seqm = SEQ_sequence_alloc(active_seqbase, 1, 1, SEQ_TYPE_META);
/* Remove all selected from main list, and put in meta.
* Sequence is moved within the same edit, no need to re-generate the UID. */
blender::VectorSet<Sequence *> strips_to_move;
LISTBASE_FOREACH (Sequence *, seq, active_seqbase) {
blender::VectorSet<Strip *> strips_to_move;
LISTBASE_FOREACH (Strip *, seq, active_seqbase) {
if (seq != seqm && seq->flag & SELECT) {
strips_to_move.add(seq);
strips_to_move.add_multiple(SEQ_get_connected_strips(seq));
}
}
for (Sequence *seq : strips_to_move) {
for (Strip *seq : strips_to_move) {
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
BLI_remlink(active_seqbase, seq);
BLI_addtail(&seqm->seqbase, seq);
@@ -2149,7 +2147,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
if (active_seq == nullptr || active_seq->type != SEQ_TYPE_META) {
return OPERATOR_CANCELLED;
@@ -2157,7 +2155,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator * /*op*/)
SEQ_prefetch_stop(scene);
LISTBASE_FOREACH (Sequence *, seq, &active_seq->seqbase) {
LISTBASE_FOREACH (Strip *, seq, &active_seq->seqbase) {
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
@@ -2171,7 +2169,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator * /*op*/)
SEQ_edit_remove_flagged_sequences(scene, active_seqbase);
/* Test for effects and overlap. */
LISTBASE_FOREACH (Sequence *, seq, active_seqbase) {
LISTBASE_FOREACH (Strip *, seq, active_seqbase) {
if (seq->flag & SELECT) {
seq->flag &= ~SEQ_OVERLAP;
if (SEQ_transform_test_overlap(scene, active_seqbase, seq)) {
@@ -2283,7 +2281,7 @@ static const EnumPropertyItem prop_side_lr_types[] = {
{0, nullptr, 0, nullptr, nullptr},
};
static void swap_sequence(Scene *scene, Sequence *seqa, Sequence *seqb)
static void swap_sequence(Scene *scene, Strip *seqa, Strip *seqb)
{
int gap = SEQ_time_left_handle_frame_get(scene, seqb) -
SEQ_time_right_handle_frame_get(scene, seqa);
@@ -2301,10 +2299,10 @@ static void swap_sequence(Scene *scene, Sequence *seqa, Sequence *seqb)
SEQ_relations_invalidate_cache_preprocessed(scene, seqa);
}
static Sequence *find_next_prev_sequence(Scene *scene, Sequence *test, int lr, int sel)
static Strip *find_next_prev_sequence(Scene *scene, Strip *test, int lr, int sel)
{
/* sel: 0==unselected, 1==selected, -1==don't care. */
Sequence *seq, *best_seq = nullptr;
Strip *seq, *best_seq = nullptr;
Editing *ed = SEQ_editing_get(scene);
int dist, best_dist;
@@ -2314,7 +2312,7 @@ static Sequence *find_next_prev_sequence(Scene *scene, Sequence *test, int lr, i
return nullptr;
}
seq = static_cast<Sequence *>(ed->seqbasep->first);
seq = static_cast<Strip *>(ed->seqbasep->first);
while (seq) {
if ((seq != test) && (test->machine == seq->machine) &&
((sel == -1) || (sel == (seq->flag & SELECT))))
@@ -2349,12 +2347,12 @@ static Sequence *find_next_prev_sequence(Scene *scene, Sequence *test, int lr, i
best_seq = seq;
}
}
seq = static_cast<Sequence *>(seq->next);
seq = static_cast<Strip *>(seq->next);
}
return best_seq; /* Can be nullptr. */
}
static bool seq_is_parent(const Sequence *par, const Sequence *seq)
static bool seq_is_parent(const Strip *par, const Strip *seq)
{
return ((par->seq1 == seq) || (par->seq2 == seq));
}
@@ -2363,9 +2361,9 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
ListBase *seqbase = SEQ_active_seqbase_get(ed);
Sequence *seq;
Strip *seq;
int side = RNA_enum_get(op->ptr, "side");
if (active_seq == nullptr) {
@@ -2401,7 +2399,7 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
}
/* Do this in a new loop since both effects need to be calculated first. */
LISTBASE_FOREACH (Sequence *, iseq, seqbase) {
LISTBASE_FOREACH (Strip *, iseq, seqbase) {
if ((iseq->type & SEQ_TYPE_EFFECT) &&
(seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq)))
{
@@ -2447,7 +2445,7 @@ void SEQUENCER_OT_swap(wmOperatorType *ot)
static int sequencer_rendersize_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
Sequence *active_seq = SEQ_select_active_get(scene);
Strip *active_seq = SEQ_select_active_get(scene);
StripElem *se = nullptr;
if (active_seq == nullptr || active_seq->data == nullptr) {
@@ -2538,7 +2536,7 @@ bool ED_sequencer_deselect_all(Scene *scene)
return changed;
}
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (seq->flag & SEQ_ALLSEL) {
seq->flag &= ~SEQ_ALLSEL;
changed = true;
@@ -2580,8 +2578,8 @@ void SEQUENCER_OT_paste(wmOperatorType *ot)
static int sequencer_swap_data_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq_act;
Sequence *seq_other;
Strip *seq_act;
Strip *seq_other;
const char *error_msg;
if (SEQ_select_active_get_pair(scene, &seq_act, &seq_other) == false) {
@@ -2644,9 +2642,9 @@ void SEQUENCER_OT_swap_data(wmOperatorType *ot)
static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
Sequence **seq_1 = &seq->seq1, **seq_2 = &seq->seq2;
Strip **seq_1 = &seq->seq1, **seq_2 = &seq->seq2;
if (*seq_1 == nullptr || *seq_2 == nullptr) {
BKE_report(op->reports, RPT_ERROR, "One of the effect inputs is unset, cannot swap");
@@ -2706,7 +2704,7 @@ const EnumPropertyItem sequencer_prop_effect_types[] = {
static int sequencer_change_effect_type_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
const int new_type = RNA_enum_get(op->ptr, "type");
/* Free previous effect and init new effect. */
@@ -2769,7 +2767,7 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
const bool is_relative_path = RNA_boolean_get(op->ptr, "relative_path");
const bool use_placeholders = RNA_boolean_get(op->ptr, "use_placeholders");
int minext_frameme, numdigits;
@@ -2846,7 +2844,7 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
PropertyRNA *prop;
char filepath[FILE_MAX];
PointerRNA seq_ptr = RNA_pointer_create(&scene->id, &RNA_Sequence, seq);
PointerRNA seq_ptr = RNA_pointer_create(&scene->id, &RNA_Strip, seq);
RNA_string_get(op->ptr, "filepath", filepath);
prop = RNA_struct_find_property(&seq_ptr, "filepath");
@@ -2864,7 +2862,7 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
static int sequencer_change_path_invoke(bContext *C, wmOperator *op, const wmEvent * /*event*/)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
char filepath[FILE_MAX];
BLI_path_join(filepath, sizeof(filepath), seq->data->dirpath, seq->data->stripdata->filename);
@@ -2926,7 +2924,7 @@ static bool sequencer_strip_change_scene_poll(bContext *C)
if (ed == nullptr) {
return false;
}
Sequence *seq = ed->act_seq;
Strip *seq = ed->act_seq;
return ((seq != nullptr) && (seq->type == SEQ_TYPE_SCENE));
}
static int sequencer_change_scene_exec(bContext *C, wmOperator *op)
@@ -2942,7 +2940,7 @@ static int sequencer_change_scene_exec(bContext *C, wmOperator *op)
}
/* Assign new scene. */
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq) {
seq->scene = scene_seq;
/* Do a refresh of the sequencer data. */
@@ -3000,8 +2998,8 @@ void SEQUENCER_OT_change_scene(wmOperatorType *ot)
static int seq_cmp_time_startdisp_channel(void *thunk, const void *a, const void *b)
{
const Scene *scene = static_cast<Scene *>(thunk);
const Sequence *seq_a = static_cast<const Sequence *>(a);
const Sequence *seq_b = static_cast<const Sequence *>(b);
const Strip *seq_a = static_cast<const Strip *>(a);
const Strip *seq_b = static_cast<const Strip *>(b);
int seq_a_start = SEQ_time_left_handle_frame_get(scene, seq_a);
int seq_b_start = SEQ_time_left_handle_frame_get(scene, seq_b);
@@ -3030,7 +3028,7 @@ struct Seq_get_text_cb_data {
Scene *scene;
};
static bool seq_get_text_strip_cb(Sequence *seq, void *user_data)
static bool seq_get_text_strip_cb(Strip *seq, void *user_data)
{
Seq_get_text_cb_data *cd = (Seq_get_text_cb_data *)user_data;
Editing *ed = SEQ_editing_get(cd->scene);
@@ -3047,7 +3045,7 @@ static bool seq_get_text_strip_cb(Sequence *seq, void *user_data)
static int sequencer_export_subtitles_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq, *seq_next;
Strip *seq, *seq_next;
Editing *ed = SEQ_editing_get(scene);
ListBase text_seq = {nullptr};
int iter = 1; /* Sequence numbers in `.srt` files are 1-indexed. */
@@ -3090,7 +3088,7 @@ static int sequencer_export_subtitles_exec(bContext *C, wmOperator *op)
/* Open and write file. */
file = BLI_fopen(filepath, "w");
for (seq = static_cast<Sequence *>(text_seq.first); seq; seq = seq_next) {
for (seq = static_cast<Strip *>(text_seq.first); seq; seq = seq_next) {
TextVars *data = static_cast<TextVars *>(seq->effectdata);
char timecode_str_start[32];
char timecode_str_end[32];
@@ -3114,7 +3112,7 @@ static int sequencer_export_subtitles_exec(bContext *C, wmOperator *op)
fprintf(
file, "%d\n%s --> %s\n%s\n\n", iter++, timecode_str_start, timecode_str_end, data->text);
seq_next = static_cast<Sequence *>(seq->next);
seq_next = static_cast<Strip *>(seq->next);
MEM_freeN(seq);
}
@@ -3126,7 +3124,7 @@ static int sequencer_export_subtitles_exec(bContext *C, wmOperator *op)
static bool sequencer_strip_is_text_poll(bContext *C)
{
Editing *ed;
Sequence *seq;
Strip *seq;
return (((ed = SEQ_editing_get(CTX_data_scene(C))) != nullptr) &&
((seq = ed->act_seq) != nullptr) && (seq->type == SEQ_TYPE_TEXT));
}
@@ -3171,7 +3169,7 @@ static int sequencer_set_range_to_strips_exec(bContext *C, wmOperator *op)
bool selected = false;
const bool preview = RNA_boolean_get(op->ptr, "preview");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
selected = true;
sfra = min_ii(sfra, SEQ_time_left_handle_frame_get(scene, seq));
@@ -3254,7 +3252,7 @@ static int sequencer_strip_transform_clear_exec(bContext *C, wmOperator *op)
const Editing *ed = SEQ_editing_get(scene);
const int property = RNA_enum_get(op->ptr, "property");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT && seq->type != SEQ_TYPE_SOUND_RAM) {
StripTransform *transform = seq->data->transform;
switch (property) {
@@ -3326,7 +3324,7 @@ static int sequencer_strip_transform_fit_exec(bContext *C, wmOperator *op)
const Editing *ed = SEQ_editing_get(scene);
const eSeqImageFitMethod fit_method = eSeqImageFitMethod(RNA_enum_get(op->ptr, "fit_method"));
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT && seq->type != SEQ_TYPE_SOUND_RAM) {
const int timeline_frame = scene->r.cfra;
StripElem *strip_elem = SEQ_render_give_stripelem(scene, seq, timeline_frame);
@@ -3376,7 +3374,7 @@ static int sequencer_strip_color_tag_set_exec(bContext *C, wmOperator *op)
const Editing *ed = SEQ_editing_get(scene);
const short color_tag = RNA_enum_get(op->ptr, "color");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
seq->color_tag = color_tag;
}
@@ -3398,7 +3396,7 @@ static bool sequencer_strip_color_tag_set_poll(bContext *C)
return false;
}
Sequence *act_seq = ed->act_seq;
Strip *act_seq = ed->act_seq;
return act_seq != nullptr;
}
@@ -3492,7 +3490,7 @@ static int sequencer_scene_frame_range_update_exec(bContext *C, wmOperator * /*o
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = ed->act_seq;
Strip *seq = ed->act_seq;
const int old_start = SEQ_time_left_handle_frame_get(scene, seq);
const int old_end = SEQ_time_right_handle_frame_get(scene, seq);
@@ -32,7 +32,7 @@ struct ARegion;
struct ARegionType;
struct Scene;
struct SeqRetimingKey;
struct Sequence;
struct Strip;
struct SpaceSeq;
struct StripElem;
struct View2D;
@@ -83,7 +83,7 @@ struct SeqChannelDrawContext {
};
struct StripDrawContext {
Sequence *seq;
Strip *seq;
const FCurve *curve = nullptr; /* Curve for overlay, if any (blend factor or volume). */
/* Strip boundary in timeline space. Content start/end is clamped by left/right handle. */
@@ -117,7 +117,7 @@ struct TimelineDrawContext {
GPUViewport *viewport;
GPUFrameBuffer *framebuffer_overlay;
float pixelx, pixely; /* Width and height of pixel in timeline space. */
blender::Map<SeqRetimingKey *, Sequence *> retiming_selection;
blender::Map<SeqRetimingKey *, Strip *> retiming_selection;
SeqQuadsBatch *quads;
};
@@ -140,9 +140,9 @@ void sequencer_draw_preview(const bContext *C,
bool sequencer_draw_get_transform_preview(SpaceSeq *sseq, Scene *scene);
int sequencer_draw_get_transform_preview_frame(Scene *scene);
void sequencer_special_update_set(Sequence *seq);
void sequencer_special_update_set(Strip *seq);
/* Get handle width in 2d-View space. */
float sequence_handle_size_get_clamped(const Scene *scene, Sequence *seq, float pixelx);
float sequence_handle_size_get_clamped(const Scene *scene, Strip *seq, float pixelx);
/* UNUSED */
/* void seq_reset_imageofs(SpaceSeq *sseq); */
@@ -174,14 +174,14 @@ void channel_draw_context_init(const bContext *C,
/* `sequencer_edit.cc` */
void seq_rectf(const Scene *scene, const Sequence *seq, rctf *r_rect);
Sequence *find_neighboring_sequence(Scene *scene, Sequence *test, int lr, int sel);
void recurs_sel_seq(Sequence *seq_meta);
void seq_rectf(const Scene *scene, const Strip *seq, rctf *r_rect);
Strip *find_neighboring_sequence(Scene *scene, Strip *test, int lr, int sel);
void recurs_sel_seq(Strip *seq_meta);
int seq_effect_find_selected(Scene *scene,
Sequence *activeseq,
Strip *activeseq,
int type,
Sequence **r_selseq1,
Sequence **r_selseq2,
Strip **r_selseq1,
Strip **r_selseq2,
const char **r_error_str);
/* Operator helpers. */
@@ -201,9 +201,9 @@ bool sequencer_view_strips_poll(bContext *C);
* collection is limited to all presented strips that can produce image output.
*
* \param C: context
* \return collection of strips (`Sequence`)
* \return collection of strips (`Strip`)
*/
blender::VectorSet<Sequence *> all_strips_from_context(bContext *C);
blender::VectorSet<Strip *> all_strips_from_context(bContext *C);
/* Externals. */
@@ -277,11 +277,11 @@ void SEQUENCER_OT_select_side(wmOperatorType *ot);
void SEQUENCER_OT_select_box(wmOperatorType *ot);
void SEQUENCER_OT_select_inverse(wmOperatorType *ot);
void SEQUENCER_OT_select_grouped(wmOperatorType *ot);
Sequence *find_nearest_seq(const Scene *scene,
const View2D *v2d,
const int mval[2],
eSeqHandle *r_hand);
bool seq_point_image_isect(const Scene *scene, const Sequence *seq, float point_view[2]);
Strip *find_nearest_seq(const Scene *scene,
const View2D *v2d,
const int mval[2],
eSeqHandle *r_hand);
bool seq_point_image_isect(const Scene *scene, const Strip *seq, float point_view[2]);
/* `sequencer_add.cc` */
@@ -334,7 +334,7 @@ void SEQUENCER_OT_rename_channel(wmOperatorType *ot);
/* `sequencer_preview.cc` */
void sequencer_preview_add_sound(const bContext *C, const Sequence *seq);
void sequencer_preview_add_sound(const bContext *C, const Strip *seq);
/* `sequencer_add.cc` */
@@ -356,12 +356,12 @@ void SEQUENCER_OT_retiming_segment_speed_set(wmOperatorType *ot);
int sequencer_retiming_key_select_exec(bContext *C,
wmOperator *op,
SeqRetimingKey *key,
const Sequence *key_owner);
const Strip *key_owner);
/* Select a key and all following keys. */
int sequencer_retiming_select_linked_time(bContext *C,
wmOperator *op,
SeqRetimingKey *key,
const Sequence *key_owner);
const Strip *key_owner);
int sequencer_select_exec(bContext *C, wmOperator *op);
int sequencer_retiming_select_all_exec(bContext *C, wmOperator *op);
int sequencer_retiming_box_select_exec(bContext *C, wmOperator *op);
@@ -373,13 +373,13 @@ void sequencer_retiming_keys_draw(const TimelineDrawContext *timeline_ctx,
blender::Span<StripDrawContext> strips);
void sequencer_retiming_speed_draw(const TimelineDrawContext *timeline_ctx,
const StripDrawContext &strip_ctx);
void realize_fake_keys(const Scene *scene, Sequence *seq);
SeqRetimingKey *try_to_realize_fake_keys(const bContext *C, Sequence *seq, const int mval[2]);
SeqRetimingKey *retiming_mouseover_key_get(const bContext *C, const int mval[2], Sequence **r_seq);
int left_fake_key_frame_get(const bContext *C, const Sequence *seq);
int right_fake_key_frame_get(const bContext *C, const Sequence *seq);
void realize_fake_keys(const Scene *scene, Strip *seq);
SeqRetimingKey *try_to_realize_fake_keys(const bContext *C, Strip *seq, const int mval[2]);
SeqRetimingKey *retiming_mouseover_key_get(const bContext *C, const int mval[2], Strip **r_seq);
int left_fake_key_frame_get(const bContext *C, const Strip *seq);
int right_fake_key_frame_get(const bContext *C, const Strip *seq);
bool retiming_keys_can_be_displayed(const SpaceSeq *sseq);
rctf seq_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Sequence *seq);
rctf seq_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Strip *seq);
/* `sequencer_text_edit.cc` */
bool sequencer_text_editing_active_poll(bContext *C);
@@ -398,8 +398,8 @@ blender::int2 seq_text_cursor_offset_to_position(const TextVarsRuntime *text, in
blender::IndexRange seq_text_selection_range_get(const TextVars *data);
/* `sequencer_timeline_draw.cc` */
blender::Vector<Sequence *> sequencer_visible_strips_get(const bContext *C);
blender::Vector<Sequence *> sequencer_visible_strips_get(const Scene *scene, const View2D *v2d);
blender::Vector<Strip *> sequencer_visible_strips_get(const bContext *C);
blender::Vector<Strip *> sequencer_visible_strips_get(const Scene *scene, const View2D *v2d);
/* `sequencer_clipboard.cc` */
int sequencer_clipboard_copy_exec(bContext *C, wmOperator *op);
@@ -36,7 +36,7 @@
static int strip_modifier_add_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
int type = RNA_enum_get(op->ptr, "type");
SEQ_modifier_new(seq, nullptr, type);
@@ -57,7 +57,7 @@ static const EnumPropertyItem *filter_modifiers_by_sequence_type_itemf(bContext
}
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq) {
if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM)) {
return rna_enum_sequence_sound_modifier_type_items;
@@ -97,7 +97,7 @@ void SEQUENCER_OT_strip_modifier_add(wmOperatorType *ot)
static int strip_modifier_remove_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
char name[MAX_NAME];
SequenceModifierData *smd;
@@ -157,7 +157,7 @@ enum {
static int strip_modifier_move_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
char name[MAX_NAME];
int direction;
SequenceModifierData *smd;
@@ -239,7 +239,7 @@ static int strip_modifier_copy_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = scene->ed;
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
const int type = RNA_enum_get(op->ptr, "type");
if (!seq || !seq->modifiers.first) {
@@ -248,7 +248,7 @@ static int strip_modifier_copy_exec(bContext *C, wmOperator *op)
int isSound = ELEM(seq->type, SEQ_TYPE_SOUND_RAM);
LISTBASE_FOREACH (Sequence *, seq_iter, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq_iter, SEQ_active_seqbase_get(ed)) {
if (seq_iter->flag & SELECT) {
if (seq_iter == seq) {
continue;
@@ -329,7 +329,7 @@ void SEQUENCER_OT_strip_modifier_copy(wmOperatorType *ot)
static int strip_modifier_equalizer_redefine_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
SequenceModifierData *smd;
char name[MAX_NAME];
RNA_string_get(op->ptr, "name", name);
@@ -178,7 +178,7 @@ static void preview_endjob(void *data)
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, pj->scene);
}
void sequencer_preview_add_sound(const bContext *C, const Sequence *seq)
void sequencer_preview_add_sound(const bContext *C, const Strip *seq)
{
wmJob *wm_job;
PreviewJob *pj;
@@ -73,14 +73,14 @@
#include "sequencer_quads_batch.hh"
#include "sequencer_scopes.hh"
static Sequence *special_seq_update = nullptr;
static Strip *special_seq_update = nullptr;
void sequencer_special_update_set(Sequence *seq)
void sequencer_special_update_set(Strip *seq)
{
special_seq_update = seq;
}
Sequence *ED_sequencer_special_preview_get()
Strip *ED_sequencer_special_preview_get()
{
return special_seq_update;
}
@@ -90,7 +90,7 @@ void ED_sequencer_special_preview_set(bContext *C, const int mval[2])
Scene *scene = CTX_data_scene(C);
ARegion *region = CTX_wm_region(C);
eSeqHandle hand_dummy;
Sequence *seq = find_nearest_seq(scene, &region->v2d, mval, &hand_dummy);
Strip *seq = find_nearest_seq(scene, &region->v2d, mval, &hand_dummy);
sequencer_special_update_set(seq);
}
@@ -980,7 +980,7 @@ static bool sequencer_calc_scopes(Scene *scene, SpaceSeq *sseq, ImBuf *ibuf, boo
bool sequencer_draw_get_transform_preview(SpaceSeq *sseq, Scene *scene)
{
Sequence *last_seq = SEQ_select_active_get(scene);
Strip *last_seq = SEQ_select_active_get(scene);
if (last_seq == nullptr) {
return false;
}
@@ -992,7 +992,7 @@ bool sequencer_draw_get_transform_preview(SpaceSeq *sseq, Scene *scene)
int sequencer_draw_get_transform_preview_frame(Scene *scene)
{
Sequence *last_seq = SEQ_select_active_get(scene);
Strip *last_seq = SEQ_select_active_get(scene);
/* #sequencer_draw_get_transform_preview must already have been called. */
BLI_assert(last_seq != nullptr);
int preview_frame;
@@ -1007,7 +1007,7 @@ int sequencer_draw_get_transform_preview_frame(Scene *scene)
return preview_frame;
}
static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq, bool is_active_seq)
static void seq_draw_image_origin_and_outline(const bContext *C, Strip *seq, bool is_active_seq)
{
SpaceSeq *sseq = CTX_wm_space_seq(C);
const ARegion *region = CTX_wm_region(C);
@@ -1080,7 +1080,7 @@ static void seq_draw_image_origin_and_outline(const bContext *C, Sequence *seq,
GPU_line_smooth(false);
}
static void text_selection_draw(const bContext *C, const Sequence *seq, uint pos)
static void text_selection_draw(const bContext *C, const Strip *seq, uint pos)
{
const TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
@@ -1150,7 +1150,7 @@ static blender::float2 coords_region_view_align(const View2D *v2d, const blender
return coords_region_aligned;
}
static void text_edit_draw_cursor(const bContext *C, const Sequence *seq, uint pos)
static void text_edit_draw_cursor(const bContext *C, const Strip *seq, uint pos)
{
const TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
@@ -1198,7 +1198,7 @@ static void text_edit_draw_cursor(const bContext *C, const Sequence *seq, uint p
immEnd();
}
static void text_edit_draw_box(const bContext *C, const Sequence *seq, uint pos)
static void text_edit_draw_box(const bContext *C, const Strip *seq, uint pos)
{
const TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
@@ -1240,7 +1240,7 @@ static void text_edit_draw(const bContext *C)
if (!sequencer_text_editing_active_poll(const_cast<bContext *>(C))) {
return;
}
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
if (!SEQ_effects_can_render_text(seq)) {
return;
}
@@ -1344,8 +1344,8 @@ void sequencer_draw_preview(const bContext *C,
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, ed->seqbasep, timeline_frame, 0);
Sequence *active_seq = SEQ_select_active_get(scene);
for (Sequence *seq : strips) {
Strip *active_seq = SEQ_select_active_get(scene);
for (Strip *seq : strips) {
seq_draw_image_origin_and_outline(C, seq, seq == active_seq);
text_edit_draw(C);
}
@@ -53,7 +53,7 @@ static void seq_proxy_build_job(const bContext *C, ReportList *reports)
blender::Set<std::string> processed_paths;
bool selected = false; /* Check for no selected strips */
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (!ELEM(seq->type, SEQ_TYPE_MOVIE, SEQ_TYPE_IMAGE) || (seq->flag & SELECT) == 0) {
continue;
}
@@ -109,7 +109,7 @@ static int sequencer_rebuild_proxy_exec(bContext *C, wmOperator * /*o*/)
blender::Set<std::string> processed_paths;
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (seq->flag & SELECT) {
ListBase queue = {nullptr, nullptr};
@@ -170,7 +170,7 @@ static int sequencer_enable_proxies_exec(bContext *C, wmOperator *op)
turnon = false;
}
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if (seq->flag & SELECT) {
if (ELEM(seq->type, SEQ_TYPE_MOVIE, SEQ_TYPE_IMAGE)) {
SEQ_proxy_set(seq, turnon);
@@ -56,7 +56,7 @@ bool sequencer_retiming_mode_is_active(const bContext *C)
static void sequencer_retiming_data_show_selection(ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if ((seq->flag & SELECT) == 0) {
continue;
}
@@ -69,7 +69,7 @@ static void sequencer_retiming_data_show_selection(ListBase *seqbase)
static void sequencer_retiming_data_hide_selection(ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if ((seq->flag & SELECT) == 0) {
continue;
}
@@ -82,7 +82,7 @@ static void sequencer_retiming_data_hide_selection(ListBase *seqbase)
static void sequencer_retiming_data_hide_all(ListBase *seqbase)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
seq->flag &= ~SEQ_SHOW_RETIMING;
}
}
@@ -91,7 +91,7 @@ static int sequencer_retiming_data_show_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
Sequence *seq_act = SEQ_select_active_get(scene);
Strip *seq_act = SEQ_select_active_get(scene);
if (seq_act == nullptr) {
return OPERATOR_CANCELLED;
@@ -134,7 +134,7 @@ static bool retiming_poll(bContext *C)
if (ed == nullptr) {
return false;
}
Sequence *seq = ed->act_seq;
Strip *seq = ed->act_seq;
if (seq == nullptr) {
return false;
}
@@ -154,7 +154,7 @@ static int sequencer_retiming_reset_exec(bContext *C, wmOperator * /*op*/)
Scene *scene = CTX_data_scene(C);
const Editing *ed = SEQ_editing_get(scene);
for (Sequence *seq : SEQ_query_selected_strips(ed->seqbasep)) {
for (Strip *seq : SEQ_query_selected_strips(ed->seqbasep)) {
SEQ_retiming_reset(scene, seq);
}
@@ -179,7 +179,7 @@ void SEQUENCER_OT_retiming_reset(wmOperatorType *ot)
/** \} */
static SeqRetimingKey *ensure_left_and_right_keys(const bContext *C, Sequence *seq)
static SeqRetimingKey *ensure_left_and_right_keys(const bContext *C, Strip *seq)
{
Scene *scene = CTX_data_scene(C);
SEQ_retiming_data_ensure(seq);
@@ -193,7 +193,7 @@ static SeqRetimingKey *ensure_left_and_right_keys(const bContext *C, Sequence *s
static bool retiming_key_add_new_for_seq(bContext *C,
wmOperator *op,
Sequence *seq,
Strip *seq,
const int timeline_frame)
{
Scene *scene = CTX_data_scene(C);
@@ -218,12 +218,12 @@ static bool retiming_key_add_new_for_seq(bContext *C,
static int retiming_key_add_from_selection(bContext *C,
wmOperator *op,
blender::Span<Sequence *> strips,
blender::Span<Strip *> strips,
const int timeline_frame)
{
bool inserted = false;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (!SEQ_retiming_is_allowed(seq)) {
continue;
}
@@ -246,7 +246,7 @@ static int retiming_key_add_to_editable_strips(bContext *C,
return OPERATOR_CANCELLED;
}
for (Sequence *seq : selection.values()) {
for (Strip *seq : selection.values()) {
inserted |= retiming_key_add_new_for_seq(C, op, seq, timeline_frame);
}
@@ -266,7 +266,7 @@ static int sequencer_retiming_key_add_exec(bContext *C, wmOperator *op)
}
int ret_val;
blender::VectorSet<Sequence *> strips = ED_sequencer_selected_strips_from_context(C);
blender::VectorSet<Strip *> strips = ED_sequencer_selected_strips_from_context(C);
if (!strips.is_empty()) {
ret_val = retiming_key_add_from_selection(C, op, strips, timeline_frame);
}
@@ -311,7 +311,7 @@ void SEQUENCER_OT_retiming_key_add(wmOperatorType *ot)
static bool freeze_frame_add_new_for_seq(const bContext *C,
const wmOperator *op,
Sequence *seq,
Strip *seq,
const int timeline_frame,
const int duration)
{
@@ -350,12 +350,12 @@ static bool freeze_frame_add_from_strip_selection(bContext *C,
const int duration)
{
Scene *scene = CTX_data_scene(C);
blender::VectorSet<Sequence *> strips = ED_sequencer_selected_strips_from_context(C);
strips.remove_if([&](Sequence *seq) { return !SEQ_retiming_is_allowed(seq); });
blender::VectorSet<Strip *> strips = ED_sequencer_selected_strips_from_context(C);
strips.remove_if([&](Strip *seq) { return !SEQ_retiming_is_allowed(seq); });
const int timeline_frame = BKE_scene_frame_get(scene);
bool success = false;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
success |= freeze_frame_add_new_for_seq(C, op, seq, timeline_frame, duration);
SEQ_relations_invalidate_cache_raw(scene, seq);
}
@@ -436,7 +436,7 @@ void SEQUENCER_OT_retiming_freeze_frame_add(wmOperatorType *ot)
static bool transition_add_new_for_seq(const bContext *C,
const wmOperator *op,
Sequence *seq,
Strip *seq,
const int timeline_frame,
const int duration)
{
@@ -546,17 +546,17 @@ static int sequencer_retiming_key_delete_exec(bContext *C, wmOperator * /*op*/)
Scene *scene = CTX_data_scene(C);
blender::Map selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
blender::Vector<Sequence *> strips_to_handle;
blender::Vector<Strip *> strips_to_handle;
if (!sequencer_retiming_mode_is_active(C) || selection.size() == 0) {
return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
}
for (Sequence *seq : selection.values()) {
for (Strip *seq : selection.values()) {
strips_to_handle.append_non_duplicates(seq);
}
for (Sequence *seq : strips_to_handle) {
for (Strip *seq : strips_to_handle) {
blender::Vector<SeqRetimingKey *> keys_to_delete;
for (auto item : selection.items()) {
if (item.value != seq) {
@@ -568,7 +568,7 @@ static int sequencer_retiming_key_delete_exec(bContext *C, wmOperator * /*op*/)
SEQ_retiming_remove_multiple_keys(seq, keys_to_delete);
}
for (Sequence *seq : strips_to_handle) {
for (Strip *seq : strips_to_handle) {
SEQ_relations_invalidate_cache_raw(scene, seq);
}
@@ -623,9 +623,9 @@ static float strip_speed_get(bContext *C, const wmOperator * /*op*/)
{
/* Strip mode. */
if (!sequencer_retiming_mode_is_active(C)) {
blender::VectorSet<Sequence *> strips = ED_sequencer_selected_strips_from_context(C);
blender::VectorSet<Strip *> strips = ED_sequencer_selected_strips_from_context(C);
if (strips.size() == 1) {
Sequence *seq = strips[0];
Strip *seq = strips[0];
SeqRetimingKey *key = ensure_left_and_right_keys(C, seq);
return SEQ_retiming_key_speed_get(seq, key);
}
@@ -646,10 +646,10 @@ static float strip_speed_get(bContext *C, const wmOperator * /*op*/)
static int strip_speed_set_exec(bContext *C, const wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
blender::VectorSet<Sequence *> strips = ED_sequencer_selected_strips_from_context(C);
strips.remove_if([&](Sequence *seq) { return !SEQ_retiming_is_allowed(seq); });
blender::VectorSet<Strip *> strips = ED_sequencer_selected_strips_from_context(C);
strips.remove_if([&](Strip *seq) { return !SEQ_retiming_is_allowed(seq); });
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
SeqRetimingKey *key = ensure_left_and_right_keys(C, seq);
if (key == nullptr) {
@@ -672,7 +672,7 @@ static int strip_speed_set_exec(bContext *C, const wmOperator *op)
static int segment_speed_set_exec(const bContext *C,
const wmOperator *op,
blender::Map<SeqRetimingKey *, Sequence *> selection)
blender::Map<SeqRetimingKey *, Strip *> selection)
{
Scene *scene = CTX_data_scene(C);
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
@@ -789,7 +789,7 @@ static bool select_key(const Editing *ed,
static bool select_connected_keys(const Scene *scene,
const SeqRetimingKey *source,
const Sequence *source_owner)
const Strip *source_owner)
{
if (!SEQ_is_strip_connected(source_owner)) {
return false;
@@ -797,8 +797,8 @@ static bool select_connected_keys(const Scene *scene,
const int frame = SEQ_retiming_key_timeline_frame_get(scene, source_owner, source);
bool changed = false;
blender::VectorSet<Sequence *> connections = SEQ_get_connected_strips(source_owner);
for (Sequence *connection : connections) {
blender::VectorSet<Strip *> connections = SEQ_get_connected_strips(source_owner);
for (Strip *connection : connections) {
SeqRetimingKey *con_key = SEQ_retiming_key_get_by_timeline_frame(scene, connection, frame);
if (con_key) {
@@ -812,7 +812,7 @@ static bool select_connected_keys(const Scene *scene,
int sequencer_retiming_select_linked_time(bContext *C,
wmOperator *op,
SeqRetimingKey *key,
const Sequence *key_owner)
const Strip *key_owner)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
@@ -831,7 +831,7 @@ int sequencer_retiming_select_linked_time(bContext *C,
int sequencer_retiming_key_select_exec(bContext *C,
wmOperator *op,
SeqRetimingKey *key,
const Sequence *key_owner)
const Strip *key_owner)
{
if (RNA_boolean_get(op->ptr, "linked_time")) {
return sequencer_retiming_select_linked_time(C, op, key, key_owner);
@@ -867,7 +867,7 @@ int sequencer_retiming_key_select_exec(bContext *C,
return changed ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
}
static void realize_fake_keys_in_rect(bContext *C, Sequence *seq, const rctf &rectf)
static void realize_fake_keys_in_rect(bContext *C, Strip *seq, const rctf &rectf)
{
const Scene *scene = CTX_data_scene(C);
@@ -908,7 +908,7 @@ int sequencer_retiming_box_select_exec(bContext *C, wmOperator *op)
blender::Set<SeqRetimingKey *> and_keys;
for (Sequence *seq : sequencer_visible_strips_get(C)) {
for (Strip *seq : sequencer_visible_strips_get(C)) {
if (seq->machine < rectf.ymin || seq->machine > rectf.ymax) {
continue;
}
@@ -973,11 +973,11 @@ int sequencer_retiming_select_all_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
int action = RNA_enum_get(op->ptr, "action");
blender::VectorSet<Sequence *> strips = all_strips_from_context(C);
blender::VectorSet<Strip *> strips = all_strips_from_context(C);
if (action == SEL_TOGGLE) {
action = SEL_SELECT;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (!SEQ_retiming_data_is_editable(seq)) {
continue;
}
@@ -994,7 +994,7 @@ int sequencer_retiming_select_all_exec(bContext *C, wmOperator *op)
SEQ_retiming_selection_clear(SEQ_editing_get(scene));
}
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (!SEQ_retiming_data_is_editable(seq)) {
continue;
}
@@ -48,13 +48,13 @@ bool retiming_keys_can_be_displayed(const SpaceSeq *sseq)
(sseq->flag & SEQ_SHOW_OVERLAY);
}
static float strip_y_rescale(const Sequence *seq, const float y_value)
static float strip_y_rescale(const Strip *seq, const float y_value)
{
const float y_range = SEQ_STRIP_OFSTOP - SEQ_STRIP_OFSBOTTOM;
return (y_value * y_range) + seq->machine + SEQ_STRIP_OFSBOTTOM;
}
static float key_x_get(const Scene *scene, const Sequence *seq, const SeqRetimingKey *key)
static float key_x_get(const Scene *scene, const Strip *seq, const SeqRetimingKey *key)
{
if (SEQ_retiming_is_last_key(seq, key)) {
return SEQ_retiming_key_timeline_frame_get(scene, seq, key) + 1;
@@ -76,19 +76,17 @@ static float pixels_to_view_height(const bContext *C, const float height)
return height / scale_y;
}
static float strip_start_screenspace_get(const Scene *scene,
const View2D *v2d,
const Sequence *seq)
static float strip_start_screenspace_get(const Scene *scene, const View2D *v2d, const Strip *seq)
{
return UI_view2d_view_to_region_x(v2d, SEQ_time_left_handle_frame_get(scene, seq));
}
static float strip_end_screenspace_get(const Scene *scene, const View2D *v2d, const Sequence *seq)
static float strip_end_screenspace_get(const Scene *scene, const View2D *v2d, const Strip *seq)
{
return UI_view2d_view_to_region_x(v2d, SEQ_time_right_handle_frame_get(scene, seq));
}
static rctf strip_box_get(const Scene *scene, const View2D *v2d, const Sequence *seq)
static rctf strip_box_get(const Scene *scene, const View2D *v2d, const Strip *seq)
{
rctf rect;
rect.xmin = strip_start_screenspace_get(scene, v2d, seq);
@@ -101,7 +99,7 @@ static rctf strip_box_get(const Scene *scene, const View2D *v2d, const Sequence
/** Size in pixels. */
#define RETIME_KEY_MOUSEOVER_THRESHOLD (16.0f * UI_SCALE_FAC)
rctf seq_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Sequence *seq)
rctf seq_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Strip *seq)
{
rctf rect = strip_box_get(scene, v2d, seq);
rect.ymax = KEY_CENTER + KEY_SIZE / 2;
@@ -109,7 +107,7 @@ rctf seq_retiming_keys_box_get(const Scene *scene, const View2D *v2d, const Sequ
return rect;
}
int left_fake_key_frame_get(const bContext *C, const Sequence *seq)
int left_fake_key_frame_get(const bContext *C, const Strip *seq)
{
const Scene *scene = CTX_data_scene(C);
int sound_offset = SEQ_time_get_rounded_sound_offset(scene, seq);
@@ -117,7 +115,7 @@ int left_fake_key_frame_get(const bContext *C, const Sequence *seq)
return max_ii(content_start, SEQ_time_left_handle_frame_get(scene, seq));
}
int right_fake_key_frame_get(const bContext *C, const Sequence *seq)
int right_fake_key_frame_get(const bContext *C, const Strip *seq)
{
const Scene *scene = CTX_data_scene(C);
int sound_offset = SEQ_time_get_rounded_sound_offset(scene, seq);
@@ -126,7 +124,7 @@ int right_fake_key_frame_get(const bContext *C, const Sequence *seq)
}
static bool retiming_fake_key_frame_clicked(const bContext *C,
const Sequence *seq,
const Strip *seq,
const int mval[2],
int &r_frame)
{
@@ -154,14 +152,14 @@ static bool retiming_fake_key_frame_clicked(const bContext *C,
return min_ff(left_distance, right_distance) < RETIME_KEY_MOUSEOVER_THRESHOLD;
}
void realize_fake_keys(const Scene *scene, Sequence *seq)
void realize_fake_keys(const Scene *scene, Strip *seq)
{
SEQ_retiming_data_ensure(seq);
SEQ_retiming_add_key(scene, seq, SEQ_time_left_handle_frame_get(scene, seq));
SEQ_retiming_add_key(scene, seq, SEQ_time_right_handle_frame_get(scene, seq));
}
SeqRetimingKey *try_to_realize_fake_keys(const bContext *C, Sequence *seq, const int mval[2])
SeqRetimingKey *try_to_realize_fake_keys(const bContext *C, Strip *seq, const int mval[2])
{
Scene *scene = CTX_data_scene(C);
SeqRetimingKey *key = nullptr;
@@ -175,7 +173,7 @@ SeqRetimingKey *try_to_realize_fake_keys(const bContext *C, Sequence *seq, const
}
static SeqRetimingKey *mouse_over_key_get_from_strip(const bContext *C,
const Sequence *seq,
const Strip *seq,
const int mval[2])
{
const Scene *scene = CTX_data_scene(C);
@@ -204,11 +202,11 @@ static SeqRetimingKey *mouse_over_key_get_from_strip(const bContext *C,
return best_key;
}
SeqRetimingKey *retiming_mouseover_key_get(const bContext *C, const int mval[2], Sequence **r_seq)
SeqRetimingKey *retiming_mouseover_key_get(const bContext *C, const int mval[2], Strip **r_seq)
{
const Scene *scene = CTX_data_scene(C);
const View2D *v2d = UI_view2d_fromcontext(C);
for (Sequence *seq : sequencer_visible_strips_get(C)) {
for (Strip *seq : sequencer_visible_strips_get(C)) {
rctf box = seq_retiming_keys_box_get(scene, v2d, seq);
if (!BLI_rctf_isect_pt(&box, mval[0], mval[1])) {
continue;
@@ -263,7 +261,7 @@ static void retime_key_draw(const TimelineDrawContext *timeline_ctx,
{
const Scene *scene = timeline_ctx->scene;
const View2D *v2d = timeline_ctx->v2d;
Sequence *seq = strip_ctx.seq;
Strip *seq = strip_ctx.seq;
const float key_x = key_x_get(scene, seq, key);
const rctf strip_box = strip_box_get(scene, v2d, seq);
@@ -310,7 +308,7 @@ void sequencer_retiming_draw_continuity(const TimelineDrawContext *timeline_ctx,
return;
}
const Sequence *seq = strip_ctx.seq;
const Strip *seq = strip_ctx.seq;
const View2D *v2d = timeline_ctx->v2d;
const Scene *scene = timeline_ctx->scene;
const float left_handle_position = UI_view2d_view_to_region_x(v2d, strip_ctx.left_handle);
@@ -357,7 +355,7 @@ void sequencer_retiming_draw_continuity(const TimelineDrawContext *timeline_ctx,
}
}
static SeqRetimingKey fake_retiming_key_init(const Scene *scene, const Sequence *seq, int key_x)
static SeqRetimingKey fake_retiming_key_init(const Scene *scene, const Strip *seq, int key_x)
{
int sound_offset = SEQ_time_get_rounded_sound_offset(scene, seq);
SeqRetimingKey fake_key = {0};
@@ -373,7 +371,7 @@ static bool fake_keys_draw(const TimelineDrawContext *timeline_ctx,
const StripDrawContext &strip_ctx,
const KeyframeShaderBindings &sh_bindings)
{
const Sequence *seq = strip_ctx.seq;
const Strip *seq = strip_ctx.seq;
const Scene *scene = timeline_ctx->scene;
if (!SEQ_retiming_is_active(seq) && !SEQ_retiming_data_is_editable(seq)) {
@@ -468,7 +466,7 @@ void sequencer_retiming_keys_draw(const TimelineDrawContext *timeline_ctx,
/** \name Retiming Speed Label
* \{ */
static size_t label_str_get(const Sequence *seq,
static size_t label_str_get(const Strip *seq,
const SeqRetimingKey *key,
char *r_label_str,
const size_t label_str_maxncpy)
@@ -515,7 +513,7 @@ static void retime_speed_text_draw(const TimelineDrawContext *timeline_ctx,
const StripDrawContext &strip_ctx,
const SeqRetimingKey *key)
{
const Sequence *seq = strip_ctx.seq;
const Strip *seq = strip_ctx.seq;
const Scene *scene = timeline_ctx->scene;
if (SEQ_retiming_is_last_key(seq, key)) {
@@ -70,7 +70,7 @@ class MouseCoords {
}
};
blender::VectorSet<Sequence *> all_strips_from_context(bContext *C)
blender::VectorSet<Strip *> all_strips_from_context(bContext *C)
{
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
@@ -85,7 +85,7 @@ blender::VectorSet<Sequence *> all_strips_from_context(bContext *C)
return SEQ_query_all_strips(seqbase);
}
blender::VectorSet<Sequence *> ED_sequencer_selected_strips_from_context(bContext *C)
blender::VectorSet<Strip *> ED_sequencer_selected_strips_from_context(bContext *C)
{
const Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
@@ -97,16 +97,16 @@ blender::VectorSet<Sequence *> ED_sequencer_selected_strips_from_context(bContex
if (is_preview) {
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
return strips;
}
return SEQ_query_selected_strips(seqbase);
}
static void select_surrounding_handles(Scene *scene, Sequence *test) /* XXX BRING BACK */
static void select_surrounding_handles(Scene *scene, Strip *test) /* XXX BRING BACK */
{
Sequence *neighbor;
Strip *neighbor;
neighbor = find_neighboring_sequence(scene, test, SEQ_SIDE_LEFT, -1);
if (neighbor) {
@@ -134,7 +134,7 @@ static void select_active_side(
const Scene *scene, ListBase *seqbase, int sel_side, int channel, int frame)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (channel == seq->machine) {
switch (sel_side) {
case SEQ_SIDE_LEFT:
@@ -165,7 +165,7 @@ static void select_active_side_range(const Scene *scene,
const int frame_ranges[SEQ_MAX_CHANNELS],
const int frame_ignore)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (seq->machine < SEQ_MAX_CHANNELS) {
const int frame = frame_ranges[seq->machine];
if (frame == frame_ignore) {
@@ -195,14 +195,14 @@ static void select_active_side_range(const Scene *scene,
/* Used alongside `select_linked_time` helper function in SEQUENCER_OT_select. */
static void select_linked_time_seq(const Scene *scene,
const Sequence *seq_source,
const Strip *seq_source,
const eSeqHandle handle_clicked)
{
ListBase *seqbase = SEQ_active_seqbase_get(scene->ed);
int source_left = SEQ_time_left_handle_frame_get(scene, seq_source);
int source_right = SEQ_time_right_handle_frame_get(scene, seq_source);
LISTBASE_FOREACH (Sequence *, seq_dest, seqbase) {
LISTBASE_FOREACH (Strip *, seq_dest, seqbase) {
if (seq_source->machine != seq_dest->machine) {
const bool left_match = (SEQ_time_left_handle_frame_get(scene, seq_dest) == source_left);
const bool right_match = (SEQ_time_right_handle_frame_get(scene, seq_dest) == source_right);
@@ -230,7 +230,7 @@ static void select_linked_time_seq(const Scene *scene,
#if 0 /* BRING BACK */
void select_surround_from_last(Scene *scene)
{
Sequence *seq = get_last_seq(scene);
Strip *seq = get_last_seq(scene);
if (seq == nullptr) {
return;
@@ -240,7 +240,7 @@ void select_surround_from_last(Scene *scene)
}
#endif
void ED_sequencer_select_sequence_single(Scene *scene, Sequence *seq, bool deselect_all)
void ED_sequencer_select_sequence_single(Scene *scene, Strip *seq, bool deselect_all)
{
Editing *ed = SEQ_editing_get(scene);
@@ -264,7 +264,7 @@ void ED_sequencer_select_sequence_single(Scene *scene, Sequence *seq, bool desel
recurs_sel_seq(seq);
}
void seq_rectf(const Scene *scene, const Sequence *seq, rctf *r_rect)
void seq_rectf(const Scene *scene, const Strip *seq, rctf *r_rect)
{
r_rect->xmin = SEQ_time_left_handle_frame_get(scene, seq);
r_rect->xmax = SEQ_time_right_handle_frame_get(scene, seq);
@@ -272,7 +272,7 @@ void seq_rectf(const Scene *scene, const Sequence *seq, rctf *r_rect)
r_rect->ymax = seq->machine + SEQ_STRIP_OFSTOP;
}
Sequence *find_neighboring_sequence(Scene *scene, Sequence *test, int lr, int sel)
Strip *find_neighboring_sequence(Scene *scene, Strip *test, int lr, int sel)
{
/* sel: 0==unselected, 1==selected, -1==don't care. */
Editing *ed = SEQ_editing_get(scene);
@@ -284,7 +284,7 @@ Sequence *find_neighboring_sequence(Scene *scene, Sequence *test, int lr, int se
if (sel > 0) {
sel = SELECT;
}
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if ((seq != test) && (test->machine == seq->machine) &&
((sel == -1) || (sel && (seq->flag & SELECT)) || (sel == 0 && (seq->flag & SELECT) == 0)))
{
@@ -309,12 +309,12 @@ Sequence *find_neighboring_sequence(Scene *scene, Sequence *test, int lr, int se
return nullptr;
}
Sequence *find_nearest_seq(const Scene *scene,
const View2D *v2d,
const int mval[2],
eSeqHandle *r_hand)
Strip *find_nearest_seq(const Scene *scene,
const View2D *v2d,
const int mval[2],
eSeqHandle *r_hand)
{
Sequence *seq;
Strip *seq;
Editing *ed = SEQ_editing_get(scene);
float x, y;
float pixelx;
@@ -330,7 +330,7 @@ Sequence *find_nearest_seq(const Scene *scene,
UI_view2d_region_to_view(v2d, mval[0], mval[1], &x, &y);
seq = static_cast<Sequence *>(ed->seqbasep->first);
seq = static_cast<Strip *>(ed->seqbasep->first);
while (seq) {
if (seq->machine == int(y)) {
@@ -375,7 +375,7 @@ Sequence *find_nearest_seq(const Scene *scene,
return seq;
}
}
seq = static_cast<Sequence *>(seq->next);
seq = static_cast<Strip *>(seq->next);
}
return nullptr;
}
@@ -383,8 +383,8 @@ Sequence *find_nearest_seq(const Scene *scene,
#if 0
static void select_neighbor_from_last(Scene *scene, int lr)
{
Sequence *seq = SEQ_select_active_get(scene);
Sequence *neighbor;
Strip *seq = SEQ_select_active_get(scene);
Strip *neighbor;
bool changed = false;
if (seq) {
neighbor = find_neighboring_sequence(scene, seq, lr, -1);
@@ -413,10 +413,10 @@ static void select_neighbor_from_last(Scene *scene, int lr)
}
#endif
void recurs_sel_seq(Sequence *seq_meta)
void recurs_sel_seq(Strip *seq_meta)
{
Sequence *seq;
seq = static_cast<Sequence *>(seq_meta->seqbase.first);
Strip *seq;
seq = static_cast<Strip *>(seq_meta->seqbase.first);
while (seq) {
@@ -434,11 +434,11 @@ void recurs_sel_seq(Sequence *seq_meta)
recurs_sel_seq(seq);
}
seq = static_cast<Sequence *>(seq->next);
seq = static_cast<Strip *>(seq->next);
}
}
bool seq_point_image_isect(const Scene *scene, const Sequence *seq, float point_view[2])
bool seq_point_image_isect(const Scene *scene, const Strip *seq, float point_view[2])
{
float seq_image_quad[4][2];
SEQ_image_transform_final_quad_get(scene, seq, seq_image_quad);
@@ -476,7 +476,7 @@ static int sequencer_de_select_all_exec(bContext *C, wmOperator *op)
if (action == SEL_TOGGLE) {
action = SEL_SELECT;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (seq->flag & SEQ_ALLSEL) {
action = SEL_DESELECT;
break;
@@ -484,7 +484,7 @@ static int sequencer_de_select_all_exec(bContext *C, wmOperator *op)
}
}
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
switch (action) {
case SEL_SELECT:
seq->flag &= ~(SEQ_LEFTSEL + SEQ_RIGHTSEL);
@@ -543,7 +543,7 @@ static int sequencer_select_inverse_exec(bContext *C, wmOperator * /*op*/)
blender::VectorSet strips = all_strips_from_context(C);
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (seq->flag & SELECT) {
seq->flag &= ~SEQ_ALLSEL;
}
@@ -580,7 +580,7 @@ void SEQUENCER_OT_select_inverse(wmOperatorType *ot)
/** \name Select Operator
* \{ */
static void sequencer_select_set_active(Scene *scene, Sequence *seq)
static void sequencer_select_set_active(Scene *scene, Strip *seq)
{
Editing *ed = SEQ_editing_get(scene);
@@ -607,7 +607,7 @@ static void sequencer_select_side_of_frame(const bContext *C,
Editing *ed = SEQ_editing_get(scene);
const float x = UI_view2d_region_to_view_x(v2d, mval[0]);
LISTBASE_FOREACH (Sequence *, seq_iter, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq_iter, SEQ_active_seqbase_get(ed)) {
if (((x < scene->r.cfra) &&
(SEQ_time_right_handle_frame_get(scene, seq_iter) <= scene->r.cfra)) ||
((x >= scene->r.cfra) &&
@@ -638,7 +638,7 @@ static void sequencer_select_side_of_frame(const bContext *C,
}
static void sequencer_select_linked_handle(const bContext *C,
Sequence *seq,
Strip *seq,
const eSeqHandle handle_clicked)
{
Scene *scene = CTX_data_scene(C);
@@ -662,7 +662,7 @@ static void sequencer_select_linked_handle(const bContext *C,
*/
const int sel_side = (handle_clicked == SEQ_HANDLE_LEFT) ? SEQ_SIDE_LEFT : SEQ_SIDE_RIGHT;
Sequence *neighbor = find_neighboring_sequence(scene, seq, sel_side, -1);
Strip *neighbor = find_neighboring_sequence(scene, seq, sel_side, -1);
if (neighbor) {
switch (sel_side) {
case SEQ_SIDE_LEFT:
@@ -712,7 +712,7 @@ static void sequencer_select_linked_handle(const bContext *C,
/** Collect sequencer that are candidates for being selected. */
struct SeqSelect_Link {
SeqSelect_Link *next, *prev;
Sequence *seq;
Strip *seq;
/** Only use for center selection. */
float center_dist_sq;
};
@@ -752,7 +752,7 @@ static int seq_sort_for_center_select(const void *a, const void *b)
* If multiple strips are found, loop through them in order
* (depth (top-most first) or closest to mouse when `center` is true).
*/
static Sequence *seq_select_seq_from_preview(
static Strip *seq_select_seq_from_preview(
const bContext *C, const int mval[2], const bool toggle, const bool extend, const bool center)
{
Scene *scene = CTX_data_scene(C);
@@ -781,9 +781,9 @@ static Sequence *seq_select_seq_from_preview(
scene, channels, seqbase, scene->r.cfra, sseq->chanshown);
SeqSelect_Link *slink_active = nullptr;
Sequence *seq_active = SEQ_select_active_get(scene);
Strip *seq_active = SEQ_select_active_get(scene);
ListBase strips_ordered = {nullptr};
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
bool isect = false;
float center_dist_sq_test = 0.0f;
if (center) {
@@ -821,7 +821,7 @@ static Sequence *seq_select_seq_from_preview(
center ? seq_sort_for_center_select : seq_sort_for_depth_select);
SeqSelect_Link *slink_select = static_cast<SeqSelect_Link *>(strips_ordered.first);
Sequence *seq_select = nullptr;
Strip *seq_select = nullptr;
if (slink_select != nullptr) {
/* Only use special behavior for the active strip when it's selected. */
if ((center == false) && slink_active && (seq_active->flag & SELECT)) {
@@ -844,7 +844,7 @@ static Sequence *seq_select_seq_from_preview(
return seq_select;
}
bool ED_sequencer_handle_is_selected(const Sequence *seq, eSeqHandle handle)
bool ED_sequencer_handle_is_selected(const Strip *seq, eSeqHandle handle)
{
return ((handle == SEQ_HANDLE_LEFT) && (seq->flag & SEQ_LEFTSEL)) ||
((handle == SEQ_HANDLE_RIGHT) && (seq->flag & SEQ_RIGHTSEL));
@@ -873,15 +873,15 @@ static bool element_already_selected(const StripSelection &selection)
static void sequencer_select_connected_strips(const StripSelection &selection)
{
blender::VectorSet<Sequence *> sources;
blender::VectorSet<Strip *> sources;
sources.add(selection.seq1);
if (selection.seq2) {
sources.add(selection.seq2);
}
for (Sequence *source : sources) {
blender::VectorSet<Sequence *> connections = SEQ_get_connected_strips(source);
for (Sequence *connection : connections) {
for (Strip *source : sources) {
blender::VectorSet<Strip *> connections = SEQ_get_connected_strips(source);
for (Strip *connection : connections) {
/* Copy selection settings exactly for connected strips. */
connection->flag &= ~(SEQ_ALLSEL);
connection->flag |= source->flag & (SEQ_ALLSEL);
@@ -890,7 +890,7 @@ static void sequencer_select_connected_strips(const StripSelection &selection)
}
static void sequencer_select_strip_impl(const Editing *ed,
Sequence *seq,
Strip *seq,
const eSeqHandle handle_clicked,
const bool extend,
const bool deselect,
@@ -961,7 +961,7 @@ static void select_linked_time(const Scene *scene,
}
/* Similar to `sequence_handle_size_get_clamped()` but allows for larger clickable area. */
static float clickable_handle_size_get(const Scene *scene, const Sequence *seq, const View2D *v2d)
static float clickable_handle_size_get(const Scene *scene, const Strip *seq, const View2D *v2d)
{
const float pixelx = 1 / UI_view2d_scale_get_x(v2d);
const float strip_len = SEQ_time_right_handle_frame_get(scene, seq) -
@@ -969,7 +969,7 @@ static float clickable_handle_size_get(const Scene *scene, const Sequence *seq,
return min_ff(15.0f * pixelx * U.pixelsize, strip_len / 4);
}
bool ED_sequencer_can_select_handle(const Scene *scene, const Sequence *seq, const View2D *v2d)
bool ED_sequencer_can_select_handle(const Scene *scene, const Strip *seq, const View2D *v2d)
{
if (SEQ_effect_get_num_inputs(seq->type) > 0) {
return false;
@@ -996,7 +996,7 @@ bool ED_sequencer_can_select_handle(const Scene *scene, const Sequence *seq, con
}
static void strip_clickable_areas_get(const Scene *scene,
const Sequence *seq,
const Strip *seq,
const View2D *v2d,
rctf *r_body,
rctf *r_left_handle,
@@ -1014,7 +1014,7 @@ static void strip_clickable_areas_get(const Scene *scene,
BLI_rctf_pad(r_body, -handsize, 0.0f);
}
static rctf strip_clickable_area_get(const Scene *scene, const View2D *v2d, const Sequence *seq)
static rctf strip_clickable_area_get(const Scene *scene, const View2D *v2d, const Strip *seq)
{
rctf body, left, right;
strip_clickable_areas_get(scene, seq, v2d, &body, &left, &right);
@@ -1025,7 +1025,7 @@ static rctf strip_clickable_area_get(const Scene *scene, const View2D *v2d, cons
static float strip_to_frame_distance(const Scene *scene,
const View2D *v2d,
const Sequence *seq,
const Strip *seq,
float timeline_frame)
{
rctf body, left, right;
@@ -1034,14 +1034,14 @@ static float strip_to_frame_distance(const Scene *scene,
}
/* Get strips that can be selected by click. */
static blender::Vector<Sequence *> mouseover_strips_sorted_get(const Scene *scene,
const View2D *v2d,
float mouse_co[2])
static blender::Vector<Strip *> mouseover_strips_sorted_get(const Scene *scene,
const View2D *v2d,
float mouse_co[2])
{
Editing *ed = SEQ_editing_get(scene);
blender::Vector<Sequence *> strips;
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
blender::Vector<Strip *> strips;
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->machine != int(mouse_co[1])) {
continue;
}
@@ -1058,7 +1058,7 @@ static blender::Vector<Sequence *> mouseover_strips_sorted_get(const Scene *scen
strips.append(seq);
}
std::sort(strips.begin(), strips.end(), [&](const Sequence *seq1, const Sequence *seq2) {
std::sort(strips.begin(), strips.end(), [&](const Strip *seq1, const Strip *seq2) {
return strip_to_frame_distance(scene, v2d, seq1, mouse_co[0]) <
strip_to_frame_distance(scene, v2d, seq2, mouse_co[0]);
});
@@ -1066,7 +1066,7 @@ static blender::Vector<Sequence *> mouseover_strips_sorted_get(const Scene *scen
return strips;
}
static bool strips_are_adjacent(const Scene *scene, const Sequence *seq1, const Sequence *seq2)
static bool strips_are_adjacent(const Scene *scene, const Strip *seq1, const Strip *seq2)
{
const int s1_left = SEQ_time_left_handle_frame_get(scene, seq1);
const int s1_right = SEQ_time_right_handle_frame_get(scene, seq1);
@@ -1077,7 +1077,7 @@ static bool strips_are_adjacent(const Scene *scene, const Sequence *seq1, const
}
static eSeqHandle get_strip_handle_under_cursor(const Scene *scene,
const Sequence *seq,
const Strip *seq,
const View2D *v2d,
float mouse_co[2])
{
@@ -1098,7 +1098,7 @@ static eSeqHandle get_strip_handle_under_cursor(const Scene *scene,
}
static bool is_mouse_over_both_handles_of_adjacent_strips(const Scene *scene,
blender::Vector<Sequence *> strips,
blender::Vector<Strip *> strips,
const View2D *v2d,
float mouse_co[2])
{
@@ -1125,7 +1125,7 @@ StripSelection ED_sequencer_pick_strip_and_handle(const Scene *scene,
const View2D *v2d,
float mouse_co[2])
{
blender::Vector<Sequence *> strips = mouseover_strips_sorted_get(scene, v2d, mouse_co);
blender::Vector<Strip *> strips = mouseover_strips_sorted_get(scene, v2d, mouse_co);
StripSelection selection;
@@ -1172,7 +1172,7 @@ int sequencer_select_exec(bContext *C, wmOperator *op)
/* Check to see if the mouse cursor intersects with the retiming box; if so, `seq_key_owner` is
* set. If the cursor intersects with a retiming key, `key` will be set too. */
Sequence *seq_key_owner = nullptr;
Strip *seq_key_owner = nullptr;
SeqRetimingKey *key = retiming_mouseover_key_get(C, mouse_co.region, &seq_key_owner);
/* If no key was found, the mouse cursor may still intersect with a "fake key" that has not been
@@ -1191,8 +1191,8 @@ int sequencer_select_exec(bContext *C, wmOperator *op)
/* Attempt to realize any other connected strips' fake keys. */
if (SEQ_is_strip_connected(seq_key_owner)) {
const int key_frame = SEQ_retiming_key_timeline_frame_get(scene, seq_key_owner, key);
blender::VectorSet<Sequence *> connections = SEQ_get_connected_strips(seq_key_owner);
for (Sequence *connection : connections) {
blender::VectorSet<Strip *> connections = SEQ_get_connected_strips(seq_key_owner);
for (Strip *connection : connections) {
if (key_frame == left_fake_key_frame_get(C, connection) ||
key_frame == right_fake_key_frame_get(C, connection))
{
@@ -1410,7 +1410,7 @@ static int sequencer_select_handle_exec(bContext *C, wmOperator *op)
}
/* Ignore clicks on retiming keys. */
Sequence *seq_key_test = nullptr;
Strip *seq_key_test = nullptr;
SeqRetimingKey *key = retiming_mouseover_key_get(C, mouse_co.region, &seq_key_test);
if (key != nullptr) {
return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
@@ -1504,12 +1504,12 @@ static bool select_linked_internal(Scene *scene)
bool changed = false;
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if ((seq->flag & SELECT) == 0) {
continue;
}
/* Only get unselected neighbors. */
Sequence *neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, 0);
Strip *neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, 0);
if (neighbor) {
neighbor->flag |= SELECT;
recurs_sel_seq(neighbor);
@@ -1539,11 +1539,11 @@ static bool select_more_less_seq__internal(Scene *scene, bool select_more)
const int neighbor_selection_filter = select_more ? 0 : SELECT;
const int selection_filter = select_more ? SELECT : 0;
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if ((seq->flag & SELECT) != selection_filter) {
continue;
}
Sequence *neighbor = find_neighboring_sequence(
Strip *neighbor = find_neighboring_sequence(
scene, seq, SEQ_SIDE_LEFT, neighbor_selection_filter);
if (neighbor) {
BLI_gset_add(neighbors, neighbor);
@@ -1558,7 +1558,7 @@ static bool select_more_less_seq__internal(Scene *scene, bool select_more)
GSetIterator gsi;
BLI_gsetIterator_init(&gsi, neighbors);
while (!BLI_gsetIterator_done(&gsi)) {
Sequence *neighbor = static_cast<Sequence *>(BLI_gsetIterator_getKey(&gsi));
Strip *neighbor = static_cast<Strip *>(BLI_gsetIterator_getKey(&gsi));
if (select_more) {
neighbor->flag |= SELECT;
recurs_sel_seq(neighbor);
@@ -1653,7 +1653,7 @@ static int sequencer_select_linked_pick_invoke(bContext *C, wmOperator *op, cons
bool extend = RNA_boolean_get(op->ptr, "extend");
Sequence *mouse_seq;
Strip *mouse_seq;
eSeqHandle hand;
int selected;
@@ -1770,10 +1770,10 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
Editing *ed = SEQ_editing_get(scene);
int sel_side = RNA_enum_get(op->ptr, "side");
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (seq->flag & SELECT) {
Sequence *l_neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, -1);
Sequence *r_neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_RIGHT, -1);
Strip *l_neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_LEFT, -1);
Strip *r_neighbor = find_neighboring_sequence(scene, seq, SEQ_SIDE_RIGHT, -1);
switch (sel_side) {
case SEQ_SELECT_HANDLES_SIDE_LEFT:
@@ -1817,7 +1817,7 @@ static int sequencer_select_handles_exec(bContext *C, wmOperator *op)
}
}
/* Select strips */
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if ((seq->flag & SEQ_LEFTSEL) || (seq->flag & SEQ_RIGHTSEL)) {
if (!(seq->flag & SELECT)) {
seq->flag |= SELECT;
@@ -1876,7 +1876,7 @@ static int sequencer_select_side_of_frame_exec(bContext *C, wmOperator *op)
ED_sequencer_deselect_all(scene);
}
const int timeline_frame = scene->r.cfra;
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
bool test = false;
switch (side) {
case -1:
@@ -1949,7 +1949,7 @@ static int sequencer_select_side_exec(bContext *C, wmOperator *op)
copy_vn_i(frame_ranges, ARRAY_SIZE(frame_ranges), frame_init);
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (UNLIKELY(seq->machine >= SEQ_MAX_CHANNELS)) {
continue;
}
@@ -2007,9 +2007,7 @@ void SEQUENCER_OT_select_side(wmOperatorType *ot)
/** \name Box Select Operator
* \{ */
static bool seq_box_select_rect_image_isect(const Scene *scene,
const Sequence *seq,
const rctf *rect)
static bool seq_box_select_rect_image_isect(const Scene *scene, const Strip *seq, const rctf *rect)
{
float seq_image_quad[4][2];
SEQ_image_transform_final_quad_get(scene, seq, seq_image_quad);
@@ -2044,7 +2042,7 @@ static void seq_box_select_seq_from_preview(const bContext *C,
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, sseq->chanshown);
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (!seq_box_select_rect_image_isect(scene, seq, rect)) {
continue;
}
@@ -2098,7 +2096,7 @@ static int sequencer_box_select_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
rctf rq;
seq_rectf(scene, seq, &rq);
if (BLI_rctf_isect(&rq, &rectf, nullptr)) {
@@ -2287,14 +2285,14 @@ static const EnumPropertyItem sequencer_prop_select_grouped_types[] = {
#define SEQ_CHANNEL_CHECK(_seq, _chan) ELEM((_chan), 0, (_seq)->machine)
static bool select_grouped_type(blender::Span<Sequence *> strips,
static bool select_grouped_type(blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq,
Strip *actseq,
const int channel)
{
bool changed = false;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && seq->type == actseq->type) {
seq->flag |= SELECT;
changed = true;
@@ -2304,15 +2302,15 @@ static bool select_grouped_type(blender::Span<Sequence *> strips,
return changed;
}
static bool select_grouped_type_basic(blender::Span<Sequence *> strips,
static bool select_grouped_type_basic(blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq,
Strip *actseq,
const int channel)
{
bool changed = false;
const bool is_sound = SEQ_IS_SOUND(actseq);
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && (is_sound ? SEQ_IS_SOUND(seq) : !SEQ_IS_SOUND(seq))) {
seq->flag |= SELECT;
changed = true;
@@ -2322,15 +2320,15 @@ static bool select_grouped_type_basic(blender::Span<Sequence *> strips,
return changed;
}
static bool select_grouped_type_effect(blender::Span<Sequence *> strips,
static bool select_grouped_type_effect(blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq,
Strip *actseq,
const int channel)
{
bool changed = false;
const bool is_effect = SEQ_IS_EFFECT(actseq);
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && (is_effect ? SEQ_IS_EFFECT(seq) : !SEQ_IS_EFFECT(seq)))
{
seq->flag |= SELECT;
@@ -2341,9 +2339,9 @@ static bool select_grouped_type_effect(blender::Span<Sequence *> strips,
return changed;
}
static bool select_grouped_data(blender::Span<Sequence *> strips,
static bool select_grouped_data(blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq,
Strip *actseq,
const int channel)
{
bool changed = false;
@@ -2354,7 +2352,7 @@ static bool select_grouped_data(blender::Span<Sequence *> strips,
}
if (SEQ_HAS_PATH(actseq) && dirpath) {
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && SEQ_HAS_PATH(seq) && seq->data &&
STREQ(seq->data->dirpath, dirpath))
{
@@ -2365,7 +2363,7 @@ static bool select_grouped_data(blender::Span<Sequence *> strips,
}
else if (actseq->type == SEQ_TYPE_SCENE) {
Scene *sce = actseq->scene;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && seq->type == SEQ_TYPE_SCENE && seq->scene == sce) {
seq->flag |= SELECT;
changed = true;
@@ -2374,7 +2372,7 @@ static bool select_grouped_data(blender::Span<Sequence *> strips,
}
else if (actseq->type == SEQ_TYPE_MOVIECLIP) {
MovieClip *clip = actseq->clip;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && seq->type == SEQ_TYPE_MOVIECLIP && seq->clip == clip)
{
seq->flag |= SELECT;
@@ -2384,7 +2382,7 @@ static bool select_grouped_data(blender::Span<Sequence *> strips,
}
else if (actseq->type == SEQ_TYPE_MASK) {
Mask *mask = actseq->mask;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && seq->type == SEQ_TYPE_MASK && seq->mask == mask) {
seq->flag |= SELECT;
changed = true;
@@ -2395,9 +2393,9 @@ static bool select_grouped_data(blender::Span<Sequence *> strips,
return changed;
}
static bool select_grouped_effect(blender::Span<Sequence *> strips,
static bool select_grouped_effect(blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq,
Strip *actseq,
const int channel)
{
bool changed = false;
@@ -2407,7 +2405,7 @@ static bool select_grouped_effect(blender::Span<Sequence *> strips,
effects[i] = false;
}
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && (seq->type & SEQ_TYPE_EFFECT) &&
SEQ_relation_is_effect_of_strip(seq, actseq))
{
@@ -2415,7 +2413,7 @@ static bool select_grouped_effect(blender::Span<Sequence *> strips,
}
}
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_CHANNEL_CHECK(seq, channel) && effects[seq->type]) {
if (seq->seq1) {
seq->seq1->flag |= SELECT;
@@ -2431,13 +2429,13 @@ static bool select_grouped_effect(blender::Span<Sequence *> strips,
}
static bool select_grouped_time_overlap(const Scene *scene,
blender::Span<Sequence *> strips,
blender::Span<Strip *> strips,
ListBase * /*seqbase*/,
Sequence *actseq)
Strip *actseq)
{
bool changed = false;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
if (SEQ_time_left_handle_frame_get(scene, seq) <
SEQ_time_right_handle_frame_get(scene, actseq) &&
SEQ_time_right_handle_frame_get(scene, seq) >
@@ -2453,11 +2451,11 @@ static bool select_grouped_time_overlap(const Scene *scene,
/* Query strips that are in lower channel and intersect in time with seq_reference. */
static void query_lower_channel_strips(const Scene *scene,
Sequence *seq_reference,
Strip *seq_reference,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips)
blender::VectorSet<Strip *> &strips)
{
LISTBASE_FOREACH (Sequence *, seq_test, seqbase) {
LISTBASE_FOREACH (Strip *, seq_test, seqbase) {
if (seq_test->machine > seq_reference->machine) {
continue; /* Not lower channel. */
}
@@ -2475,13 +2473,13 @@ static void query_lower_channel_strips(const Scene *scene,
/* Select all strips within time range and with lower channel of initial selection. Then select
* effect chains of these strips. */
static bool select_grouped_effect_link(const Scene *scene,
blender::VectorSet<Sequence *> strips,
blender::VectorSet<Strip *> strips,
ListBase *seqbase,
Sequence * /*actseq*/,
Strip * /*actseq*/,
const int /*channel*/)
{
/* Get collection of strips. */
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
const int selected_strip_count = strips.size();
/* XXX: this uses scene as arg, so it does not work with iterator :( I had thought about this,
* but expand function is just so useful... I can just add scene and inject it I guess. */
@@ -2492,7 +2490,7 @@ static bool select_grouped_effect_link(const Scene *scene,
const bool changed = strips.size() > selected_strip_count;
/* Actual logic. */
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
seq->flag |= SELECT;
}
@@ -2507,7 +2505,7 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
Sequence *actseq = SEQ_select_active_get(scene);
Strip *actseq = SEQ_select_active_get(scene);
const bool is_preview = sequencer_view_has_preview_poll(C);
if (is_preview && !sequencer_view_preview_only_poll(C)) {
@@ -2528,7 +2526,7 @@ static int sequencer_select_grouped_exec(bContext *C, wmOperator *op)
bool changed = false;
if (!extend) {
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
seq->flag &= ~SELECT;
changed = true;
}
@@ -43,7 +43,7 @@ static bool sequencer_text_editing_poll(bContext *C)
return false;
}
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
if (seq == nullptr || seq->type != SEQ_TYPE_TEXT || !SEQ_effects_can_render_text(seq)) {
return false;
}
@@ -58,7 +58,7 @@ static bool sequencer_text_editing_poll(bContext *C)
bool sequencer_text_editing_active_poll(bContext *C)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
if (seq == nullptr || !sequencer_text_editing_poll(C)) {
return false;
}
@@ -162,7 +162,7 @@ static void delete_selected_text(TextVars *data)
static void text_editing_update(const bContext *C)
{
Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
SEQ_relations_invalidate_cache_raw(CTX_data_scene(C), seq);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, CTX_data_scene(C));
}
@@ -296,7 +296,7 @@ static int2 cursor_move_next_word(int2 cursor_position, const TextVarsRuntime *t
static int sequencer_text_cursor_move_exec(bContext *C, wmOperator *op)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
@@ -407,7 +407,7 @@ static bool text_insert(TextVars *data, const char *buf)
static int sequencer_text_insert_exec(bContext *C, wmOperator *op)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
char str[512];
@@ -470,7 +470,7 @@ static void delete_character(const seq::CharInfo character, const TextVars *data
static int sequencer_text_delete_exec(bContext *C, wmOperator *op)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
const int type = RNA_enum_get(op->ptr, "type");
@@ -526,7 +526,7 @@ void SEQUENCER_OT_text_delete(wmOperatorType *ot)
static int sequencer_text_line_break_exec(bContext *C, wmOperator * /*op*/)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
if (!text_insert(data, "\n")) {
@@ -554,7 +554,7 @@ void SEQUENCER_OT_text_line_break(wmOperatorType *ot)
static int sequencer_text_select_all(bContext *C, wmOperator * /*op*/)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
data->selection_start_offset = 0;
data->selection_end_offset = data->runtime->character_count;
@@ -579,7 +579,7 @@ void SEQUENCER_OT_text_select_all(wmOperatorType *ot)
static int sequencer_text_deselect_all(bContext *C, wmOperator * /*op*/)
{
Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
if (!text_has_selection(data)) {
@@ -611,7 +611,7 @@ void SEQUENCER_OT_text_deselect_all(wmOperatorType *ot)
static int sequencer_text_edit_mode_toggle(bContext *C, wmOperator * /*op*/)
{
Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
if (sequencer_text_editing_active_poll(C)) {
seq->flag &= ~SEQ_FLAG_TEXT_EDITING_ACTIVE;
}
@@ -660,7 +660,7 @@ static int find_closest_cursor_offset(const TextVars *data, float2 mouse_loc)
static void cursor_set_by_mouse_position(const bContext *C, const wmEvent *event)
{
const Scene *scene = CTX_data_scene(C);
const Sequence *seq = SEQ_select_active_get(scene);
const Strip *seq = SEQ_select_active_get(scene);
TextVars *data = static_cast<TextVars *>(seq->effectdata);
const View2D *v2d = UI_view2d_fromcontext(C);
@@ -685,7 +685,7 @@ static void cursor_set_by_mouse_position(const bContext *C, const wmEvent *event
static int sequencer_text_cursor_set_modal(bContext *C, wmOperator * /*op*/, const wmEvent *event)
{
const Scene *scene = CTX_data_scene(C);
const Sequence *seq = SEQ_select_active_get(scene);
const Strip *seq = SEQ_select_active_get(scene);
TextVars *data = static_cast<TextVars *>(seq->effectdata);
bool make_selection = false;
@@ -719,7 +719,7 @@ static int sequencer_text_cursor_set_modal(bContext *C, wmOperator * /*op*/, con
static int sequencer_text_cursor_set_invoke(bContext *C, wmOperator *op, const wmEvent *event)
{
const Scene *scene = CTX_data_scene(C);
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
TextVars *data = static_cast<TextVars *>(seq->effectdata);
const View2D *v2d = UI_view2d_fromcontext(C);
@@ -778,7 +778,7 @@ static void text_edit_copy(const TextVars *data)
static int sequencer_text_edit_copy_exec(bContext *C, wmOperator * /*op*/)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
const TextVars *data = static_cast<TextVars *>(seq->effectdata);
if (!text_has_selection(data)) {
@@ -807,7 +807,7 @@ void SEQUENCER_OT_text_edit_copy(wmOperatorType *ot)
static int sequencer_text_edit_paste_exec(bContext *C, wmOperator * /*op*/)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
const TextVarsRuntime *text = data->runtime;
delete_selected_text(data);
@@ -853,7 +853,7 @@ void SEQUENCER_OT_text_edit_paste(wmOperatorType *ot)
static int sequencer_text_edit_cut_exec(bContext *C, wmOperator * /*op*/)
{
const Sequence *seq = SEQ_select_active_get(CTX_data_scene(C));
const Strip *seq = SEQ_select_active_get(CTX_data_scene(C));
TextVars *data = static_cast<TextVars *>(seq->effectdata);
if (!text_has_selection(data)) {
@@ -47,7 +47,7 @@ struct SeqThumbInfo {
bool is_muted;
};
static float thumb_calc_first_timeline_frame(const Sequence *seq,
static float thumb_calc_first_timeline_frame(const Strip *seq,
float left_handle,
float frame_step,
const rctf *view_area)
@@ -63,7 +63,7 @@ static float thumb_calc_first_timeline_frame(const Sequence *seq,
return seq->start + aligned_frame_offset;
}
static float thumb_calc_next_timeline_frame(const Sequence *seq,
static float thumb_calc_next_timeline_frame(const Strip *seq,
float left_handle,
float last_frame,
float frame_step)
@@ -78,7 +78,7 @@ static float thumb_calc_next_timeline_frame(const Sequence *seq,
return next_frame;
}
static void seq_get_thumb_image_dimensions(const Sequence *seq,
static void seq_get_thumb_image_dimensions(const Strip *seq,
float pixelx,
float pixely,
float *r_thumb_width,
@@ -79,17 +79,17 @@ constexpr int MUTE_ALPHA = 120;
constexpr float ICON_SIZE = 12.0f;
Vector<Sequence *> sequencer_visible_strips_get(const bContext *C)
Vector<Strip *> sequencer_visible_strips_get(const bContext *C)
{
return sequencer_visible_strips_get(CTX_data_scene(C), UI_view2d_fromcontext(C));
}
Vector<Sequence *> sequencer_visible_strips_get(const Scene *scene, const View2D *v2d)
Vector<Strip *> sequencer_visible_strips_get(const Scene *scene, const View2D *v2d)
{
const Editing *ed = SEQ_editing_get(scene);
Vector<Sequence *> strips;
Vector<Strip *> strips;
LISTBASE_FOREACH (Sequence *, seq, ed->seqbasep) {
LISTBASE_FOREACH (Strip *, seq, ed->seqbasep) {
if (min_ii(SEQ_time_left_handle_frame_get(scene, seq), SEQ_time_start_frame_get(seq)) >
v2d->cur.xmax)
{
@@ -137,7 +137,7 @@ static TimelineDrawContext timeline_draw_context_get(const bContext *C, SeqQuads
return ctx;
}
static bool seq_draw_waveforms_poll(const SpaceSeq *sseq, const Sequence *seq)
static bool seq_draw_waveforms_poll(const SpaceSeq *sseq, const Strip *seq)
{
const bool strip_is_valid = seq->type == SEQ_TYPE_SOUND_RAM && seq->sound != nullptr;
const bool overlays_enabled = (sseq->flag & SEQ_SHOW_OVERLAY) != 0;
@@ -201,7 +201,7 @@ static void strip_draw_context_set_retiming_overlay_visibility(TimelineDrawConte
strip_ctx->can_draw_retiming_overlay &= retiming_keys_can_be_displayed(ctx->sseq);
}
static StripDrawContext strip_draw_context_get(TimelineDrawContext *ctx, Sequence *seq)
static StripDrawContext strip_draw_context_get(TimelineDrawContext *ctx, Strip *seq)
{
using namespace seq;
StripDrawContext strip_ctx;
@@ -245,7 +245,7 @@ static StripDrawContext strip_draw_context_get(TimelineDrawContext *ctx, Sequenc
strip_ctx.is_connected = SEQ_is_strip_connected(seq);
if (seq->type == SEQ_TYPE_META) {
const ListBase *seqbase = &seq->seqbase;
LISTBASE_FOREACH (const Sequence *, sub, seqbase) {
LISTBASE_FOREACH (const Strip *, sub, seqbase) {
if (!SEQ_sequence_has_valid_data(sub)) {
strip_ctx.missing_data_block = true;
}
@@ -281,7 +281,7 @@ static void strip_draw_context_curve_get(const TimelineDrawContext *ctx,
if (showing_curve_overlay || showing_waveform) {
const char *prop_name = strip_ctx.seq->type == SEQ_TYPE_SOUND_RAM ? "volume" : "blend_alpha";
strip_ctx.curve = id_data_find_fcurve(
&ctx->scene->id, strip_ctx.seq, &RNA_Sequence, prop_name, 0, nullptr);
&ctx->scene->id, strip_ctx.seq, &RNA_Strip, prop_name, 0, nullptr);
if (strip_ctx.curve && BKE_fcurve_is_empty(strip_ctx.curve)) {
strip_ctx.curve = nullptr;
}
@@ -289,7 +289,7 @@ static void strip_draw_context_curve_get(const TimelineDrawContext *ctx,
}
static void color3ubv_from_seq(const Scene *curscene,
const Sequence *seq,
const Strip *seq,
const bool show_strip_color_tag,
const bool is_muted,
uchar r_col[3])
@@ -439,7 +439,7 @@ static void color3ubv_from_seq(const Scene *curscene,
UI_Theme_Restore(&theme_state);
}
static void waveform_job_start_if_needed(const bContext *C, const Sequence *seq)
static void waveform_job_start_if_needed(const bContext *C, const Strip *seq)
{
bSound *sound = seq->sound;
@@ -475,7 +475,7 @@ static void draw_seq_waveform_overlay(TimelineDrawContext *timeline_ctx,
const View2D *v2d = timeline_ctx->v2d;
Scene *scene = timeline_ctx->scene;
Sequence *seq = strip_ctx->seq;
Strip *seq = strip_ctx->seq;
const bool half_style = (timeline_ctx->sseq->timeline_overlay.flag &
SEQ_TIMELINE_WAVEFORMS_HALF) != 0;
@@ -626,7 +626,7 @@ static void drawmeta_contents(TimelineDrawContext *timeline_ctx,
float corner_radius)
{
using namespace seq;
Sequence *seq_meta = strip_ctx->seq;
Strip *seq_meta = strip_ctx->seq;
if (!strip_ctx->can_draw_strip_content || (timeline_ctx->sseq->flag & SEQ_SHOW_OVERLAY) == 0) {
return;
}
@@ -671,7 +671,7 @@ static void drawmeta_contents(TimelineDrawContext *timeline_ctx,
offset = 0;
}
LISTBASE_FOREACH (Sequence *, seq, meta_seqbase) {
LISTBASE_FOREACH (Strip *, seq, meta_seqbase) {
chan_min = min_ii(chan_min, seq->machine);
chan_max = max_ii(chan_max, seq->machine);
}
@@ -685,7 +685,7 @@ static void drawmeta_contents(TimelineDrawContext *timeline_ctx,
const float meta_x2 = strip_ctx->right_handle;
/* Draw only immediate children (1 level depth). */
LISTBASE_FOREACH (Sequence *, seq, meta_seqbase) {
LISTBASE_FOREACH (Strip *, seq, meta_seqbase) {
float x1_chan = SEQ_time_left_handle_frame_get(scene, seq) + offset;
float x2_chan = SEQ_time_right_handle_frame_get(scene, seq) + offset;
if (x1_chan <= meta_x2 && x2_chan >= meta_x1) {
@@ -771,7 +771,7 @@ static void draw_handle_transform_text(const TimelineDrawContext *timeline_ctx,
UI_view2d_text_cache_add(timeline_ctx->v2d, text_x, text_y, numstr, numstr_len, col);
}
float sequence_handle_size_get_clamped(const Scene *scene, Sequence *seq, const float pixelx)
float sequence_handle_size_get_clamped(const Scene *scene, Strip *seq, const float pixelx)
{
const bool use_thin_handle = (U.sequencer_editor_flag & USER_SEQ_ED_SIMPLE_TWEAKING) != 0;
const float handle_size = use_thin_handle ? 5.0f : 8.0f;
@@ -784,7 +784,7 @@ float sequence_handle_size_get_clamped(const Scene *scene, Sequence *seq, const
4.0f));
}
static const char *draw_seq_text_get_name(const Sequence *seq)
static const char *draw_seq_text_get_name(const Strip *seq)
{
const char *name = seq->name + 2;
if (name[0] == '\0') {
@@ -793,7 +793,7 @@ static const char *draw_seq_text_get_name(const Sequence *seq)
return name;
}
static void draw_seq_text_get_source(const Sequence *seq, char *r_source, size_t source_maxncpy)
static void draw_seq_text_get_source(const Strip *seq, char *r_source, size_t source_maxncpy)
{
*r_source = '\0';
@@ -854,7 +854,7 @@ static size_t draw_seq_text_get_overlay_string(TimelineDrawContext *timeline_ctx
char *r_overlay_string,
size_t overlay_string_len)
{
const Sequence *seq = strip_ctx->seq;
const Strip *seq = strip_ctx->seq;
const char *text_sep = " | ";
const char *text_array[5];
@@ -891,7 +891,7 @@ static size_t draw_seq_text_get_overlay_string(TimelineDrawContext *timeline_ctx
static void get_strip_text_color(const StripDrawContext *strip, uchar r_col[4])
{
const Sequence *seq = strip->seq;
const Strip *seq = strip->seq;
const bool active_or_selected = (seq->flag & SELECT) || strip->is_active_strip;
/* Text: white when selected/active, black otherwise. */
@@ -1066,7 +1066,7 @@ static void draw_seq_text_overlay(TimelineDrawContext *timeline_ctx,
static void draw_strip_offsets(TimelineDrawContext *timeline_ctx,
const StripDrawContext *strip_ctx)
{
const Sequence *seq = strip_ctx->seq;
const Strip *seq = strip_ctx->seq;
if ((timeline_ctx->sseq->flag & SEQ_SHOW_OVERLAY) == 0) {
return;
}
@@ -1194,7 +1194,7 @@ static void draw_seq_fcurve_overlay(TimelineDrawContext *timeline_ctx,
static void draw_multicam_highlight(TimelineDrawContext *timeline_ctx,
const StripDrawContext *strip_ctx)
{
Sequence *act_seq = SEQ_select_active_get(timeline_ctx->scene);
Strip *act_seq = SEQ_select_active_get(timeline_ctx->scene);
if (strip_ctx->seq != act_seq || act_seq == nullptr) {
return;
@@ -1255,10 +1255,10 @@ static void visible_strips_ordered_get(TimelineDrawContext *timeline_ctx,
r_bottom_layer.clear();
r_top_layer.clear();
Vector<Sequence *> strips = sequencer_visible_strips_get(timeline_ctx->C);
Vector<Strip *> strips = sequencer_visible_strips_get(timeline_ctx->C);
r_bottom_layer.reserve(strips.size());
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
StripDrawContext strip_ctx = strip_draw_context_get(timeline_ctx, seq);
if ((seq->flag & SEQ_OVERLAP) == 0) {
r_bottom_layer.append(strip_ctx);
@@ -1330,8 +1330,8 @@ static void draw_strips_background(TimelineDrawContext *timeline_ctx,
{
data.flags |= GPU_SEQ_FLAG_TRANSITION;
const Sequence *seq1 = strip.seq->seq1;
const Sequence *seq2 = strip.seq->seq2;
const Strip *seq1 = strip.seq->seq1;
const Strip *seq2 = strip.seq->seq2;
/* Left side. */
if (seq1->type == SEQ_TYPE_COLOR) {
@@ -1436,8 +1436,8 @@ static void strip_data_highlight_flags_set(const StripDrawContext &strip,
const TimelineDrawContext *timeline_ctx,
SeqStripDrawData &data)
{
const Sequence *act_seq = SEQ_select_active_get(timeline_ctx->scene);
const Sequence *special_preview = ED_sequencer_special_preview_get();
const Strip *act_seq = SEQ_select_active_get(timeline_ctx->scene);
const Strip *special_preview = ED_sequencer_special_preview_get();
/* Highlight if strip is an input of an active strip, or if the strip is solo preview. */
if (act_seq != nullptr && (act_seq->flag & SELECT) != 0) {
if (act_seq->seq1 == strip.seq || act_seq->seq2 == strip.seq) {
@@ -1685,10 +1685,7 @@ static bool draw_cache_view_init_fn(void * /*userdata*/, size_t item_count)
}
/* Called as a callback */
static bool draw_cache_view_iter_fn(void *userdata,
Sequence *seq,
int timeline_frame,
int cache_type)
static bool draw_cache_view_iter_fn(void *userdata, Strip *seq, int timeline_frame, int cache_type)
{
CacheDrawData *drawdata = static_cast<CacheDrawData *>(userdata);
const View2D *v2d = drawdata->v2d;
@@ -1748,7 +1745,7 @@ static bool draw_cache_view_iter_fn(void *userdata,
}
static void draw_cache_stripe(const Scene *scene,
const Sequence *seq,
const Strip *seq,
SeqQuadsBatch &quads,
const float stripe_bot,
const float stripe_ht,
@@ -1791,10 +1788,10 @@ static void draw_cache_background(const bContext *C, CacheDrawData *draw_data)
return;
}
Vector<Sequence *> strips = sequencer_visible_strips_get(C);
strips.remove_if([&](Sequence *seq) { return seq->type == SEQ_TYPE_SOUND_RAM; });
Vector<Strip *> strips = sequencer_visible_strips_get(C);
strips.remove_if([&](Strip *seq) { return seq->type == SEQ_TYPE_SOUND_RAM; });
for (const Sequence *seq : strips) {
for (const Strip *seq : strips) {
stripe_bot = seq->machine + SEQ_STRIP_OFSBOTTOM + draw_data->stripe_ofs_y;
if (sseq->cache_overlay.flag & SEQ_CACHE_SHOW_RAW) {
draw_cache_stripe(scene, seq, *draw_data->quads, stripe_bot, draw_data->stripe_ht, bg_raw);
@@ -290,7 +290,7 @@ void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot)
* \{ */
static void seq_view_collection_rect_preview(Scene *scene,
blender::Span<Sequence *> strips,
blender::Span<Strip *> strips,
rctf *rect)
{
float min[2], max[2];
@@ -313,7 +313,7 @@ static void seq_view_collection_rect_preview(Scene *scene,
}
static void seq_view_collection_rect_timeline(const bContext *C,
blender::Span<Sequence *> strips,
blender::Span<Strip *> strips,
rctf *rect)
{
const Scene *scene = CTX_data_scene(C);
@@ -323,7 +323,7 @@ static void seq_view_collection_rect_timeline(const bContext *C,
int ymax = 0;
int xmargin = FPS;
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
xmin = min_ii(xmin, SEQ_time_left_handle_frame_get(scene, seq));
xmax = max_ii(xmax, SEQ_time_right_handle_frame_get(scene, seq));
@@ -624,7 +624,7 @@ static void sequencer_main_region_message_subscribe(const wmRegionMessageSubscri
StructRNA *type_array[] = {
&RNA_SequenceEditor,
&RNA_Sequence,
&RNA_Strip,
/* Members of 'Sequence'. */
&RNA_SequenceCrop,
&RNA_SequenceTransform,
@@ -641,7 +641,7 @@ static void sequencer_main_region_message_subscribe(const wmRegionMessageSubscri
}
static bool is_mouse_over_retiming_key(const Scene *scene,
const Sequence *seq,
const Strip *seq,
const View2D *v2d,
const ScrArea *area,
float mouse_co_region[2])
@@ -24,7 +24,7 @@ struct TransData;
struct TransDataCurveHandleFlags;
struct TransInfo;
struct bContext;
struct Sequence;
struct Strip;
namespace blender::bke::crazyspace {
struct GeometryDeformation;
@@ -379,7 +379,7 @@ extern TransConvertTypeInfo TransConvertType_Sculpt;
extern TransConvertTypeInfo TransConvertType_Sequencer;
bool seq_transform_check_overlap(blender::Span<Sequence *> transformed_strips);
bool seq_transform_check_overlap(blender::Span<Strip *> transformed_strips);
/* `transform_convert_sequencer_image.cc` */
@@ -42,8 +42,8 @@
/** Used for sequencer transform. */
struct TransDataSeq {
Sequence *seq;
/** A copy of #Sequence.flag that may be modified for nested strips. */
Strip *seq;
/** A copy of #Strip.flag that may be modified for nested strips. */
int flag;
/** Use this so we can have transform data at the strips start,
* but apply correctly to the start frame. */
@@ -65,7 +65,7 @@ struct TransSeq {
View2DEdgePanData edge_pan;
/* Strips that aren't selected, but their position entirely depends on transformed strips. */
blender::VectorSet<Sequence *> time_dependent_strips;
blender::VectorSet<Strip *> time_dependent_strips;
};
/* -------------------------------------------------------------------- */
@@ -77,7 +77,7 @@ struct TransSeq {
*
* count and flag MUST be set.
*/
static void SeqTransInfo(TransInfo *t, Sequence *seq, int *r_count, int *r_flag)
static void SeqTransInfo(TransInfo *t, Strip *seq, int *r_count, int *r_flag)
{
Scene *scene = t->scene;
Editing *ed = SEQ_editing_get(t->scene);
@@ -151,7 +151,7 @@ static int SeqTransCount(TransInfo *t, ListBase *seqbase)
{
int tot = 0, count, flag;
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
SeqTransInfo(t, seq, &count, &flag); /* Ignore the flag. */
tot += count;
}
@@ -163,7 +163,7 @@ static TransData *SeqToTransData(Scene *scene,
TransData *td,
TransData2D *td2d,
TransDataSeq *tdsq,
Sequence *seq,
Strip *seq,
int flag,
int sel_flag)
{
@@ -231,7 +231,7 @@ static int SeqToTransData_build(
int count, flag;
int tot = 0;
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
SeqTransInfo(t, seq, &count, &flag);
@@ -267,11 +267,11 @@ static void free_transform_custom_data(TransCustomData *custom_data)
}
/* Canceled, need to update the strips display. */
static void seq_transform_cancel(TransInfo *t, blender::Span<Sequence *> transformed_strips)
static void seq_transform_cancel(TransInfo *t, blender::Span<Strip *> transformed_strips)
{
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(t->scene));
for (Sequence *seq : transformed_strips) {
for (Strip *seq : transformed_strips) {
/* Handle pre-existing overlapping strips even when operator is canceled.
* This is necessary for SEQUENCER_OT_duplicate_move macro for example. */
if (SEQ_transform_test_overlap(t->scene, seqbase, seq)) {
@@ -286,9 +286,9 @@ static ListBase *seqbase_active_get(const TransInfo *t)
return SEQ_active_seqbase_get(ed);
}
bool seq_transform_check_overlap(blender::Span<Sequence *> transformed_strips)
bool seq_transform_check_overlap(blender::Span<Strip *> transformed_strips)
{
for (Sequence *seq : transformed_strips) {
for (Strip *seq : transformed_strips) {
if (seq->flag & SEQ_OVERLAP) {
return true;
}
@@ -296,13 +296,12 @@ bool seq_transform_check_overlap(blender::Span<Sequence *> transformed_strips)
return false;
}
static blender::VectorSet<Sequence *> seq_transform_collection_from_transdata(
TransDataContainer *tc)
static blender::VectorSet<Strip *> seq_transform_collection_from_transdata(TransDataContainer *tc)
{
blender::VectorSet<Sequence *> strips;
blender::VectorSet<Strip *> strips;
TransData *td = tc->data;
for (int a = 0; a < tc->data_len; a++, td++) {
Sequence *seq = ((TransDataSeq *)td->extra)->seq;
Strip *seq = ((TransDataSeq *)td->extra)->seq;
strips.add(seq);
}
return strips;
@@ -320,7 +319,7 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
SEQ_iterator_set_expand(
t->scene, seqbase_active_get(t), transformed_strips, SEQ_query_strip_effect_chain);
for (Sequence *seq : transformed_strips) {
for (Strip *seq : transformed_strips) {
seq->flag &= ~SEQ_IGNORE_CHANNEL_LOCK;
}
@@ -344,10 +343,10 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
free_transform_custom_data(custom_data);
}
static blender::VectorSet<Sequence *> query_selected_strips_no_handles(ListBase *seqbase)
static blender::VectorSet<Strip *> query_selected_strips_no_handles(ListBase *seqbase)
{
blender::VectorSet<Sequence *> strips;
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
blender::VectorSet<Strip *> strips;
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if ((seq->flag & SELECT) != 0 && ((seq->flag & (SEQ_LEFTSEL | SEQ_RIGHTSEL)) == 0)) {
strips.add(seq);
}
@@ -360,9 +359,9 @@ enum SeqInputSide {
SEQ_INPUT_RIGHT = 1,
};
static Sequence *effect_input_get(const Scene *scene, Sequence *effect, SeqInputSide side)
static Strip *effect_input_get(const Scene *scene, Strip *effect, SeqInputSide side)
{
Sequence *input = effect->seq1;
Strip *input = effect->seq1;
if (effect->seq2 && (SEQ_time_left_handle_frame_get(scene, effect->seq2) -
SEQ_time_left_handle_frame_get(scene, effect->seq1)) *
side >
@@ -373,9 +372,9 @@ static Sequence *effect_input_get(const Scene *scene, Sequence *effect, SeqInput
return input;
}
static Sequence *effect_base_input_get(const Scene *scene, Sequence *effect, SeqInputSide side)
static Strip *effect_base_input_get(const Scene *scene, Strip *effect, SeqInputSide side)
{
Sequence *input = effect, *seq_iter = effect;
Strip *input = effect, *seq_iter = effect;
while (seq_iter != nullptr) {
input = seq_iter;
seq_iter = effect_input_get(scene, seq_iter, side);
@@ -387,8 +386,8 @@ static Sequence *effect_base_input_get(const Scene *scene, Sequence *effect, Seq
* Strips that aren't stime_dependent_stripselected, but their position entirely depends on
* transformed strips. This collection is used to offset animation.
*/
static void query_time_dependent_strips_strips(
TransInfo *t, blender::VectorSet<Sequence *> &time_dependent_strips)
static void query_time_dependent_strips_strips(TransInfo *t,
blender::VectorSet<Strip *> &time_dependent_strips)
{
ListBase *seqbase = seqbase_active_get(t);
@@ -396,7 +395,7 @@ static void query_time_dependent_strips_strips(
* If all inputs of any effect even indirectly(through another effect) points to selected strip,
* its position will change. */
blender::VectorSet<Sequence *> strips_no_handles = query_selected_strips_no_handles(seqbase);
blender::VectorSet<Strip *> strips_no_handles = query_selected_strips_no_handles(seqbase);
time_dependent_strips.add_multiple(strips_no_handles);
SEQ_iterator_set_expand(t->scene, seqbase, strips_no_handles, SEQ_query_strip_effect_chain);
@@ -405,7 +404,7 @@ static void query_time_dependent_strips_strips(
while (strip_added) {
strip_added = false;
for (Sequence *seq : strips_no_handles) {
for (Strip *seq : strips_no_handles) {
if (time_dependent_strips.contains(seq)) {
continue; /* Strip is already in collection, skip it. */
}
@@ -427,15 +426,15 @@ static void query_time_dependent_strips_strips(
blender::VectorSet selected_strips = SEQ_query_selected_strips(seqbase);
SEQ_iterator_set_expand(t->scene, seqbase, selected_strips, SEQ_query_strip_effect_chain);
for (Sequence *seq : selected_strips) {
for (Strip *seq : selected_strips) {
/* Check only 2 input effects. */
if (seq->seq1 == nullptr || seq->seq2 == nullptr) {
continue;
}
/* Find immediate base inputs(left and right side). */
Sequence *input_left = effect_base_input_get(t->scene, seq, SEQ_INPUT_LEFT);
Sequence *input_right = effect_base_input_get(t->scene, seq, SEQ_INPUT_RIGHT);
Strip *input_left = effect_base_input_get(t->scene, seq, SEQ_INPUT_LEFT);
Strip *input_right = effect_base_input_get(t->scene, seq, SEQ_INPUT_RIGHT);
if ((input_left->flag & SEQ_RIGHTSEL) != 0 && (input_right->flag & SEQ_LEFTSEL) != 0) {
time_dependent_strips.add(seq);
@@ -444,7 +443,7 @@ static void query_time_dependent_strips_strips(
/* Remove all non-effects. */
time_dependent_strips.remove_if(
[&](Sequence *seq) { return SEQ_transform_sequence_can_be_translated(seq); });
[&](Strip *seq) { return SEQ_transform_sequence_can_be_translated(seq); });
}
static void createTransSeqData(bContext * /*C*/, TransInfo *t)
@@ -508,7 +507,7 @@ static void createTransSeqData(bContext * /*C*/, TransInfo *t)
SeqToTransData_build(t, ed->seqbasep, td, td2d, tdsq);
ts->selection_channel_range_min = SEQ_MAX_CHANNELS + 1;
LISTBASE_FOREACH (Sequence *, seq, SEQ_active_seqbase_get(ed)) {
LISTBASE_FOREACH (Strip *, seq, SEQ_active_seqbase_get(ed)) {
if ((seq->flag & SELECT) != 0) {
ts->selection_channel_range_min = min_ii(ts->selection_channel_range_min, seq->machine);
ts->selection_channel_range_max = max_ii(ts->selection_channel_range_max, seq->machine);
@@ -563,7 +562,7 @@ static void flushTransSeq(TransInfo *t)
TransData *td = nullptr;
TransData2D *td2d = nullptr;
TransDataSeq *tdsq = nullptr;
Sequence *seq;
Strip *seq;
Scene *scene = t->scene;
@@ -634,7 +633,7 @@ static void flushTransSeq(TransInfo *t)
TransSeq *ts = (TransSeq *)TRANS_DATA_CONTAINER_FIRST_SINGLE(t)->custom.type.data;
/* Update animation for effects. */
for (Sequence *seq : ts->time_dependent_strips) {
for (Strip *seq : ts->time_dependent_strips) {
SEQ_offset_animdata(t->scene, seq, max_offset);
}
@@ -644,7 +643,7 @@ static void flushTransSeq(TransInfo *t)
SEQ_iterator_set_expand(
t->scene, seqbase_active_get(t), transformed_strips, SEQ_query_strip_effect_chain);
for (Sequence *seq : transformed_strips) {
for (Strip *seq : transformed_strips) {
/* Test overlap, displays red outline. */
seq->flag &= ~SEQ_OVERLAP;
if (SEQ_transform_test_overlap(scene, seqbasep, seq)) {
@@ -657,13 +656,13 @@ static void recalcData_sequencer(TransInfo *t)
{
TransData *td;
int a;
Sequence *seq_prev = nullptr;
Strip *seq_prev = nullptr;
TransDataContainer *tc = TRANS_DATA_CONTAINER_FIRST_SINGLE(t);
for (a = 0, td = tc->data; a < tc->data_len; a++, td++) {
TransDataSeq *tdsq = (TransDataSeq *)td->extra;
Sequence *seq = tdsq->seq;
Strip *seq = tdsq->seq;
if (seq != seq_prev) {
SEQ_relations_invalidate_cache_composite(t->scene, seq);
@@ -690,8 +689,8 @@ static void special_aftertrans_update__sequencer(bContext * /*C*/, TransInfo *t)
transform_mode_edge_seq_slide_use_restore_handle_selection(t))
{
TransDataContainer *tc = TRANS_DATA_CONTAINER_FIRST_SINGLE(t);
blender::VectorSet<Sequence *> strips = seq_transform_collection_from_transdata(tc);
for (Sequence *seq : strips) {
blender::VectorSet<Strip *> strips = seq_transform_collection_from_transdata(tc);
for (Strip *seq : strips) {
seq->flag &= ~(SEQ_LEFTSEL | SEQ_RIGHTSEL);
}
}
@@ -33,7 +33,7 @@
/** Used for sequencer transform. */
struct TransDataSeq {
Sequence *seq;
Strip *seq;
float orig_origin_position[2];
float orig_translation[2];
float orig_scale[2];
@@ -41,7 +41,7 @@ struct TransDataSeq {
};
static TransData *SeqToTransData(const Scene *scene,
Sequence *seq,
Strip *seq,
TransData *td,
TransData2D *td2d,
TransDataSeq *tdseq,
@@ -123,7 +123,7 @@ static void createTransSeqImageData(bContext * /*C*/, TransInfo *t)
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
t->scene, channels, seqbase, t->scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
if (strips.is_empty()) {
return;
@@ -140,7 +140,7 @@ static void createTransSeqImageData(bContext * /*C*/, TransInfo *t)
TransDataSeq *tdseq = static_cast<TransDataSeq *>(
MEM_callocN(tc->data_len * sizeof(TransDataSeq), "TransSeq TransDataSeq"));
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
/* One `Sequence` needs 3 `TransData` entries - center point placed in image origin, then 2
* points offset by 1 in X and Y direction respectively, so rotation and scale can be
* calculated from these points. */
@@ -220,7 +220,7 @@ static void recalcData_sequencer_image(TransInfo *t)
sub_v2_v2(handle_y, origin);
TransDataSeq *tdseq = static_cast<TransDataSeq *>(td->extra);
Sequence *seq = tdseq->seq;
Strip *seq = tdseq->seq;
StripTransform *transform = seq->data->transform;
float mirror[2];
SEQ_image_transform_mirror_factor_get(seq, mirror);
@@ -268,7 +268,7 @@ static void special_aftertrans_update__sequencer_image(bContext * /*C*/, TransIn
for (i = 0, td = tc->data, td2d = tc->data_2d; i < tc->data_len; i++, td++, td2d++) {
TransDataSeq *tdseq = static_cast<TransDataSeq *>(td->extra);
Sequence *seq = tdseq->seq;
Strip *seq = tdseq->seq;
StripTransform *transform = seq->data->transform;
if (t->state == TRANS_CANCEL) {
if (t->mode == TFM_ROTATION) {
@@ -28,13 +28,13 @@
/** Used for sequencer transform. */
typedef struct TransDataSeq {
Sequence *seq;
Strip *seq;
int orig_timeline_frame;
int key_index; /* Some actions may need to destroy original data, use index to access it. */
} TransDataSeq;
static TransData *SeqToTransData(const Scene *scene,
Sequence *seq,
Strip *seq,
const SeqRetimingKey *key,
TransData *td,
TransData2D *td2d,
@@ -72,19 +72,18 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *
/* Handle overlapping strips. */
blender::VectorSet<Sequence *> transformed_strips;
blender::VectorSet<Strip *> transformed_strips;
for (int i = 0; i < tc->data_len; i++) {
Sequence *seq = ((TransDataSeq *)(td + i)->extra)->seq;
Strip *seq = ((TransDataSeq *)(td + i)->extra)->seq;
transformed_strips.add(seq);
}
ListBase *seqbasep = SEQ_active_seqbase_get(ed);
SEQ_iterator_set_expand(scene, seqbasep, transformed_strips, SEQ_query_strip_effect_chain);
blender::VectorSet<Sequence *> dependant;
blender::VectorSet<Strip *> dependant;
dependant.add_multiple(transformed_strips);
dependant.remove_if(
[&](Sequence *seq) { return SEQ_transform_sequence_can_be_translated(seq); });
dependant.remove_if([&](Strip *seq) { return SEQ_transform_sequence_can_be_translated(seq); });
if (seq_transform_check_overlap(transformed_strips)) {
const bool use_sync_markers = (((SpaceSeq *)t->area->spacedata.first)->flag &
@@ -130,11 +129,11 @@ static void recalcData_sequencer_retiming(TransInfo *t)
const TransData2D *td2d = nullptr;
int i;
blender::VectorSet<Sequence *> transformed_strips;
blender::VectorSet<Strip *> transformed_strips;
for (i = 0, td = tc->data, td2d = tc->data_2d; i < tc->data_len; i++, td++, td2d++) {
const TransDataSeq *tdseq = static_cast<TransDataSeq *>(td->extra);
Sequence *seq = tdseq->seq;
Strip *seq = tdseq->seq;
transformed_strips.add(seq);
@@ -159,7 +158,7 @@ static void recalcData_sequencer_retiming(TransInfo *t)
Editing *ed = SEQ_editing_get(t->scene);
SEQ_iterator_set_expand(
t->scene, SEQ_active_seqbase_get(ed), transformed_strips, SEQ_query_strip_effect_chain);
for (Sequence *seq : transformed_strips) {
for (Strip *seq : transformed_strips) {
seq->flag &= ~SEQ_OVERLAP;
if (SEQ_transform_test_overlap(t->scene, SEQ_active_seqbase_get(ed), seq)) {
seq->flag |= SEQ_OVERLAP;
@@ -251,7 +251,7 @@ static bool gizmo2d_calc_bounds(const bContext *C, float *r_center, float *r_min
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
int selected_strips = strips.size();
if (selected_strips > 0) {
has_select = true;
@@ -303,7 +303,7 @@ static int gizmo2d_calc_transform_orientation(const bContext *C)
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
bool use_local_orient = strips.size() == 1;
@@ -326,11 +326,11 @@ static float gizmo2d_calc_rotation(const bContext *C)
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
if (strips.size() == 1) {
/* Only return the strip rotation if only one is selected. */
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
StripTransform *transform = seq->data->transform;
float mirror[2];
SEQ_image_transform_mirror_factor_get(seq, mirror);
@@ -350,11 +350,11 @@ static bool seq_get_strip_pivot_median(const Scene *scene, float r_pivot[2])
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
bool has_select = !strips.is_empty();
if (has_select) {
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
float origin[2];
SEQ_image_transform_origin_offset_pixelspace_get(scene, seq, origin);
add_v2_v2(r_pivot, origin);
@@ -388,7 +388,7 @@ static bool gizmo2d_calc_transform_pivot(const bContext *C, float r_pivot[2])
ListBase *channels = SEQ_channels_displayed_get(ed);
blender::VectorSet strips = SEQ_query_rendered_strips(
scene, channels, seqbase, scene->r.cfra, 0);
strips.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
strips.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
has_select = !strips.is_empty();
}
else if (pivot_point == V3D_AROUND_CENTER_BOUNDS) {
@@ -295,7 +295,7 @@ static void calcSpringFactor(MouseInput *mi)
}
}
static int transform_seq_slide_strip_cursor_get(const Sequence *seq)
static int transform_seq_slide_strip_cursor_get(const Strip *seq)
{
if ((seq->flag & SEQ_LEFTSEL) != 0) {
return WM_CURSOR_LEFT_HANDLE;
@@ -313,18 +313,18 @@ static int transform_seq_slide_cursor_get(TransInfo *t)
}
const Scene *scene = t->scene;
blender::VectorSet<Sequence *> strips = ED_sequencer_selected_strips_from_context(t->context);
blender::VectorSet<Strip *> strips = ED_sequencer_selected_strips_from_context(t->context);
if (strips.size() == 1) {
return transform_seq_slide_strip_cursor_get(strips[0]);
}
if (strips.size() == 2) {
Sequence *seq1 = strips[0];
Sequence *seq2 = strips[1];
Strip *seq1 = strips[0];
Strip *seq2 = strips[1];
if (SEQ_time_left_handle_frame_get(scene, seq1) > SEQ_time_left_handle_frame_get(scene, seq2))
{
SWAP(Sequence *, seq1, seq2);
SWAP(Strip *, seq1, seq2);
}
if (seq1->machine != seq2->machine) {
@@ -735,7 +735,7 @@ short transform_orientation_matrix_get(bContext *C,
if (t->spacetype == SPACE_SEQ && t->options & CTX_SEQUENCER_IMAGE) {
Scene *scene = t->scene;
Sequence *seq = SEQ_select_active_get(scene);
Strip *seq = SEQ_select_active_get(scene);
if (seq && seq->data->transform && orient_index == V3D_ORIENT_LOCAL) {
axis_angle_to_mat3_single(r_spacemtx, 'Z', seq->data->transform->rotation);
return orient_index;
@@ -47,41 +47,41 @@ struct TransSeqSnapData {
/** \name Snap sources
* \{ */
static blender::VectorSet<Sequence *> query_snap_sources_timeline(
const Scene *scene, blender::Map<SeqRetimingKey *, Sequence *> &retiming_selection)
static blender::VectorSet<Strip *> query_snap_sources_timeline(
const Scene *scene, blender::Map<SeqRetimingKey *, Strip *> &retiming_selection)
{
blender::VectorSet<Sequence *> snap_sources;
blender::VectorSet<Strip *> snap_sources;
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
snap_sources = SEQ_query_selected_strips(seqbase);
/* Add strips owned by retiming keys to exclude these from targets */
for (Sequence *seq : retiming_selection.values()) {
for (Strip *seq : retiming_selection.values()) {
snap_sources.add(seq);
}
return snap_sources;
}
static blender::VectorSet<Sequence *> query_snap_sources_preview(const Scene *scene)
static blender::VectorSet<Strip *> query_snap_sources_preview(const Scene *scene)
{
blender::VectorSet<Sequence *> snap_sources;
blender::VectorSet<Strip *> snap_sources;
Editing *ed = SEQ_editing_get(scene);
ListBase *channels = SEQ_channels_displayed_get(ed);
snap_sources = SEQ_query_rendered_strips(scene, channels, ed->seqbasep, scene->r.cfra, 0);
snap_sources.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 0; });
snap_sources.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 0; });
return snap_sources;
}
static int seq_get_snap_source_points_count_timeline(const blender::Span<Sequence *> snap_sources)
static int seq_get_snap_source_points_count_timeline(const blender::Span<Strip *> snap_sources)
{
return snap_sources.size() * 2;
}
static int seq_get_snap_source_points_count_preview(const blender::Span<Sequence *> snap_sources)
static int seq_get_snap_source_points_count_preview(const blender::Span<Strip *> snap_sources)
{
/* Source points are four corners and the center of an image quad. */
return snap_sources.size() * 5;
@@ -92,8 +92,9 @@ static int cmp_fn(const void *a, const void *b)
return round_fl_to_int((*(blender::float2 *)a)[0] - (*(blender::float2 *)b)[0]);
}
static void seq_snap_source_points_build_timeline_strips(
const Scene *scene, TransSeqSnapData *snap_data, const blender::Span<Sequence *> snap_sources)
static void seq_snap_source_points_build_timeline_strips(const Scene *scene,
TransSeqSnapData *snap_data,
const blender::Span<Strip *> snap_sources)
{
const size_t point_count_source = seq_get_snap_source_points_count_timeline(snap_sources);
@@ -103,7 +104,7 @@ static void seq_snap_source_points_build_timeline_strips(
snap_data->source_snap_points.reinitialize(point_count_source);
int i = 0;
for (Sequence *seq : snap_sources) {
for (Strip *seq : snap_sources) {
int left = 0, right = 0;
if (seq->flag & SEQ_LEFTSEL && !(seq->flag & SEQ_RIGHTSEL)) {
left = right = SEQ_time_left_handle_frame_get(scene, seq);
@@ -132,7 +133,7 @@ static void seq_snap_source_points_build_timeline_strips(
static void seq_snap_source_points_build_timeline_retiming(
const Scene *scene,
TransSeqSnapData *snap_data,
const blender::Map<SeqRetimingKey *, Sequence *> &retiming_selection)
const blender::Map<SeqRetimingKey *, Strip *> &retiming_selection)
{
const size_t point_count_source = retiming_selection.size();
@@ -156,7 +157,7 @@ static void seq_snap_source_points_build_timeline_retiming(
static bool seq_snap_source_points_build_preview(const Scene *scene,
TransSeqSnapData *snap_data,
const blender::Span<Sequence *> snap_sources)
const blender::Span<Strip *> snap_sources)
{
const size_t point_count_source = seq_get_snap_source_points_count_preview(snap_sources);
@@ -166,7 +167,7 @@ static bool seq_snap_source_points_build_preview(const Scene *scene,
snap_data->source_snap_points.reinitialize(point_count_source);
int i = 0;
for (Sequence *seq : snap_sources) {
for (Strip *seq : snap_sources) {
float seq_image_quad[4][2];
SEQ_image_transform_final_quad_get(scene, seq, seq_image_quad);
@@ -197,9 +198,9 @@ static bool seq_snap_source_points_build_preview(const Scene *scene,
/* Add effect strips directly or indirectly connected to `seq_reference` to `collection`. */
static void query_strip_effects_fn(const Scene *scene,
Sequence *seq_reference,
Strip *seq_reference,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips)
blender::VectorSet<Strip *> &strips)
{
if (strips.contains(seq_reference)) {
return; /* Strip is already in set, so all effects connected to it are as well. */
@@ -207,15 +208,15 @@ static void query_strip_effects_fn(const Scene *scene,
strips.add(seq_reference);
/* Find all strips connected to `seq_reference`. */
LISTBASE_FOREACH (Sequence *, seq_test, seqbase) {
LISTBASE_FOREACH (Strip *, seq_test, seqbase) {
if (SEQ_relation_is_effect_of_strip(seq_test, seq_reference)) {
query_strip_effects_fn(scene, seq_test, seqbase, strips);
}
}
}
static blender::VectorSet<Sequence *> query_snap_targets_timeline(
Scene *scene, const blender::Span<Sequence *> snap_sources, const bool exclude_selected)
static blender::VectorSet<Strip *> query_snap_targets_timeline(
Scene *scene, const blender::Span<Strip *> snap_sources, const bool exclude_selected)
{
Editing *ed = SEQ_editing_get(scene);
ListBase *seqbase = SEQ_active_seqbase_get(ed);
@@ -226,12 +227,12 @@ static blender::VectorSet<Sequence *> query_snap_targets_timeline(
* have to be selected. Remove such strips from `snap_targets` collection. */
blender::VectorSet effects_of_snap_sources = snap_sources;
SEQ_iterator_set_expand(scene, seqbase, effects_of_snap_sources, query_strip_effects_fn);
effects_of_snap_sources.remove_if([&](Sequence *seq) {
effects_of_snap_sources.remove_if([&](Strip *seq) {
return (seq->type & SEQ_TYPE_EFFECT) != 0 && SEQ_effect_get_num_inputs(seq->type) == 0;
});
blender::VectorSet<Sequence *> snap_targets;
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
blender::VectorSet<Strip *> snap_targets;
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (exclude_selected && seq->flag & SELECT) {
continue; /* Selected are being transformed if there is no drag and drop. */
}
@@ -251,10 +252,9 @@ static blender::VectorSet<Sequence *> query_snap_targets_timeline(
return snap_targets;
}
static blender::VectorSet<Sequence *> query_snap_targets_preview(Scene *scene,
const short snap_mode)
static blender::VectorSet<Strip *> query_snap_targets_preview(Scene *scene, const short snap_mode)
{
blender::VectorSet<Sequence *> snap_targets;
blender::VectorSet<Strip *> snap_targets;
/* We don't need to calculate strip snap targets if the option is unselected. */
if ((snap_mode & SEQ_SNAP_TO_STRIPS_PREVIEW) == 0) {
@@ -265,17 +265,17 @@ static blender::VectorSet<Sequence *> query_snap_targets_preview(Scene *scene,
ListBase *channels = SEQ_channels_displayed_get(ed);
snap_targets = SEQ_query_rendered_strips(scene, channels, ed->seqbasep, scene->r.cfra, 0);
snap_targets.remove_if([&](Sequence *seq) { return (seq->flag & SELECT) == 1; });
snap_targets.remove_if([&](Strip *seq) { return (seq->flag & SELECT) == 1; });
return snap_targets;
}
static blender::Map<SeqRetimingKey *, Sequence *> visible_retiming_keys_get(
const Scene *scene, blender::Span<Sequence *> snap_strip_targets)
static blender::Map<SeqRetimingKey *, Strip *> visible_retiming_keys_get(
const Scene *scene, blender::Span<Strip *> snap_strip_targets)
{
blender::Map<SeqRetimingKey *, Sequence *> visible_keys;
blender::Map<SeqRetimingKey *, Strip *> visible_keys;
for (Sequence *seq : snap_strip_targets) {
for (Strip *seq : snap_strip_targets) {
for (SeqRetimingKey &key : SEQ_retiming_keys_get(seq)) {
const int key_frame = SEQ_retiming_key_timeline_frame_get(scene, seq, &key);
if (SEQ_time_strip_intersects_frame(scene, seq, key_frame)) {
@@ -290,8 +290,8 @@ static blender::Map<SeqRetimingKey *, Sequence *> visible_retiming_keys_get(
static int seq_get_snap_target_points_count_timeline(
const Scene *scene,
const short snap_mode,
const blender::Span<Sequence *> snap_strip_targets,
const blender::Map<SeqRetimingKey *, Sequence *> &retiming_targets)
const blender::Span<Strip *> snap_strip_targets,
const blender::Map<SeqRetimingKey *, Strip *> &retiming_targets)
{
int count = 0;
@@ -320,7 +320,7 @@ static int seq_get_snap_target_points_count_timeline(
}
static int seq_get_snap_target_points_count_preview(const short snap_mode,
const blender::Span<Sequence *> snap_targets)
const blender::Span<Strip *> snap_targets)
{
int count = 0;
@@ -344,7 +344,7 @@ static int seq_get_snap_target_points_count_preview(const short snap_mode,
static void seq_snap_target_points_build_timeline(const Scene *scene,
const short snap_mode,
TransSeqSnapData *snap_data,
const blender::Span<Sequence *> strip_targets)
const blender::Span<Strip *> strip_targets)
{
blender::Map retiming_key_targets = visible_retiming_keys_get(scene, strip_targets);
@@ -369,7 +369,7 @@ static void seq_snap_target_points_build_timeline(const Scene *scene,
}
}
for (Sequence *seq : strip_targets) {
for (Strip *seq : strip_targets) {
snap_data->target_snap_points[i][0] = SEQ_time_left_handle_frame_get(scene, seq);
snap_data->target_snap_points[i + 1][0] = SEQ_time_right_handle_frame_get(scene, seq);
i += 2;
@@ -416,7 +416,7 @@ static bool seq_snap_target_points_build_preview(const Scene *scene,
const View2D *v2d,
const short snap_mode,
TransSeqSnapData *snap_data,
const blender::Span<Sequence *> snap_targets)
const blender::Span<Strip *> snap_targets)
{
const size_t point_count_target = seq_get_snap_target_points_count_preview(snap_mode,
@@ -446,7 +446,7 @@ static bool seq_snap_target_points_build_preview(const Scene *scene,
}
if (snap_mode & SEQ_SNAP_TO_STRIPS_PREVIEW) {
for (Sequence *seq : snap_targets) {
for (Strip *seq : snap_targets) {
float seq_image_quad[4][2];
SEQ_image_transform_final_quad_get(scene, seq, seq_image_quad);
@@ -497,9 +497,9 @@ static TransSeqSnapData *transform_snap_sequencer_data_alloc_timeline_strips(con
short snap_mode = t->tsnap.mode;
blender::Map retiming_selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
blender::VectorSet<Sequence *> snap_sources = query_snap_sources_timeline(scene,
retiming_selection);
blender::VectorSet<Sequence *> snap_targets = query_snap_targets_timeline(
blender::VectorSet<Strip *> snap_sources = query_snap_sources_timeline(scene,
retiming_selection);
blender::VectorSet<Strip *> snap_targets = query_snap_targets_timeline(
scene, snap_sources, true);
/* Build arrays of snap points. */
@@ -527,8 +527,8 @@ static TransSeqSnapData *transform_snap_sequencer_data_alloc_preview(const Trans
short snap_mode = t->tsnap.mode;
View2D *v2d = &t->region->v2d;
blender::VectorSet<Sequence *> snap_sources = query_snap_sources_preview(scene);
blender::VectorSet<Sequence *> snap_targets = query_snap_targets_preview(scene, snap_mode);
blender::VectorSet<Strip *> snap_sources = query_snap_sources_preview(scene);
blender::VectorSet<Strip *> snap_targets = query_snap_targets_preview(scene, snap_mode);
/* Build arrays of snap points. */
if (!seq_snap_source_points_build_preview(scene, snap_data, snap_sources) ||
@@ -667,9 +667,8 @@ static int transform_snap_sequencer_to_closest_strip_ex(TransInfo *t,
Scene *scene = t->scene;
TransSeqSnapData *snap_data = MEM_new<TransSeqSnapData>(__func__);
blender::VectorSet<Sequence *> empty_col;
blender::VectorSet<Sequence *> snap_targets = query_snap_targets_timeline(
scene, empty_col, false);
blender::VectorSet<Strip *> empty_col;
blender::VectorSet<Strip *> snap_targets = query_snap_targets_timeline(scene, empty_col, false);
BLI_assert(frame_1 <= frame_2);
snap_data->source_snap_points.reinitialize(2);
@@ -1285,7 +1285,7 @@ static void colormanage_check_colorspace_settings(
(void)what;
}
static bool seq_callback(Sequence *seq, void * /*user_data*/)
static bool seq_callback(Strip *seq, void * /*user_data*/)
{
if (seq->data) {
colormanage_check_colorspace_settings(&seq->data->colorspace_settings, "sequencer strip");
+1 -1
View File
@@ -363,7 +363,7 @@ enum {
LIBOVERRIDE_FLAG_SYSTEM_DEFINED = 1 << 1,
};
/* watch it: Sequence has identical beginning. */
/* watch it: Strip has identical beginning. */
/**
* ID is the first thing included in all serializable types. It
* provides a common handle to place all data in double-linked lists.
+1 -1
View File
@@ -327,7 +327,7 @@ enum {
SCE_VIEWS_FORMAT_MULTIVIEW = 1,
};
/** #ImageFormatData::views_format (also used for #Sequence::views_format). */
/** #ImageFormatData::views_format (also used for #Strip::views_format). */
enum {
R_IMF_VIEWS_INDIVIDUAL = 0,
R_IMF_VIEWS_STEREO_3D = 1,
+19 -21
View File
@@ -7,9 +7,9 @@
* Structs for use by the 'Sequencer' (Video Editor)
*
* Note on terminology
* - #Sequence: video/effect/audio data you can select and manipulate in the sequencer.
* - #Sequence.machine: Strange name for the channel.
* - #StripData: The data referenced by the #Sequence
* - #Strip: video/effect/audio data you can select and manipulate in the sequencer.
* - #Strip.machine: Strange name for the channel.
* - #StripData: The data referenced by the #Strip
* - Meta Strip (SEQ_TYPE_META): Support for nesting Sequences.
*/
@@ -44,7 +44,7 @@ typedef struct TextVarsRuntime TextVarsRuntime;
#endif
/* -------------------------------------------------------------------- */
/** \name Sequence & Editing Structs
/** \name Strip & Editing Structs
* \{ */
/* strlens; 256= FILE_MAXFILE, 768= FILE_MAXDIR */
@@ -164,11 +164,9 @@ typedef struct SequenceRuntime {
* \warning The first part identical to ID (for use in ipo's)
* the comment above is historic, probably we can drop the ID compatibility,
* but take care making this change.
*
* \warning This is really a 'Strip' in the UI!, name is highly confusing.
*/
typedef struct Sequence {
struct Sequence *next, *prev;
typedef struct Strip {
struct Strip *next, *prev;
void *_pad;
/** Needed (to be like ipo), else it will raise libdata warnings, this should never be used. */
void *lib;
@@ -231,7 +229,7 @@ typedef struct Sequence {
float speed_fader;
/* pointers for effects: */
struct Sequence *seq1, *seq2;
struct Strip *seq1, *seq2;
/* This strange padding is needed due to how `seqbasep` de-serialization is
* done right now in #scene_blend_read_data. */
@@ -301,13 +299,13 @@ typedef struct Sequence {
char _pad6[4];
SequenceRuntime runtime;
} Sequence;
} Strip;
typedef struct MetaStack {
struct MetaStack *next, *prev;
ListBase *oldbasep;
ListBase *old_channels;
Sequence *parseq;
Strip *parseq;
/* the startdisp/enddisp when entering the meta */
int disp_range[2];
} MetaStack;
@@ -321,7 +319,7 @@ typedef struct SeqTimelineChannel {
typedef struct SeqConnection {
struct SeqConnection *next, *prev;
Sequence *seq_ref;
Strip *seq_ref;
} SeqConnection;
typedef struct EditingRuntime {
@@ -342,7 +340,7 @@ typedef struct Editing {
ListBase channels; /* SeqTimelineChannel */
/* Context vars, used to be static */
Sequence *act_seq;
Strip *act_seq;
/** 1024 = FILE_MAX. */
char act_imagedir[1024];
/** 1024 = FILE_MAX. */
@@ -504,7 +502,7 @@ typedef struct ColorMixVars {
/** \} */
/* -------------------------------------------------------------------- */
/** \name Sequence Modifiers
/** \name Strip Modifiers
* \{ */
typedef struct SequenceModifierData {
@@ -517,7 +515,7 @@ typedef struct SequenceModifierData {
int mask_input_type;
int mask_time;
struct Sequence *mask_sequence;
struct Strip *mask_sequence;
struct Mask *mask_id;
} SequenceModifierData;
@@ -630,7 +628,7 @@ enum {
/* From: `DNA_object_types.h`, see it's doc-string there. */
#define SELECT 1
/** #Sequence.flag */
/** #Strip.flag */
enum {
/* `SELECT = (1 << 0)` */
SEQ_LEFTSEL = (1 << 1),
@@ -718,14 +716,14 @@ enum {
SEQ_PROXY_SKIP_EXISTING = 1,
};
/** #Sequence.alpha_mode */
/** #Strip.alpha_mode */
enum {
SEQ_ALPHA_STRAIGHT = 0,
SEQ_ALPHA_PREMUL = 1,
};
/**
* #Sequence.type
* #Strip.type
*
* \warning #SEQ_TYPE_EFFECT BIT is used to determine if this is an effect strip!
*/
@@ -834,7 +832,7 @@ enum {
};
/**
* #Sequence.cache_flag
* #Strip.cache_flag
* - #SEQ_CACHE_STORE_RAW
* - #SEQ_CACHE_STORE_PREPROCESSED
* - #SEQ_CACHE_STORE_COMPOSITE
@@ -865,7 +863,7 @@ enum {
SEQ_CACHE_DISK_CACHE_ENABLE = (1 << 11),
};
/** #Sequence.color_tag. */
/** #Strip.color_tag. */
typedef enum SequenceColorTag {
SEQUENCE_COLOR_NONE = -1,
SEQUENCE_COLOR_01,
@@ -881,7 +879,7 @@ typedef enum SequenceColorTag {
SEQUENCE_COLOR_TOT,
} SequenceColorTag;
/* Sequence->StripTransform->filter */
/* Strip->StripTransform->filter */
enum {
SEQ_TRANSFORM_FILTER_AUTO = -1,
SEQ_TRANSFORM_FILTER_NEAREST = 0,
+1 -1
View File
@@ -630,7 +630,7 @@ typedef struct SequencerTimelineOverlay {
typedef enum eSpaceSeq_SequencerTimelineOverlay_Flag {
SEQ_TIMELINE_SHOW_STRIP_OFFSETS = (1 << 1),
SEQ_TIMELINE_SHOW_THUMBNAILS = (1 << 2),
/** Use #Sequence::color_tag */
/** Use #Strip::color_tag */
SEQ_TIMELINE_SHOW_STRIP_COLOR_TAG = (1 << 3),
SEQ_TIMELINE_SHOW_STRIP_RETIMING = (1 << 4),
SEQ_TIMELINE_SHOW_FCURVES = (1 << 5),
@@ -45,6 +45,7 @@
DNA_STRUCT_RENAME(ActionChannelBag, ActionChannelbag)
DNA_STRUCT_RENAME(Lamp, Light)
DNA_STRUCT_RENAME(SeqRetimingHandle, SeqRetimingKey)
DNA_STRUCT_RENAME(Sequence, Strip)
DNA_STRUCT_RENAME(SpaceButs, SpaceProperties)
DNA_STRUCT_RENAME(SpaceIpo, SpaceGraph)
DNA_STRUCT_RENAME(SpaceOops, SpaceOutliner)
@@ -187,11 +188,11 @@ DNA_STRUCT_RENAME_MEMBER(SceneEEVEE, gtao_quality, fast_gi_quality)
DNA_STRUCT_RENAME_MEMBER(SceneEEVEE, motion_blur_position, motion_blur_position_deprecated)
DNA_STRUCT_RENAME_MEMBER(SceneEEVEE, motion_blur_shutter, motion_blur_shutter_deprecated)
DNA_STRUCT_RENAME_MEMBER(SceneEEVEE, shadow_cube_size, shadow_cube_size_deprecated)
DNA_STRUCT_RENAME_MEMBER(Sequence, retiming_handle_num, retiming_keys_num)
DNA_STRUCT_RENAME_MEMBER(Sequence, retiming_handles, retiming_keys)
DNA_STRUCT_RENAME_MEMBER(Sequence, strip, data)
DNA_STRUCT_RENAME_MEMBER(SpaceImage, pixel_snap_mode, pixel_round_mode)
DNA_STRUCT_RENAME_MEMBER(SpaceSeq, overlay_type, overlay_frame_type)
DNA_STRUCT_RENAME_MEMBER(Strip, retiming_handle_num, retiming_keys_num)
DNA_STRUCT_RENAME_MEMBER(Strip, retiming_handles, retiming_keys)
DNA_STRUCT_RENAME_MEMBER(Strip, strip, data)
DNA_STRUCT_RENAME_MEMBER(StripData, dir, dirpath)
DNA_STRUCT_RENAME_MEMBER(StripElem, name, filename)
DNA_STRUCT_RENAME_MEMBER(StripProxy, dir, dirpath)
+3 -3
View File
@@ -622,7 +622,7 @@ static const EnumPropertyItem *rna_ColorManagedColorspaceSettings_colorspace_ite
struct Seq_colorspace_cb_data {
ColorManagedColorspaceSettings *colorspace_settings;
Sequence *r_seq;
Strip *r_seq;
};
/**
@@ -630,7 +630,7 @@ struct Seq_colorspace_cb_data {
* If property pointer matches one of strip, set `r_seq`,
* so not all cached images have to be invalidated.
*/
static bool seq_find_colorspace_settings_cb(Sequence *seq, void *user_data)
static bool seq_find_colorspace_settings_cb(Strip *seq, void *user_data)
{
Seq_colorspace_cb_data *cd = (Seq_colorspace_cb_data *)user_data;
if (seq->data && &seq->data->colorspace_settings == cd->colorspace_settings) {
@@ -688,7 +688,7 @@ static void rna_ColorManagedColorspaceSettings_reload_update(Main *bmain,
else {
/* Strip colorspace was likely changed. */
SEQ_for_each_callback(&scene->ed->seqbase, seq_find_colorspace_settings_cb, &cb_data);
Sequence *seq = cb_data.r_seq;
Strip *seq = cb_data.r_seq;
if (seq) {
SEQ_relations_sequence_free_anim(seq);
+134 -139
View File
@@ -134,7 +134,7 @@ const EnumPropertyItem rna_enum_strip_color_items[] = {
# include "SEQ_edit.hh"
struct SequenceSearchData {
Sequence *seq;
Strip *seq;
void *data;
SequenceModifierData *smd;
};
@@ -146,7 +146,7 @@ static void rna_SequenceElement_update(Main * /*bmain*/, Scene * /*scene*/, Poin
if (ed) {
StripElem *se = (StripElem *)ptr->data;
Sequence *seq;
Strip *seq;
/* slow but we can't avoid! */
seq = SEQ_sequence_from_strip_elem(&ed->seqbase, se);
@@ -164,7 +164,7 @@ static void rna_Sequence_invalidate_raw_update(Main * /*bmain*/,
Editing *ed = SEQ_editing_get(scene);
if (ed) {
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
SEQ_relations_invalidate_cache_raw(scene, seq);
}
@@ -178,7 +178,7 @@ static void rna_Sequence_invalidate_preprocessed_update(Main * /*bmain*/,
Editing *ed = SEQ_editing_get(scene);
if (ed) {
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
@@ -192,7 +192,7 @@ static void UNUSED_FUNCTION(rna_Sequence_invalidate_composite_update)(Main * /*b
Editing *ed = SEQ_editing_get(scene);
if (ed) {
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
SEQ_relations_invalidate_cache_composite(scene, seq);
}
@@ -215,7 +215,7 @@ static void rna_Sequence_use_sequence(Main *bmain, Scene * /*scene*/, PointerRNA
* the only way for this currently is to tag the ID for ID_RECALC_SYNC_TO_EVAL. */
Editing *ed = SEQ_editing_get(scene);
if (ed) {
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
if (seq->scene != nullptr) {
DEG_id_tag_update(&seq->scene->id, ID_RECALC_SYNC_TO_EVAL);
}
@@ -226,9 +226,9 @@ static void rna_Sequence_use_sequence(Main *bmain, Scene * /*scene*/, PointerRNA
DEG_relations_tag_update(bmain);
}
static void add_strips_from_seqbase(const ListBase *seqbase, blender::Vector<Sequence *> &strips)
static void add_strips_from_seqbase(const ListBase *seqbase, blender::Vector<Strip *> &strips)
{
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
strips.append(seq);
if (seq->type == SEQ_TYPE_META) {
@@ -238,7 +238,7 @@ static void add_strips_from_seqbase(const ListBase *seqbase, blender::Vector<Seq
}
struct SequencesAllIterator {
blender::Vector<Sequence *> strips;
blender::Vector<Strip *> strips;
int index;
};
@@ -262,7 +262,7 @@ static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *i
iter->internal.custom = bli_iter;
bli_iter->data = seq_iter;
Sequence **seq_arr = seq_iter->strips.begin();
Strip **seq_arr = seq_iter->strips.begin();
bli_iter->current = *seq_arr;
iter->valid = bli_iter->current != nullptr;
}
@@ -273,7 +273,7 @@ static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *it
SequencesAllIterator *seq_iter = static_cast<SequencesAllIterator *>(bli_iter->data);
seq_iter->index++;
Sequence **seq_arr = seq_iter->strips.begin();
Strip **seq_arr = seq_iter->strips.begin();
bli_iter->current = *(seq_arr + seq_iter->index);
iter->valid = bli_iter->current != nullptr && seq_iter->index < seq_iter->strips.size();
@@ -281,8 +281,8 @@ static void rna_SequenceEditor_sequences_all_next(CollectionPropertyIterator *it
static PointerRNA rna_SequenceEditor_sequences_all_get(CollectionPropertyIterator *iter)
{
Sequence *seq = static_cast<Sequence *>(((BLI_Iterator *)iter->internal.custom)->current);
return rna_pointer_inherit_refine(&iter->parent, &RNA_Sequence, seq);
Strip *seq = static_cast<Strip *>(((BLI_Iterator *)iter->internal.custom)->current);
return rna_pointer_inherit_refine(&iter->parent, &RNA_Strip, seq);
}
static void rna_SequenceEditor_sequences_all_end(CollectionPropertyIterator *iter)
@@ -301,9 +301,9 @@ static bool rna_SequenceEditor_sequences_all_lookup_string(PointerRNA *ptr,
ID *id = ptr->owner_id;
Scene *scene = (Scene *)id;
Sequence *seq = SEQ_sequence_lookup_seq_by_name(scene, key);
Strip *seq = SEQ_sequence_lookup_seq_by_name(scene, key);
if (seq) {
*r_ptr = RNA_pointer_create(ptr->owner_id, &RNA_Sequence, seq);
*r_ptr = RNA_pointer_create(ptr->owner_id, &RNA_Strip, seq);
return true;
}
return false;
@@ -320,7 +320,7 @@ static void rna_SequenceEditor_update_cache(Main * /*bmain*/, Scene *scene, Poin
/* internal use */
static int rna_SequenceEditor_elements_length(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
/* Hack? copied from `sequencer.cc`, #reload_sequence_new_file(). */
size_t olen = MEM_allocN_len(seq->data->stripdata) / sizeof(StripElem);
@@ -332,7 +332,7 @@ static int rna_SequenceEditor_elements_length(PointerRNA *ptr)
static void rna_Sequence_elements_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
rna_iterator_array_begin(iter,
(void *)seq->data->stripdata,
sizeof(StripElem),
@@ -343,13 +343,13 @@ static void rna_Sequence_elements_begin(CollectionPropertyIterator *iter, Pointe
static int rna_Sequence_retiming_keys_length(PointerRNA *ptr)
{
return SEQ_retiming_keys_count((Sequence *)ptr->data);
return SEQ_retiming_keys_count((Strip *)ptr->data);
}
static void rna_SequenceEditor_retiming_keys_begin(CollectionPropertyIterator *iter,
PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
rna_iterator_array_begin(iter,
(void *)seq->retiming_keys,
sizeof(SeqRetimingKey),
@@ -358,12 +358,12 @@ static void rna_SequenceEditor_retiming_keys_begin(CollectionPropertyIterator *i
nullptr);
}
static Sequence *strip_by_key_find(Scene *scene, SeqRetimingKey *key)
static Strip *strip_by_key_find(Scene *scene, SeqRetimingKey *key)
{
Editing *ed = SEQ_editing_get(scene);
blender::VectorSet strips = SEQ_query_all_strips_recursive(&ed->seqbase);
for (Sequence *seq : strips) {
for (Strip *seq : strips) {
const int retiming_keys_count = SEQ_retiming_keys_count(seq);
SeqRetimingKey *first = seq->retiming_keys;
SeqRetimingKey *last = seq->retiming_keys + retiming_keys_count - 1;
@@ -379,7 +379,7 @@ static Sequence *strip_by_key_find(Scene *scene, SeqRetimingKey *key)
static void rna_Sequence_retiming_key_remove(ID *id, SeqRetimingKey *key)
{
Scene *scene = (Scene *)id;
Sequence *seq = strip_by_key_find(scene, key);
Strip *seq = strip_by_key_find(scene, key);
if (seq == nullptr) {
return;
@@ -395,7 +395,7 @@ static int rna_Sequence_retiming_key_frame_get(PointerRNA *ptr)
{
SeqRetimingKey *key = (SeqRetimingKey *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
Sequence *seq = strip_by_key_find(scene, key);
Strip *seq = strip_by_key_find(scene, key);
if (seq == nullptr) {
return 0;
@@ -408,7 +408,7 @@ static void rna_Sequence_retiming_key_frame_set(PointerRNA *ptr, int value)
{
SeqRetimingKey *key = (SeqRetimingKey *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
Sequence *seq = strip_by_key_find(scene, key);
Strip *seq = strip_by_key_find(scene, key);
if (seq == nullptr) {
return;
@@ -429,7 +429,7 @@ static void rna_Sequence_views_format_update(Main *bmain, Scene *scene, PointerR
rna_Sequence_invalidate_raw_update(bmain, scene, ptr);
}
static void do_sequence_frame_change_update(Scene *scene, Sequence *seq)
static void do_sequence_frame_change_update(Scene *scene, Strip *seq)
{
ListBase *seqbase = SEQ_get_seqbase_by_seq(scene, seq);
@@ -448,24 +448,24 @@ static void do_sequence_frame_change_update(Scene *scene, Sequence *seq)
static void rna_Sequence_frame_change_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
do_sequence_frame_change_update(scene, (Sequence *)ptr->data);
do_sequence_frame_change_update(scene, (Strip *)ptr->data);
}
static int rna_Sequence_frame_final_start_get(PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
return SEQ_time_left_handle_frame_get(scene, (Sequence *)ptr->data);
return SEQ_time_left_handle_frame_get(scene, (Strip *)ptr->data);
}
static int rna_Sequence_frame_final_end_get(PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
return SEQ_time_right_handle_frame_get(scene, (Sequence *)ptr->data);
return SEQ_time_right_handle_frame_get(scene, (Strip *)ptr->data);
}
static void rna_Sequence_start_frame_final_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_time_left_handle_frame_set(scene, seq, value);
@@ -475,7 +475,7 @@ static void rna_Sequence_start_frame_final_set(PointerRNA *ptr, int value)
static void rna_Sequence_end_frame_final_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_time_right_handle_frame_set(scene, seq, value);
@@ -485,7 +485,7 @@ static void rna_Sequence_end_frame_final_set(PointerRNA *ptr, int value)
static void rna_Sequence_start_frame_set(PointerRNA *ptr, float value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_transform_translate_sequence(scene, seq, value - seq->start);
@@ -495,7 +495,7 @@ static void rna_Sequence_start_frame_set(PointerRNA *ptr, float value)
static void rna_Sequence_frame_offset_start_set(PointerRNA *ptr, float value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_relations_invalidate_cache_composite(scene, seq);
@@ -504,7 +504,7 @@ static void rna_Sequence_frame_offset_start_set(PointerRNA *ptr, float value)
static void rna_Sequence_frame_offset_end_set(PointerRNA *ptr, float value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_relations_invalidate_cache_composite(scene, seq);
@@ -513,7 +513,7 @@ static void rna_Sequence_frame_offset_end_set(PointerRNA *ptr, float value)
static void rna_Sequence_anim_startofs_final_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
seq->anim_startofs = std::min(value, seq->len + seq->anim_startofs);
@@ -524,7 +524,7 @@ static void rna_Sequence_anim_startofs_final_set(PointerRNA *ptr, int value)
static void rna_Sequence_anim_endofs_final_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
seq->anim_endofs = std::min(value, seq->len + seq->anim_endofs);
@@ -536,7 +536,7 @@ static void rna_Sequence_anim_endofs_final_set(PointerRNA *ptr, int value)
static void rna_Sequence_anim_endofs_final_range(
PointerRNA *ptr, int *min, int *max, int * /*softmin*/, int * /*softmax*/)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
*min = 0;
*max = seq->len + seq->anim_endofs - seq->startofs - seq->endofs - 1;
@@ -545,7 +545,7 @@ static void rna_Sequence_anim_endofs_final_range(
static void rna_Sequence_anim_startofs_final_range(
PointerRNA *ptr, int *min, int *max, int * /*softmin*/, int * /*softmax*/)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
*min = 0;
*max = seq->len + seq->anim_startofs - seq->startofs - seq->endofs - 1;
@@ -554,7 +554,7 @@ static void rna_Sequence_anim_startofs_final_range(
static void rna_Sequence_frame_offset_start_range(
PointerRNA *ptr, float *min, float *max, float * /*softmin*/, float * /*softmax*/)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
*min = (seq->type == SEQ_TYPE_SOUND_RAM) ? 0 : INT_MIN;
*max = seq->len - seq->endofs - 1;
}
@@ -562,14 +562,14 @@ static void rna_Sequence_frame_offset_start_range(
static void rna_Sequence_frame_offset_end_range(
PointerRNA *ptr, float *min, float *max, float * /*softmin*/, float * /*softmax*/)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
*min = (seq->type == SEQ_TYPE_SOUND_RAM) ? 0 : INT_MIN;
*max = seq->len - seq->startofs - 1;
}
static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
SEQ_time_right_handle_frame_set(scene, seq, SEQ_time_left_handle_frame_get(scene, seq) + value);
@@ -579,28 +579,28 @@ static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value)
static int rna_Sequence_frame_length_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
return SEQ_time_right_handle_frame_get(scene, seq) - SEQ_time_left_handle_frame_get(scene, seq);
}
static int rna_Sequence_frame_duration_get(PointerRNA *ptr)
{
Sequence *seq = static_cast<Sequence *>(ptr->data);
Strip *seq = static_cast<Strip *>(ptr->data);
Scene *scene = reinterpret_cast<Scene *>(ptr->owner_id);
return SEQ_time_strip_length_get(scene, seq);
}
static int rna_Sequence_frame_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
/* Effect sequences' start frame and length must be readonly! */
return (SEQ_effect_get_num_inputs(seq->type)) ? PropertyFlag(0) : PROP_EDITABLE;
}
static void rna_Sequence_channel_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
Scene *scene = (Scene *)ptr->owner_id;
ListBase *seqbase = SEQ_get_seqbase_by_seq(scene, seq);
@@ -616,11 +616,11 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value)
static void rna_Sequence_use_proxy_set(PointerRNA *ptr, bool value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
SEQ_proxy_set(seq, value != 0);
}
static bool transform_seq_cmp_fn(Sequence *seq, void *arg_pt)
static bool transform_seq_cmp_fn(Strip *seq, void *arg_pt)
{
SequenceSearchData *data = static_cast<SequenceSearchData *>(arg_pt);
@@ -631,7 +631,7 @@ static bool transform_seq_cmp_fn(Sequence *seq, void *arg_pt)
return true;
}
static Sequence *sequence_get_by_transform(Editing *ed, StripTransform *transform)
static Strip *sequence_get_by_transform(Editing *ed, StripTransform *transform)
{
SequenceSearchData data;
@@ -648,7 +648,7 @@ static std::optional<std::string> rna_SequenceTransform_path(const PointerRNA *p
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_transform(ed, static_cast<StripTransform *>(ptr->data));
Strip *seq = sequence_get_by_transform(ed, static_cast<StripTransform *>(ptr->data));
if (seq) {
char name_esc[(sizeof(seq->name) - 2) * 2];
@@ -662,12 +662,12 @@ static void rna_SequenceTransform_update(Main * /*bmain*/, Scene * /*scene*/, Po
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_transform(ed, static_cast<StripTransform *>(ptr->data));
Strip *seq = sequence_get_by_transform(ed, static_cast<StripTransform *>(ptr->data));
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
static bool crop_seq_cmp_fn(Sequence *seq, void *arg_pt)
static bool crop_seq_cmp_fn(Strip *seq, void *arg_pt)
{
SequenceSearchData *data = static_cast<SequenceSearchData *>(arg_pt);
@@ -678,7 +678,7 @@ static bool crop_seq_cmp_fn(Sequence *seq, void *arg_pt)
return true;
}
static Sequence *sequence_get_by_crop(Editing *ed, StripCrop *crop)
static Strip *sequence_get_by_crop(Editing *ed, StripCrop *crop)
{
SequenceSearchData data;
@@ -695,7 +695,7 @@ static std::optional<std::string> rna_SequenceCrop_path(const PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_crop(ed, static_cast<StripCrop *>(ptr->data));
Strip *seq = sequence_get_by_crop(ed, static_cast<StripCrop *>(ptr->data));
if (seq) {
char name_esc[(sizeof(seq->name) - 2) * 2];
@@ -709,7 +709,7 @@ static void rna_SequenceCrop_update(Main * /*bmain*/, Scene * /*scene*/, Pointer
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_crop(ed, static_cast<StripCrop *>(ptr->data));
Strip *seq = sequence_get_by_crop(ed, static_cast<StripCrop *>(ptr->data));
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
@@ -718,7 +718,7 @@ static void rna_Sequence_text_font_set(PointerRNA *ptr,
PointerRNA ptr_value,
ReportList * /*reports*/)
{
Sequence *seq = static_cast<Sequence *>(ptr->data);
Strip *seq = static_cast<Strip *>(ptr->data);
TextVars *data = static_cast<TextVars *>(seq->effectdata);
VFont *value = static_cast<VFont *>(ptr_value.data);
@@ -732,20 +732,20 @@ static void rna_Sequence_text_font_set(PointerRNA *ptr,
/* name functions that ignore the first two characters */
static void rna_Sequence_name_get(PointerRNA *ptr, char *value)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
strcpy(value, seq->name + 2);
}
static int rna_Sequence_name_length(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
return strlen(seq->name + 2);
}
static void rna_Sequence_name_set(PointerRNA *ptr, const char *value)
{
Scene *scene = (Scene *)ptr->owner_id;
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
char oldname[sizeof(seq->name)];
AnimData *adt;
@@ -782,7 +782,7 @@ static void rna_Sequence_name_set(PointerRNA *ptr, const char *value)
static StructRNA *rna_Sequence_refine(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
Strip *seq = (Strip *)ptr->data;
switch (seq->type) {
case SEQ_TYPE_IMAGE:
@@ -836,13 +836,13 @@ static StructRNA *rna_Sequence_refine(PointerRNA *ptr)
case SEQ_TYPE_COLORMIX:
return &RNA_ColorMixSequence;
default:
return &RNA_Sequence;
return &RNA_Strip;
}
}
static std::optional<std::string> rna_Sequence_path(const PointerRNA *ptr)
{
const Sequence *seq = (Sequence *)ptr->data;
const Strip *seq = (Strip *)ptr->data;
/* sequencer data comes from scene...
* TODO: would be nice to make SequenceEditor data a data-block of its own (for shorter paths)
@@ -855,11 +855,11 @@ static std::optional<std::string> rna_Sequence_path(const PointerRNA *ptr)
static IDProperty **rna_Sequence_idprops(PointerRNA *ptr)
{
Sequence *seq = static_cast<Sequence *>(ptr->data);
Strip *seq = static_cast<Strip *>(ptr->data);
return &seq->prop;
}
static bool rna_MovieSequence_reload_if_needed(ID *scene_id, Sequence *seq, Main *bmain)
static bool rna_MovieSequence_reload_if_needed(ID *scene_id, Strip *seq, Main *bmain)
{
Scene *scene = (Scene *)scene_id;
@@ -878,7 +878,7 @@ static bool rna_MovieSequence_reload_if_needed(ID *scene_id, Sequence *seq, Main
return can_produce_frames;
}
static PointerRNA rna_MovieSequence_metadata_get(ID *scene_id, Sequence *seq)
static PointerRNA rna_MovieSequence_metadata_get(ID *scene_id, Strip *seq)
{
if (seq == nullptr || seq->anims.first == nullptr) {
return PointerRNA_NULL;
@@ -903,13 +903,13 @@ static PointerRNA rna_SequenceEditor_meta_stack_get(CollectionPropertyIterator *
ListBaseIterator *internal = &iter->internal.listbase;
MetaStack *ms = (MetaStack *)internal->link;
return rna_pointer_inherit_refine(&iter->parent, &RNA_Sequence, ms->parseq);
return rna_pointer_inherit_refine(&iter->parent, &RNA_Strip, ms->parseq);
}
/* TODO: expose seq path setting as a higher level sequencer BKE function. */
static void rna_Sequence_filepath_set(PointerRNA *ptr, const char *value)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
BLI_path_split_dir_file(value,
seq->data->dirpath,
sizeof(seq->data->dirpath),
@@ -919,7 +919,7 @@ static void rna_Sequence_filepath_set(PointerRNA *ptr, const char *value)
static void rna_Sequence_filepath_get(PointerRNA *ptr, char *value)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
char filepath[FILE_MAX];
BLI_path_join(filepath, sizeof(filepath), seq->data->dirpath, seq->data->stripdata->filename);
@@ -928,7 +928,7 @@ static void rna_Sequence_filepath_get(PointerRNA *ptr, char *value)
static int rna_Sequence_filepath_length(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
char filepath[FILE_MAX];
BLI_path_join(filepath, sizeof(filepath), seq->data->dirpath, seq->data->stripdata->filename);
@@ -982,7 +982,7 @@ static void rna_Sequence_pan_range(
static int rna_Sequence_input_count_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
return SEQ_effect_get_num_inputs(seq->type);
}
@@ -993,8 +993,8 @@ static void rna_Sequence_input_set(PointerRNA *ptr,
int input_num)
{
Sequence *seq = static_cast<Sequence *>(ptr->data);
Sequence *input = static_cast<Sequence *>(ptr_value.data);
Strip *seq = static_cast<Strip *>(ptr->data);
Strip *input = static_cast<Strip *>(ptr_value.data);
if (SEQ_relations_render_loop_check(input, seq)) {
BKE_report(reports, RPT_ERROR, "Cannot reassign inputs: recursion detected");
@@ -1023,7 +1023,7 @@ static void rna_Sequence_input_2_set(PointerRNA *ptr, PointerRNA ptr_value, Repo
# if 0
static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char *value)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
BLI_path_split_dir_file(value,
seq->data->dirpath,
sizeof(seq->data->dirpath),
@@ -1047,14 +1047,14 @@ static void rna_Sequence_reopen_files_update(Main *bmain, Scene * /*scene*/, Poi
rna_Sequence_invalidate_raw_update(bmain, scene, ptr);
if (RNA_struct_is_a(ptr->type, &RNA_SoundSequence)) {
SEQ_sound_update_bounds(scene, static_cast<Sequence *>(ptr->data));
SEQ_sound_update_bounds(scene, static_cast<Strip *>(ptr->data));
}
}
static void rna_Sequence_filepath_update(Main *bmain, Scene * /*scene*/, PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
SEQ_add_reload_new_file(bmain, scene, seq, true);
rna_Sequence_invalidate_raw_update(bmain, scene, ptr);
}
@@ -1066,7 +1066,7 @@ static void rna_Sequence_sound_update(Main *bmain, Scene * /*active_scene*/, Poi
DEG_relations_tag_update(bmain);
}
static bool seqproxy_seq_cmp_fn(Sequence *seq, void *arg_pt)
static bool seqproxy_seq_cmp_fn(Strip *seq, void *arg_pt)
{
SequenceSearchData *data = static_cast<SequenceSearchData *>(arg_pt);
@@ -1077,7 +1077,7 @@ static bool seqproxy_seq_cmp_fn(Sequence *seq, void *arg_pt)
return true;
}
static Sequence *sequence_get_by_proxy(Editing *ed, StripProxy *proxy)
static Strip *sequence_get_by_proxy(Editing *ed, StripProxy *proxy)
{
SequenceSearchData data;
@@ -1092,7 +1092,7 @@ static void rna_Sequence_tcindex_update(Main *bmain, Scene * /*scene*/, PointerR
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_proxy(ed, static_cast<StripProxy *>(ptr->data));
Strip *seq = sequence_get_by_proxy(ed, static_cast<StripProxy *>(ptr->data));
SEQ_add_reload_new_file(bmain, scene, seq, false);
do_sequence_frame_change_update(scene, seq);
@@ -1102,36 +1102,36 @@ static void rna_SequenceProxy_update(Main * /*bmain*/, Scene * /*scene*/, Pointe
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_proxy(ed, static_cast<StripProxy *>(ptr->data));
Strip *seq = sequence_get_by_proxy(ed, static_cast<StripProxy *>(ptr->data));
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
/* do_versions? */
static float rna_Sequence_opacity_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
return seq->blend_opacity / 100.0f;
}
static void rna_Sequence_opacity_set(PointerRNA *ptr, float value)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
CLAMP(value, 0.0f, 1.0f);
seq->blend_opacity = value * 100.0f;
}
static int rna_Sequence_color_tag_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
return seq->color_tag;
}
static void rna_Sequence_color_tag_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
seq->color_tag = value;
}
static bool colbalance_seq_cmp_fn(Sequence *seq, void *arg_pt)
static bool colbalance_seq_cmp_fn(Strip *seq, void *arg_pt)
{
SequenceSearchData *data = static_cast<SequenceSearchData *>(arg_pt);
@@ -1152,9 +1152,9 @@ static bool colbalance_seq_cmp_fn(Sequence *seq, void *arg_pt)
return true;
}
static Sequence *sequence_get_by_colorbalance(Editing *ed,
StripColorBalance *cb,
SequenceModifierData **r_smd)
static Strip *sequence_get_by_colorbalance(Editing *ed,
StripColorBalance *cb,
SequenceModifierData **r_smd)
{
SequenceSearchData data;
@@ -1175,8 +1175,7 @@ static std::optional<std::string> rna_SequenceColorBalance_path(const PointerRNA
Scene *scene = (Scene *)ptr->owner_id;
SequenceModifierData *smd;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_colorbalance(
ed, static_cast<StripColorBalance *>(ptr->data), &smd);
Strip *seq = sequence_get_by_colorbalance(ed, static_cast<StripColorBalance *>(ptr->data), &smd);
if (seq) {
char name_esc[(sizeof(seq->name) - 2) * 2];
@@ -1203,8 +1202,7 @@ static void rna_SequenceColorBalance_update(Main * /*bmain*/, Scene * /*scene*/,
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
SequenceModifierData *smd;
Sequence *seq = sequence_get_by_colorbalance(
ed, static_cast<StripColorBalance *>(ptr->data), &smd);
Strip *seq = sequence_get_by_colorbalance(ed, static_cast<StripColorBalance *>(ptr->data), &smd);
SEQ_relations_invalidate_cache_preprocessed(scene, seq);
}
@@ -1263,15 +1261,12 @@ static void rna_SequenceEditor_overlay_frame_set(PointerRNA *ptr, int value)
}
}
static void rna_SequenceEditor_display_stack(ID *id,
Editing *ed,
ReportList *reports,
Sequence *seqm)
static void rna_SequenceEditor_display_stack(ID *id, Editing *ed, ReportList *reports, Strip *seqm)
{
/* Check for non-meta sequence */
if (seqm != nullptr && seqm->type != SEQ_TYPE_META && SEQ_exists_in_seqbase(seqm, &ed->seqbase))
{
BKE_report(reports, RPT_ERROR, "Sequence type must be 'META'");
BKE_report(reports, RPT_ERROR, "Strip type must be 'META'");
return;
}
@@ -1284,7 +1279,7 @@ static void rna_SequenceEditor_display_stack(ID *id,
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}
static bool modifier_seq_cmp_fn(Sequence *seq, void *arg_pt)
static bool modifier_seq_cmp_fn(Strip *seq, void *arg_pt)
{
SequenceSearchData *data = static_cast<SequenceSearchData *>(arg_pt);
@@ -1296,7 +1291,7 @@ static bool modifier_seq_cmp_fn(Sequence *seq, void *arg_pt)
return true;
}
static Sequence *sequence_get_by_modifier(Editing *ed, SequenceModifierData *smd)
static Strip *sequence_get_by_modifier(Editing *ed, SequenceModifierData *smd)
{
SequenceSearchData data;
@@ -1338,7 +1333,7 @@ static std::optional<std::string> rna_SequenceModifier_path(const PointerRNA *pt
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
SequenceModifierData *smd = static_cast<SequenceModifierData *>(ptr->data);
Sequence *seq = sequence_get_by_modifier(ed, smd);
Strip *seq = sequence_get_by_modifier(ed, smd);
if (seq) {
char name_esc[(sizeof(seq->name) - 2) * 2];
@@ -1357,7 +1352,7 @@ static void rna_SequenceModifier_name_set(PointerRNA *ptr, const char *value)
SequenceModifierData *smd = static_cast<SequenceModifierData *>(ptr->data);
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_modifier(ed, smd);
Strip *seq = sequence_get_by_modifier(ed, smd);
AnimData *adt;
char oldname[sizeof(smd->name)];
@@ -1389,7 +1384,7 @@ static void rna_SequenceModifier_update(Main *bmain, Scene * /*scene*/, PointerR
/* strip from other scenes could be modified, so using active scene is not reliable */
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_modifier(ed, static_cast<SequenceModifierData *>(ptr->data));
Strip *seq = sequence_get_by_modifier(ed, static_cast<SequenceModifierData *>(ptr->data));
if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD)) {
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS | ID_RECALC_AUDIO);
@@ -1418,8 +1413,8 @@ static bool rna_SequenceModifier_otherSequence_poll(PointerRNA *ptr, PointerRNA
{
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_modifier(ed, static_cast<SequenceModifierData *>(ptr->data));
Sequence *cur = (Sequence *)value.data;
Strip *seq = sequence_get_by_modifier(ed, static_cast<SequenceModifierData *>(ptr->data));
Strip *cur = (Strip *)value.data;
if ((seq == cur) || (cur->type == SEQ_TYPE_SOUND_RAM)) {
return false;
@@ -1429,10 +1424,10 @@ static bool rna_SequenceModifier_otherSequence_poll(PointerRNA *ptr, PointerRNA
}
static SequenceModifierData *rna_Sequence_modifier_new(
Sequence *seq, bContext *C, ReportList *reports, const char *name, int type)
Strip *seq, bContext *C, ReportList *reports, const char *name, int type)
{
if (!SEQ_sequence_supports_modifiers(seq)) {
BKE_report(reports, RPT_ERROR, "Sequence type does not support modifiers");
BKE_report(reports, RPT_ERROR, "Strip type does not support modifiers");
return nullptr;
}
@@ -1450,7 +1445,7 @@ static SequenceModifierData *rna_Sequence_modifier_new(
}
}
static void rna_Sequence_modifier_remove(Sequence *seq,
static void rna_Sequence_modifier_remove(Strip *seq,
bContext *C,
ReportList *reports,
PointerRNA *smd_ptr)
@@ -1469,7 +1464,7 @@ static void rna_Sequence_modifier_remove(Sequence *seq,
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, nullptr);
}
static void rna_Sequence_modifier_clear(Sequence *seq, bContext *C)
static void rna_Sequence_modifier_clear(Strip *seq, bContext *C)
{
Scene *scene = CTX_data_scene(C);
@@ -1485,8 +1480,8 @@ static void rna_SequenceModifier_strip_set(PointerRNA *ptr, PointerRNA value, Re
SequenceModifierData *smd = static_cast<SequenceModifierData *>(ptr->data);
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *seq = sequence_get_by_modifier(ed, smd);
Sequence *target = (Sequence *)value.data;
Strip *seq = sequence_get_by_modifier(ed, smd);
Strip *target = (Strip *)value.data;
if (target != nullptr && SEQ_relations_render_loop_check(target, seq)) {
BKE_report(reports, RPT_ERROR, "Recursion detected, cannot use this strip");
@@ -1499,18 +1494,18 @@ static void rna_SequenceModifier_strip_set(PointerRNA *ptr, PointerRNA value, Re
static float rna_Sequence_fps_get(PointerRNA *ptr)
{
Scene *scene = (Scene *)ptr->owner_id;
Sequence *seq = (Sequence *)(ptr->data);
Strip *seq = (Strip *)(ptr->data);
return SEQ_time_sequence_get_fps(scene, seq);
}
static void rna_Sequence_separate(ID *id, Sequence *seqm, Main *bmain)
static void rna_Sequence_separate(ID *id, Strip *seqm, Main *bmain)
{
Scene *scene = (Scene *)id;
/* Find the appropriate seqbase */
ListBase *seqbase = SEQ_get_seqbase_by_seq(scene, seqm);
LISTBASE_FOREACH_MUTABLE (Sequence *, seq, &seqm->seqbase) {
LISTBASE_FOREACH_MUTABLE (Strip *, seq, &seqm->seqbase) {
SEQ_edit_move_strip_to_seqbase(scene, &seqm->seqbase, seq, seqbase);
}
@@ -1530,7 +1525,7 @@ static void rna_SequenceTimelineChannel_name_set(PointerRNA *ptr, const char *va
Scene *scene = (Scene *)ptr->owner_id;
Editing *ed = SEQ_editing_get(scene);
Sequence *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
Strip *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
ListBase *channels_base = &ed->channels;
if (channel_owner != nullptr) {
@@ -1554,7 +1549,7 @@ static void rna_SequenceTimelineChannel_mute_update(Main *bmain,
Editing *ed = SEQ_editing_get(scene);
SeqTimelineChannel *channel = (SeqTimelineChannel *)ptr;
Sequence *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
Strip *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
ListBase *seqbase;
if (channel_owner == nullptr) {
seqbase = &ed->seqbase;
@@ -1563,7 +1558,7 @@ static void rna_SequenceTimelineChannel_mute_update(Main *bmain,
seqbase = &channel_owner->seqbase;
}
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
SEQ_relations_invalidate_cache_composite(scene, seq);
}
@@ -1575,7 +1570,7 @@ static std::optional<std::string> rna_SeqTimelineChannel_path(const PointerRNA *
Scene *scene = (Scene *)ptr->owner_id;
SeqTimelineChannel *channel = (SeqTimelineChannel *)ptr->data;
Sequence *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
Strip *channel_owner = SEQ_sequence_lookup_owner_by_channel(scene, channel);
char channel_name_esc[(sizeof(channel->name)) * 2];
BLI_str_escape(channel_name_esc, channel->name, sizeof(channel_name_esc));
@@ -2041,7 +2036,7 @@ static void rna_def_sequence_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_srna(cprop, "SequenceModifiers");
srna = RNA_def_struct(brna, "SequenceModifiers", nullptr);
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
RNA_def_struct_ui_text(srna, "Strip Modifiers", "Collection of strip modifiers");
/* add modifier */
@@ -2111,7 +2106,7 @@ static void rna_def_sequence(BlenderRNA *brna)
{0, nullptr, 0, nullptr, nullptr},
};
srna = RNA_def_struct(brna, "Sequence", nullptr);
srna = RNA_def_struct(brna, "Strip", nullptr);
RNA_def_struct_ui_text(srna, "Sequence", "Sequence strip in the sequence editor");
RNA_def_struct_refine_func(srna, "rna_Sequence_refine");
RNA_def_struct_path_func(srna, "rna_Sequence_path");
@@ -2120,7 +2115,7 @@ static void rna_def_sequence(BlenderRNA *brna)
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_string_funcs(
prop, "rna_Sequence_name_get", "rna_Sequence_name_length", "rna_Sequence_name_set");
RNA_def_property_string_maxlength(prop, sizeof(Sequence::name) - 2);
RNA_def_property_string_maxlength(prop, sizeof(Strip::name) - 2);
RNA_def_property_ui_text(prop, "Name", "");
RNA_def_struct_name_property(srna, prop);
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, nullptr);
@@ -2396,13 +2391,13 @@ static void rna_def_editor(BlenderRNA *brna)
prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, nullptr, "seqbase", nullptr);
RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_struct_type(prop, "Strip");
RNA_def_property_ui_text(prop, "Sequences", "Top-level strips only");
RNA_api_sequences(brna, prop, false);
prop = RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, nullptr, "seqbase", nullptr);
RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_struct_type(prop, "Strip");
RNA_def_property_ui_text(
prop, "All Sequences", "All strips, recursively including those inside metastrips");
RNA_def_property_collection_funcs(prop,
@@ -2417,7 +2412,7 @@ static void rna_def_editor(BlenderRNA *brna)
prop = RNA_def_property(srna, "meta_stack", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, nullptr, "metastack", nullptr);
RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_struct_type(prop, "Strip");
RNA_def_property_ui_text(
prop, "Meta Stack", "Meta strip stack, last is currently edited meta strip");
RNA_def_property_collection_funcs(prop,
@@ -2525,7 +2520,7 @@ static void rna_def_editor(BlenderRNA *brna)
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Display sequences stack");
parm = RNA_def_pointer(
func, "meta_sequence", "Sequence", "Meta Sequence", "Meta to display its stack");
func, "meta_sequence", "Strip", "Meta Sequence", "Meta to display its stack");
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
}
@@ -2710,9 +2705,9 @@ static void rna_def_image(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "ImageSequence", "Sequence");
srna = RNA_def_struct(brna, "ImageSequence", "Strip");
RNA_def_struct_ui_text(srna, "Image Sequence", "Sequence strip to load one or more images");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH);
RNA_def_property_string_sdna(prop, nullptr, "data->dirpath");
@@ -2764,14 +2759,14 @@ static void rna_def_meta(BlenderRNA *brna)
FunctionRNA *func;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "MetaSequence", "Sequence");
srna = RNA_def_struct(brna, "MetaSequence", "Strip");
RNA_def_struct_ui_text(
srna, "Meta Sequence", "Sequence strip to group other strips as a single sequence strip");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, nullptr, "seqbase", nullptr);
RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_struct_type(prop, "Strip");
RNA_def_property_ui_text(prop, "Sequences", "Sequences nested in meta strip");
RNA_api_sequences(brna, prop, true);
@@ -2816,10 +2811,10 @@ static void rna_def_scene(BlenderRNA *brna)
{0, nullptr, 0, nullptr, nullptr},
};
srna = RNA_def_struct(brna, "SceneSequence", "Sequence");
srna = RNA_def_struct(brna, "SceneSequence", "Strip");
RNA_def_struct_ui_text(
srna, "Scene Sequence", "Sequence strip using the rendered image of a scene");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_SELF_CHECK);
@@ -2857,9 +2852,9 @@ static void rna_def_movie(BlenderRNA *brna)
FunctionRNA *func;
PropertyRNA *parm;
srna = RNA_def_struct(brna, "MovieSequence", "Sequence");
srna = RNA_def_struct(brna, "MovieSequence", "Strip");
RNA_def_struct_ui_text(srna, "Movie Sequence", "Sequence strip to load a video");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "stream_index", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, nullptr, "streamindex");
@@ -2957,10 +2952,10 @@ static void rna_def_movieclip(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "MovieClipSequence", "Sequence");
srna = RNA_def_struct(brna, "MovieClipSequence", "Strip");
RNA_def_struct_ui_text(
srna, "MovieClip Sequence", "Sequence strip to load a video from the clip editor");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);
@@ -2987,9 +2982,9 @@ static void rna_def_mask(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "MaskSequence", "Sequence");
srna = RNA_def_struct(brna, "MaskSequence", "Strip");
RNA_def_struct_ui_text(srna, "Mask Sequence", "Sequence strip to load a video from a mask");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);
@@ -3005,11 +3000,11 @@ static void rna_def_sound(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "SoundSequence", "Sequence");
srna = RNA_def_struct(brna, "SoundSequence", "Strip");
RNA_def_struct_ui_text(srna,
"Sound Sequence",
"Sequence strip defining a sound to be played over a period of time");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
prop = RNA_def_property(srna, "sound", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_EDITABLE);
@@ -3053,12 +3048,12 @@ static void rna_def_effect(BlenderRNA *brna)
{
StructRNA *srna;
srna = RNA_def_struct(brna, "EffectSequence", "Sequence");
srna = RNA_def_struct(brna, "EffectSequence", "Strip");
RNA_def_struct_ui_text(
srna,
"Effect Sequence",
"Sequence strip applying an effect on the images created by other strips");
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
rna_def_filter_video(srna);
rna_def_proxy(srna);
@@ -3604,7 +3599,7 @@ static void rna_def_effects(BlenderRNA *brna)
for (effect = def_effects; effect->struct_name[0] != '\0'; effect++) {
srna = RNA_def_struct(brna, effect->struct_name, "EffectSequence");
RNA_def_struct_ui_text(srna, effect->ui_name, effect->ui_desc);
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
rna_def_effect_inputs(srna, effect->inputs);
@@ -52,16 +52,16 @@
# include "WM_api.hh"
static StripElem *rna_Sequence_strip_elem_from_frame(ID *id, Sequence *self, int timeline_frame)
static StripElem *rna_Sequence_strip_elem_from_frame(ID *id, Strip *self, int timeline_frame)
{
Scene *scene = (Scene *)id;
return SEQ_render_give_stripelem(scene, self, timeline_frame);
}
static void rna_Sequence_swap_internal(ID *id,
Sequence *seq_self,
Strip *seq_self,
ReportList *reports,
Sequence *seq_other)
Strip *seq_other)
{
const char *error_msg;
Scene *scene = (Scene *)id;
@@ -72,7 +72,7 @@ static void rna_Sequence_swap_internal(ID *id,
}
static void rna_Sequences_move_strip_to_meta(
ID *id, Sequence *seq_self, Main *bmain, ReportList *reports, Sequence *meta_dst)
ID *id, Strip *seq_self, Main *bmain, ReportList *reports, Strip *meta_dst)
{
Scene *scene = (Scene *)id;
const char *error_msg;
@@ -91,14 +91,14 @@ static void rna_Sequences_move_strip_to_meta(
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}
static Sequence *rna_Sequence_split(
ID *id, Sequence *seq, Main *bmain, ReportList *reports, int frame, int split_method)
static Strip *rna_Sequence_split(
ID *id, Strip *seq, Main *bmain, ReportList *reports, int frame, int split_method)
{
Scene *scene = (Scene *)id;
ListBase *seqbase = SEQ_get_seqbase_by_seq(scene, seq);
const char *error_msg = nullptr;
Sequence *r_seq = SEQ_edit_strip_split(
Strip *r_seq = SEQ_edit_strip_split(
bmain, scene, seqbase, seq, frame, eSeqSplitMethod(split_method), &error_msg);
if (error_msg != nullptr) {
BKE_report(reports, RPT_ERROR, error_msg);
@@ -113,7 +113,7 @@ static Sequence *rna_Sequence_split(
return r_seq;
}
static Sequence *rna_Sequence_parent_meta(ID *id, Sequence *seq_self)
static Strip *rna_Sequence_parent_meta(ID *id, Strip *seq_self)
{
Scene *scene = (Scene *)id;
Editing *ed = SEQ_editing_get(scene);
@@ -121,19 +121,19 @@ static Sequence *rna_Sequence_parent_meta(ID *id, Sequence *seq_self)
return SEQ_find_metastrip_by_sequence(&ed->seqbase, nullptr, seq_self);
}
static Sequence *rna_Sequences_new_clip(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
MovieClip *clip,
int channel,
int frame_start)
static Strip *rna_Sequences_new_clip(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
MovieClip *clip,
int channel,
int frame_start)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, nullptr, frame_start, channel);
load_data.clip = clip;
Sequence *seq = SEQ_add_movieclip_strip(scene, seqbase, &load_data);
Strip *seq = SEQ_add_movieclip_strip(scene, seqbase, &load_data);
DEG_relations_tag_update(bmain);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -142,41 +142,41 @@ static Sequence *rna_Sequences_new_clip(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_clip(ID *id,
Editing *ed,
Main *bmain,
const char *name,
MovieClip *clip,
int channel,
int frame_start)
{
return rna_Sequences_new_clip(id, &ed->seqbase, bmain, name, clip, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_clip(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_clip(ID *id,
Editing *ed,
Main *bmain,
const char *name,
MovieClip *clip,
int channel,
int frame_start)
{
return rna_Sequences_new_clip(id, &ed->seqbase, bmain, name, clip, channel, frame_start);
}
static Strip *rna_Sequences_meta_new_clip(ID *id,
Strip *seq,
Main *bmain,
const char *name,
MovieClip *clip,
int channel,
int frame_start)
{
return rna_Sequences_new_clip(id, &seq->seqbase, bmain, name, clip, channel, frame_start);
}
static Sequence *rna_Sequences_new_mask(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
Mask *mask,
int channel,
int frame_start)
static Strip *rna_Sequences_new_mask(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
Mask *mask,
int channel,
int frame_start)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, nullptr, frame_start, channel);
load_data.mask = mask;
Sequence *seq = SEQ_add_mask_strip(scene, seqbase, &load_data);
Strip *seq = SEQ_add_mask_strip(scene, seqbase, &load_data);
DEG_relations_tag_update(bmain);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -184,31 +184,31 @@ static Sequence *rna_Sequences_new_mask(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_mask(
static Strip *rna_Sequences_editing_new_mask(
ID *id, Editing *ed, Main *bmain, const char *name, Mask *mask, int channel, int frame_start)
{
return rna_Sequences_new_mask(id, &ed->seqbase, bmain, name, mask, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_mask(
ID *id, Sequence *seq, Main *bmain, const char *name, Mask *mask, int channel, int frame_start)
static Strip *rna_Sequences_meta_new_mask(
ID *id, Strip *seq, Main *bmain, const char *name, Mask *mask, int channel, int frame_start)
{
return rna_Sequences_new_mask(id, &seq->seqbase, bmain, name, mask, channel, frame_start);
}
static Sequence *rna_Sequences_new_scene(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
Scene *sce_seq,
int channel,
int frame_start)
static Strip *rna_Sequences_new_scene(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
Scene *sce_seq,
int channel,
int frame_start)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, nullptr, frame_start, channel);
load_data.scene = sce_seq;
Sequence *seq = SEQ_add_scene_strip(scene, seqbase, &load_data);
Strip *seq = SEQ_add_scene_strip(scene, seqbase, &load_data);
DEG_relations_tag_update(bmain);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -217,37 +217,37 @@ static Sequence *rna_Sequences_new_scene(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_scene(ID *id,
Editing *ed,
Main *bmain,
const char *name,
Scene *sce_seq,
int channel,
int frame_start)
{
return rna_Sequences_new_scene(id, &ed->seqbase, bmain, name, sce_seq, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_scene(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_scene(ID *id,
Editing *ed,
Main *bmain,
const char *name,
Scene *sce_seq,
int channel,
int frame_start)
{
return rna_Sequences_new_scene(id, &ed->seqbase, bmain, name, sce_seq, channel, frame_start);
}
static Strip *rna_Sequences_meta_new_scene(ID *id,
Strip *seq,
Main *bmain,
const char *name,
Scene *sce_seq,
int channel,
int frame_start)
{
return rna_Sequences_new_scene(id, &seq->seqbase, bmain, name, sce_seq, channel, frame_start);
}
static Sequence *rna_Sequences_new_image(ID *id,
ListBase *seqbase,
Main *bmain,
ReportList * /*reports*/,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
static Strip *rna_Sequences_new_image(ID *id,
ListBase *seqbase,
Main *bmain,
ReportList * /*reports*/,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
Scene *scene = (Scene *)id;
@@ -255,7 +255,7 @@ static Sequence *rna_Sequences_new_image(ID *id,
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
load_data.image.len = 1;
load_data.fit_method = eSeqImageFitMethod(fit_method);
Sequence *seq = SEQ_add_image_strip(bmain, scene, seqbase, &load_data);
Strip *seq = SEQ_add_image_strip(bmain, scene, seqbase, &load_data);
char dirpath[FILE_MAX], filename[FILE_MAXFILE];
BLI_path_split_dir_file(file, dirpath, sizeof(dirpath), filename, sizeof(filename));
@@ -270,22 +270,8 @@ static Sequence *rna_Sequences_new_image(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_image(ID *id,
Editing *ed,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_image(
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start, fit_method);
}
static Sequence *rna_Sequences_meta_new_image(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_image(ID *id,
Editing *ed,
Main *bmain,
ReportList *reports,
const char *name,
@@ -293,26 +279,40 @@ static Sequence *rna_Sequences_meta_new_image(ID *id,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_image(
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start, fit_method);
}
static Strip *rna_Sequences_meta_new_image(ID *id,
Strip *seq,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_image(
id, &seq->seqbase, bmain, reports, name, file, channel, frame_start, fit_method);
}
static Sequence *rna_Sequences_new_movie(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
static Strip *rna_Sequences_new_movie(ID *id,
ListBase *seqbase,
Main *bmain,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
load_data.fit_method = eSeqImageFitMethod(fit_method);
load_data.allow_invalid_file = true;
Sequence *seq = SEQ_add_movie_strip(bmain, scene, seqbase, &load_data);
Strip *seq = SEQ_add_movie_strip(bmain, scene, seqbase, &load_data);
DEG_relations_tag_update(bmain);
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
@@ -321,47 +321,47 @@ static Sequence *rna_Sequences_new_movie(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_movie(ID *id,
Editing *ed,
Main *bmain,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_movie(
id, &ed->seqbase, bmain, name, file, channel, frame_start, fit_method);
}
static Sequence *rna_Sequences_meta_new_movie(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_movie(ID *id,
Editing *ed,
Main *bmain,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_movie(
id, &ed->seqbase, bmain, name, file, channel, frame_start, fit_method);
}
static Strip *rna_Sequences_meta_new_movie(ID *id,
Strip *seq,
Main *bmain,
const char *name,
const char *file,
int channel,
int frame_start,
int fit_method)
{
return rna_Sequences_new_movie(
id, &seq->seqbase, bmain, name, file, channel, frame_start, fit_method);
}
# ifdef WITH_AUDASPACE
static Sequence *rna_Sequences_new_sound(ID *id,
ListBase *seqbase,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
static Strip *rna_Sequences_new_sound(ID *id,
ListBase *seqbase,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
load_data.allow_invalid_file = true;
Sequence *seq = SEQ_add_sound_strip(bmain, scene, seqbase, &load_data);
Strip *seq = SEQ_add_sound_strip(bmain, scene, seqbase, &load_data);
if (seq == nullptr) {
BKE_report(reports, RPT_ERROR, "Sequences.new_sound: unable to open sound file");
@@ -375,41 +375,41 @@ static Sequence *rna_Sequences_new_sound(ID *id,
return seq;
}
# else /* WITH_AUDASPACE */
static Sequence *rna_Sequences_new_sound(ID * /*id*/,
ListBase * /*seqbase*/,
Main * /*bmain*/,
ReportList *reports,
const char * /*name*/,
const char * /*file*/,
int /*channel*/,
int /*frame_start*/)
static Strip *rna_Sequences_new_sound(ID * /*id*/,
ListBase * /*seqbase*/,
Main * /*bmain*/,
ReportList *reports,
const char * /*name*/,
const char * /*file*/,
int /*channel*/,
int /*frame_start*/)
{
BKE_report(reports, RPT_ERROR, "Blender compiled without Audaspace support");
return nullptr;
}
# endif /* WITH_AUDASPACE */
static Sequence *rna_Sequences_editing_new_sound(ID *id,
Editing *ed,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
{
return rna_Sequences_new_sound(
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_sound(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_sound(ID *id,
Editing *ed,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
{
return rna_Sequences_new_sound(
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start);
}
static Strip *rna_Sequences_meta_new_sound(ID *id,
Strip *seq,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
{
return rna_Sequences_new_sound(
id, &seq->seqbase, bmain, reports, name, file, channel, frame_start);
@@ -418,42 +418,42 @@ static Sequence *rna_Sequences_meta_new_sound(ID *id,
/* Meta sequence
* Possibility to create an empty meta to avoid plenty of meta toggling
* Created meta have a length equal to 1, must be set through the API. */
static Sequence *rna_Sequences_new_meta(
static Strip *rna_Sequences_new_meta(
ID *id, ListBase *seqbase, const char *name, int channel, int frame_start)
{
Scene *scene = (Scene *)id;
SeqLoadData load_data;
SEQ_add_load_data_init(&load_data, name, nullptr, frame_start, channel);
Sequence *seqm = SEQ_add_meta_strip(scene, seqbase, &load_data);
Strip *seqm = SEQ_add_meta_strip(scene, seqbase, &load_data);
return seqm;
}
static Sequence *rna_Sequences_editing_new_meta(
static Strip *rna_Sequences_editing_new_meta(
ID *id, Editing *ed, const char *name, int channel, int frame_start)
{
return rna_Sequences_new_meta(id, &ed->seqbase, name, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_meta(
ID *id, Sequence *seq, const char *name, int channel, int frame_start)
static Strip *rna_Sequences_meta_new_meta(
ID *id, Strip *seq, const char *name, int channel, int frame_start)
{
return rna_Sequences_new_meta(id, &seq->seqbase, name, channel, frame_start);
}
static Sequence *rna_Sequences_new_effect(ID *id,
ListBase *seqbase,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Sequence *seq1,
Sequence *seq2)
static Strip *rna_Sequences_new_effect(ID *id,
ListBase *seqbase,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Strip *seq1,
Strip *seq2)
{
Scene *scene = (Scene *)id;
Sequence *seq;
Strip *seq;
const int num_inputs = SEQ_effect_get_num_inputs(type);
switch (num_inputs) {
@@ -498,31 +498,31 @@ static Sequence *rna_Sequences_new_effect(ID *id,
return seq;
}
static Sequence *rna_Sequences_editing_new_effect(ID *id,
Editing *ed,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Sequence *seq1,
Sequence *seq2)
{
return rna_Sequences_new_effect(
id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2);
}
static Sequence *rna_Sequences_meta_new_effect(ID *id,
Sequence *seq,
static Strip *rna_Sequences_editing_new_effect(ID *id,
Editing *ed,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Sequence *seq1,
Sequence *seq2)
Strip *seq1,
Strip *seq2)
{
return rna_Sequences_new_effect(
id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2);
}
static Strip *rna_Sequences_meta_new_effect(ID *id,
Strip *seq,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Strip *seq1,
Strip *seq2)
{
return rna_Sequences_new_effect(
id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2);
@@ -531,12 +531,12 @@ static Sequence *rna_Sequences_meta_new_effect(ID *id,
static void rna_Sequences_remove(
ID *id, ListBase *seqbase, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
{
Sequence *seq = static_cast<Sequence *>(seq_ptr->data);
Strip *seq = static_cast<Strip *>(seq_ptr->data);
Scene *scene = (Scene *)id;
if (BLI_findindex(seqbase, seq) == -1) {
BKE_reportf(
reports, RPT_ERROR, "Sequence '%s' not in scene '%s'", seq->name + 2, scene->id.name + 2);
reports, RPT_ERROR, "Strip '%s' not in scene '%s'", seq->name + 2, scene->id.name + 2);
return;
}
@@ -556,12 +556,12 @@ static void rna_Sequences_editing_remove(
}
static void rna_Sequences_meta_remove(
ID *id, Sequence *seq, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
ID *id, Strip *seq, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
{
rna_Sequences_remove(id, &seq->seqbase, bmain, reports, seq_ptr);
}
static StripElem *rna_SequenceElements_append(ID *id, Sequence *seq, const char *filename)
static StripElem *rna_SequenceElements_append(ID *id, Strip *seq, const char *filename)
{
Scene *scene = (Scene *)id;
StripElem *se;
@@ -579,7 +579,7 @@ static StripElem *rna_SequenceElements_append(ID *id, Sequence *seq, const char
return se;
}
static void rna_SequenceElements_pop(ID *id, Sequence *seq, ReportList *reports, int index)
static void rna_SequenceElements_pop(ID *id, Strip *seq, ReportList *reports, int index)
{
Scene *scene = (Scene *)id;
StripElem *new_seq, *se;
@@ -622,7 +622,7 @@ static void rna_SequenceElements_pop(ID *id, Sequence *seq, ReportList *reports,
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}
static void rna_Sequence_invalidate_cache_rnafunc(ID *id, Sequence *self, int type)
static void rna_Sequence_invalidate_cache_rnafunc(ID *id, Strip *self, int type)
{
switch (type) {
case SEQ_CACHE_STORE_RAW:
@@ -637,7 +637,7 @@ static void rna_Sequence_invalidate_cache_rnafunc(ID *id, Sequence *self, int ty
}
}
static SeqRetimingKey *rna_Sequence_retiming_keys_add(ID *id, Sequence *seq, int timeline_frame)
static SeqRetimingKey *rna_Sequence_retiming_keys_add(ID *id, Strip *seq, int timeline_frame)
{
Scene *scene = (Scene *)id;
@@ -648,7 +648,7 @@ static SeqRetimingKey *rna_Sequence_retiming_keys_add(ID *id, Sequence *seq, int
return key;
}
static void rna_Sequence_retiming_keys_reset(ID *id, Sequence *seq)
static void rna_Sequence_retiming_keys_reset(ID *id, Strip *seq)
{
Scene *scene = (Scene *)id;
@@ -698,23 +698,20 @@ void RNA_api_sequence_strip(StructRNA *srna)
func = RNA_def_function(srna, "swap", "rna_Sequence_swap_internal");
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID);
RNA_def_function_flag(func, FUNC_USE_REPORTS);
parm = RNA_def_pointer(func, "other", "Sequence", "Other", "");
parm = RNA_def_pointer(func, "other", "Strip", "Other", "");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
func = RNA_def_function(srna, "move_to_meta", "rna_Sequences_move_strip_to_meta");
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
parm = RNA_def_pointer(func,
"meta_sequence",
"Sequence",
"Destination Meta Sequence",
"Meta to move the strip into");
parm = RNA_def_pointer(
func, "meta_sequence", "Strip", "Destination Meta Sequence", "Meta to move the strip into");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
func = RNA_def_function(srna, "parent_meta", "rna_Sequence_parent_meta");
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
RNA_def_function_ui_description(func, "Parent meta");
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "Parent Meta");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "Parent Meta");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "invalidate_cache", "rna_Sequence_invalidate_cache_rnafunc");
@@ -733,7 +730,7 @@ void RNA_api_sequence_strip(StructRNA *srna)
parm = RNA_def_enum(func, "split_method", seq_split_method_items, 0, "", "");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
/* Return type. */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "Right side Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "Right side Sequence");
RNA_def_function_return(func, parm);
}
@@ -745,7 +742,7 @@ void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_srna(cprop, "SequenceElements");
srna = RNA_def_struct(brna, "SequenceElements", nullptr);
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
RNA_def_struct_ui_text(srna, "SequenceElements", "Collection of SequenceElement");
func = RNA_def_function(srna, "append", "rna_SequenceElements_append");
@@ -771,7 +768,7 @@ void RNA_api_sequence_retiming_keys(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_srna(cprop, "RetimingKeys");
srna = RNA_def_struct(brna, "RetimingKeys", nullptr);
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
RNA_def_struct_ui_text(srna, "RetimingKeys", "Collection of RetimingKey");
FunctionRNA *func = RNA_def_function(srna, "add", "rna_Sequence_retiming_keys_add");
@@ -841,7 +838,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
if (metastrip) {
RNA_def_property_srna(cprop, "SequencesMeta");
srna = RNA_def_struct(brna, "SequencesMeta", nullptr);
RNA_def_struct_sdna(srna, "Sequence");
RNA_def_struct_sdna(srna, "Strip");
new_clip_func_name = "rna_Sequences_meta_new_clip";
new_mask_func_name = "rna_Sequences_meta_new_mask";
@@ -889,7 +886,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
MAXFRAME);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_mask", new_mask_func_name);
@@ -920,7 +917,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
MAXFRAME);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_scene", new_scene_func_name);
@@ -951,7 +948,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
MAXFRAME);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_image", new_image_func_name);
@@ -985,7 +982,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
func, "fit_method", scale_fit_methods, SEQ_USE_ORIGINAL_SIZE, "Image Fit Method", nullptr);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_PYFUNC_OPTIONAL);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_movie", new_movie_func_name);
@@ -1019,7 +1016,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
func, "fit_method", scale_fit_methods, SEQ_USE_ORIGINAL_SIZE, "Image Fit Method", nullptr);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_PYFUNC_OPTIONAL);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_sound", new_sound_func_name);
@@ -1050,7 +1047,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
MAXFRAME);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_meta", new_meta_func_name);
@@ -1079,7 +1076,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
MAXFRAME);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_effect", new_effect_func_name);
@@ -1119,16 +1116,16 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri
"The end frame for the new sequence",
INT_MIN,
INT_MAX);
RNA_def_pointer(func, "seq1", "Sequence", "", "Sequence 1 for effect");
RNA_def_pointer(func, "seq2", "Sequence", "", "Sequence 2 for effect");
RNA_def_pointer(func, "seq1", "Strip", "", "Sequence 1 for effect");
RNA_def_pointer(func, "seq2", "Strip", "", "Sequence 2 for effect");
/* return type */
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "New Sequence");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "remove", remove_func_name);
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Remove a Sequence");
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "Sequence to remove");
parm = RNA_def_pointer(func, "sequence", "Strip", "", "Sequence to remove");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
}
+1 -1
View File
@@ -2452,7 +2452,7 @@ static void seq_build_proxy(bContext *C, PointerRNA *ptr)
wmJob *wm_job = ED_seq_proxy_wm_job_get(C);
ProxyJob *pj = ED_seq_proxy_job_get(C, wm_job);
LISTBASE_FOREACH (Sequence *, seq, seqbase) {
LISTBASE_FOREACH (Strip *, seq, seqbase) {
if (seq->type != SEQ_TYPE_MOVIE || seq->data == nullptr || seq->data->proxy == nullptr) {
continue;
}
+2 -2
View File
@@ -1446,7 +1446,7 @@ bool RE_seq_render_active(Scene *scene, RenderData *rd)
return false;
}
LISTBASE_FOREACH (Sequence *, seq, &ed->seqbase) {
LISTBASE_FOREACH (Strip *, seq, &ed->seqbase) {
if (seq->type != SEQ_TYPE_SOUND_RAM && !SEQ_render_is_muted(&ed->channels, seq)) {
return true;
}
@@ -1705,7 +1705,7 @@ static int check_valid_camera(Scene *scene, Object *camera_override, ReportList
if (RE_seq_render_active(scene, &scene->r)) {
if (scene->ed) {
LISTBASE_FOREACH (Sequence *, seq, &scene->ed->seqbase) {
LISTBASE_FOREACH (Strip *, seq, &scene->ed->seqbase) {
if ((seq->type == SEQ_TYPE_SCENE) && ((seq->flag & SEQ_SCENE_STRIPS) == 0) &&
(seq->scene != nullptr))
{
+17 -29
View File
@@ -17,7 +17,7 @@ struct Main;
struct Mask;
struct MovieClip;
struct Scene;
struct Sequence;
struct Strip;
struct Stereo3dFormat;
/** #SeqLoadData.flags */
@@ -46,8 +46,8 @@ struct SeqLoadData {
struct {
int type;
int end_frame;
Sequence *seq1;
Sequence *seq2;
Strip *seq1;
Strip *seq2;
} effect; /* Only for effect strips. */
eSeqLoadFlags flags;
eSeqImageFitMethod fit_method;
@@ -80,10 +80,7 @@ void SEQ_add_load_data_init(
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_image_strip(Main *bmain,
Scene *scene,
ListBase *seqbase,
SeqLoadData *load_data);
Strip *SEQ_add_image_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add sound strip.
* \note Use SEQ_add_image_set_directory() and SEQ_add_image_load_file() to load image sequences
@@ -94,10 +91,7 @@ Sequence *SEQ_add_image_strip(Main *bmain,
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_sound_strip(Main *bmain,
Scene *scene,
ListBase *seqbase,
SeqLoadData *load_data);
Strip *SEQ_add_sound_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Sync up the sound strip 'seq' with the video data in 'load_data'.
@@ -109,7 +103,7 @@ Sequence *SEQ_add_sound_strip(Main *bmain,
* \param seq: The sound strip that will be synced
* \param load_data: SeqLoadData with information necessary to sync the sound strip
*/
void SEQ_add_sound_av_sync(Main *bmain, Scene *scene, Sequence *seq, SeqLoadData *load_data);
void SEQ_add_sound_av_sync(Main *bmain, Scene *scene, Strip *seq, SeqLoadData *load_data);
/**
* Add meta strip.
*
@@ -118,7 +112,7 @@ void SEQ_add_sound_av_sync(Main *bmain, Scene *scene, Sequence *seq, SeqLoadData
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_meta_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
Strip *SEQ_add_meta_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add movie strip.
*
@@ -128,10 +122,7 @@ Sequence *SEQ_add_meta_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_movie_strip(Main *bmain,
Scene *scene,
ListBase *seqbase,
SeqLoadData *load_data);
Strip *SEQ_add_movie_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add scene strip.
*
@@ -140,7 +131,7 @@ Sequence *SEQ_add_movie_strip(Main *bmain,
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_scene_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
Strip *SEQ_add_scene_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add movieclip strip.
*
@@ -149,7 +140,7 @@ Sequence *SEQ_add_scene_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
Strip *SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add mask strip.
*
@@ -158,7 +149,7 @@ Sequence *SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, SeqLoadData *
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_mask_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
Strip *SEQ_add_mask_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Add effect strip.
*
@@ -167,14 +158,14 @@ Sequence *SEQ_add_mask_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_
* \param load_data: SeqLoadData with information necessary to create strip
* \return created strip
*/
Sequence *SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
Strip *SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data);
/**
* Set directory used by image strip.
*
* \param seq: image strip to be changed
* \param path: directory path
*/
void SEQ_add_image_set_directory(Sequence *seq, const char *dirpath);
void SEQ_add_image_set_directory(Strip *seq, const char *dirpath);
/**
* Set directory used by image strip.
*
@@ -182,16 +173,13 @@ void SEQ_add_image_set_directory(Sequence *seq, const char *dirpath);
* \param strip_frame: frame index of strip to be changed
* \param filename: image filename (only filename, not complete path)
*/
void SEQ_add_image_load_file(Scene *scene,
Sequence *seq,
size_t strip_frame,
const char *filename);
void SEQ_add_image_load_file(Scene *scene, Strip *seq, size_t strip_frame, const char *filename);
/**
* Set image strip alpha mode
*
* \param seq: image strip to be changed
*/
void SEQ_add_image_init_alpha_mode(Sequence *seq);
void SEQ_add_reload_new_file(Main *bmain, Scene *scene, Sequence *seq, bool lock_range);
void SEQ_add_image_init_alpha_mode(Strip *seq);
void SEQ_add_reload_new_file(Main *bmain, Scene *scene, Strip *seq, bool lock_range);
void SEQ_add_movie_reload_if_needed(
Main *bmain, Scene *scene, Sequence *seq, bool *r_was_reloaded, bool *r_can_produce_frames);
Main *bmain, Scene *scene, Strip *seq, bool *r_was_reloaded, bool *r_can_produce_frames);
+5 -7
View File
@@ -15,17 +15,17 @@
struct ListBase;
struct Scene;
struct Sequence;
struct Strip;
struct SeqAnimationBackup;
bool SEQ_animation_keyframes_exist(Scene *scene);
bool SEQ_animation_drivers_exist(Scene *scene);
void SEQ_free_animdata(Scene *scene, Sequence *seq);
void SEQ_offset_animdata(Scene *scene, Sequence *seq, int ofs);
void SEQ_free_animdata(Scene *scene, Strip *seq);
void SEQ_offset_animdata(Scene *scene, Strip *seq, int ofs);
/**
* Return whether the fcurve targets the given sequence.
*/
bool SEQ_fcurve_matches(const Sequence &seq, const FCurve &fcurve);
bool SEQ_fcurve_matches(const Strip &seq, const FCurve &fcurve);
struct SeqAnimationBackup {
/* `curves` and `channelbag` here represent effectively the same data (the
* fcurves that animate the Scene that the sequence belongs to), just for
@@ -47,6 +47,4 @@ void SEQ_animation_restore_original(Scene *scene, SeqAnimationBackup *backup);
/**
* Duplicate F-Curves and drivers used by `seq` from `backup` to `scene`.
*/
void SEQ_animation_duplicate_backup_to_scene(Scene *scene,
Sequence *seq,
SeqAnimationBackup *backup);
void SEQ_animation_duplicate_backup_to_scene(Scene *scene, Strip *seq, SeqAnimationBackup *backup);
+2 -2
View File
@@ -11,7 +11,7 @@
struct Editing;
struct ListBase;
struct SeqTimelineChannel;
struct Sequence;
struct Strip;
ListBase *SEQ_channels_displayed_get(Editing *ed);
void SEQ_channels_displayed_set(Editing *ed, ListBase *channels);
@@ -24,4 +24,4 @@ char *SEQ_channel_name_get(ListBase *channels, int channel_index);
bool SEQ_channel_is_locked(const SeqTimelineChannel *channel);
bool SEQ_channel_is_muted(const SeqTimelineChannel *channel);
int SEQ_channel_index_get(const SeqTimelineChannel *channel);
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, ListBase *channels, const Sequence *seq);
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, ListBase *channels, const Strip *seq);
+9 -9
View File
@@ -10,7 +10,7 @@
#include "BLI_vector_set.hh"
struct Sequence;
struct Strip;
struct ListBase;
void SEQ_connections_duplicate(ListBase *connections_dst, ListBase *connections_src);
@@ -20,35 +20,35 @@ void SEQ_connections_duplicate(ListBase *connections_dst, ListBase *connections_
* frees the allocated memory as necessary. Returns false if any of the strips were not already
* connected.
*/
bool SEQ_disconnect(Sequence *seq);
bool SEQ_disconnect(blender::VectorSet<Sequence *> &seq_list);
bool SEQ_disconnect(Strip *seq);
bool SEQ_disconnect(blender::VectorSet<Strip *> &seq_list);
/**
* Ensure that the strip has only bidirectional connections (expected behavior).
*/
void SEQ_cut_one_way_connections(Sequence *seq);
void SEQ_cut_one_way_connections(Strip *seq);
/**
* Connect strips so that they may be selected together. Any connections the
* strips already have will be severed before reconnection.
*/
void SEQ_connect(Sequence *seq1, Sequence *seq2);
void SEQ_connect(blender::VectorSet<Sequence *> &seq_list);
void SEQ_connect(Strip *seq1, Strip *seq2);
void SEQ_connect(blender::VectorSet<Strip *> &seq_list);
/**
* 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.
*/
blender::VectorSet<Sequence *> SEQ_get_connected_strips(const Sequence *seq);
blender::VectorSet<Strip *> SEQ_get_connected_strips(const Strip *seq);
/**
* Check whether a strip has any connections.
*/
bool SEQ_is_strip_connected(const Sequence *seq);
bool SEQ_is_strip_connected(const Strip *seq);
/**
* 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.
*/
bool SEQ_are_strips_connected_together(blender::VectorSet<Sequence *> &seq_list);
bool SEQ_are_strips_connected_together(blender::VectorSet<Strip *> &seq_list);
+14 -17
View File
@@ -11,12 +11,9 @@
struct ListBase;
struct Main;
struct Scene;
struct Sequence;
struct Strip;
bool SEQ_edit_sequence_swap(Scene *scene,
Sequence *seq_a,
Sequence *seq_b,
const char **r_error_str);
bool SEQ_edit_sequence_swap(Scene *scene, Strip *seq_a, Strip *seq_b, const char **r_error_str);
/**
* Move sequence to seqbase.
*
@@ -27,7 +24,7 @@ bool SEQ_edit_sequence_swap(Scene *scene,
*/
bool SEQ_edit_move_strip_to_seqbase(Scene *scene,
ListBase *seqbase,
Sequence *seq,
Strip *seq,
ListBase *dst_seqbase);
/**
* Move sequence to meta sequence.
@@ -38,13 +35,13 @@ bool SEQ_edit_move_strip_to_seqbase(Scene *scene,
* \param r_error_str: Error message
*/
bool SEQ_edit_move_strip_to_meta(Scene *scene,
Sequence *src_seq,
Sequence *dst_seqm,
Strip *src_seq,
Strip *dst_seqm,
const char **r_error_str);
/**
* Flag seq and its users (effects) for removal.
*/
void SEQ_edit_flag_for_removal(Scene *scene, ListBase *seqbase, Sequence *seq);
void SEQ_edit_flag_for_removal(Scene *scene, ListBase *seqbase, Strip *seq);
/**
* Remove all flagged sequences, return true if sequence is removed.
*/
@@ -67,13 +64,13 @@ enum eSeqSplitMethod {
* \param method: affects type of offset to be applied to resize Sequence
* \return The newly created sequence strip. This is always Sequence on right side.
*/
Sequence *SEQ_edit_strip_split(Main *bmain,
Scene *scene,
ListBase *seqbase,
Sequence *seq,
int timeline_frame,
eSeqSplitMethod method,
const char **r_error);
Strip *SEQ_edit_strip_split(Main *bmain,
Scene *scene,
ListBase *seqbase,
Strip *seq,
int timeline_frame,
eSeqSplitMethod method,
const char **r_error);
/**
* Find gap after initial_frame and move strips on right side to close the gap
*
@@ -87,4 +84,4 @@ bool SEQ_edit_remove_gaps(Scene *scene,
ListBase *seqbase,
int initial_frame,
bool remove_all_gaps);
void SEQ_edit_sequence_name_set(Scene *scene, Sequence *seq, const char *new_name);
void SEQ_edit_sequence_name_set(Scene *scene, Strip *seq, const char *new_name);
+10 -13
View File
@@ -13,7 +13,7 @@
struct ImBuf;
struct SeqRenderData;
struct Sequence;
struct Strip;
struct TextVars;
enum class StripEarlyOut {
@@ -36,7 +36,7 @@ enum {
struct SeqEffectHandle {
/* constructors & destructor */
/* init is _only_ called on first creation */
void (*init)(Sequence *seq);
void (*init)(Strip *seq);
/* number of input strips needed
* (called directly after construction) */
@@ -44,36 +44,33 @@ struct SeqEffectHandle {
/* load is called first time after readblenfile in
* get_sequence_effect automatically */
void (*load)(Sequence *seqconst);
void (*load)(Strip *seqconst);
/* duplicate */
void (*copy)(Sequence *dst, const Sequence *src, int flag);
void (*copy)(Strip *dst, const Strip *src, int flag);
/* destruct */
void (*free)(Sequence *seq, bool do_id_user);
void (*free)(Strip *seq, bool do_id_user);
StripEarlyOut (*early_out)(const Sequence *seq, float fac);
StripEarlyOut (*early_out)(const Strip *seq, float fac);
/* sets the default `fac` value */
void (*get_default_fac)(const Scene *scene,
const Sequence *seq,
float timeline_frame,
float *fac);
void (*get_default_fac)(const Scene *scene, const Strip *seq, float timeline_frame, float *fac);
/* execute the effect */
ImBuf *(*execute)(const SeqRenderData *context,
Sequence *seq,
Strip *seq,
float timeline_frame,
float fac,
ImBuf *ibuf1,
ImBuf *ibuf2);
};
SeqEffectHandle SEQ_effect_handle_get(Sequence *seq);
SeqEffectHandle SEQ_effect_handle_get(Strip *seq);
int SEQ_effect_get_num_inputs(int seq_type);
void SEQ_effect_text_font_unload(TextVars *data, bool do_id_user);
void SEQ_effect_text_font_load(TextVars *data, bool do_id_user);
bool SEQ_effects_can_render_text(const Sequence *seq);
bool SEQ_effects_can_render_text(const Strip *seq);
namespace blender::seq {
+20 -20
View File
@@ -10,12 +10,12 @@
#include "BLI_vector_set.hh"
struct Sequence;
struct Strip;
/**
* Callback format for the for_each function below.
*/
using SeqForEachFunc = bool (*)(Sequence *seq, void *user_data);
using SeqForEachFunc = bool (*)(Strip *seq, void *user_data);
/**
* Utility function to recursively iterate through all sequence strips in a `seqbase` list.
@@ -38,11 +38,11 @@ void SEQ_for_each_callback(ListBase *seqbase, SeqForEachFunc callback, void *use
*/
void SEQ_iterator_set_expand(const Scene *scene,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips,
blender::VectorSet<Strip *> &strips,
void seq_query_func(const Scene *scene,
Sequence *seq_reference,
Strip *seq_reference,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips));
blender::VectorSet<Strip *> &strips));
/**
* Query strips from seqbase. seq_reference is used by query function as filter condition.
*
@@ -51,42 +51,42 @@ void SEQ_iterator_set_expand(const Scene *scene,
* \param seq_query_func: query function callback
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_by_reference(
Sequence *seq_reference,
blender::VectorSet<Strip *> SEQ_query_by_reference(
Strip *seq_reference,
const Scene *scene,
ListBase *seqbase,
void seq_query_func(const Scene *scene,
Sequence *seq_reference,
Strip *seq_reference,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips));
blender::VectorSet<Strip *> &strips));
/**
* Query all selected strips in seqbase.
*
* \param seqbase: ListBase in which strips are queried
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_selected_strips(ListBase *seqbase);
blender::VectorSet<Strip *> SEQ_query_selected_strips(ListBase *seqbase);
/**
* Query all unselected strips in seqbase.
*
* \param seqbase: ListBase in which strips are queried
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_unselected_strips(ListBase *seqbase);
blender::VectorSet<Strip *> SEQ_query_unselected_strips(ListBase *seqbase);
/**
* Query all strips in seqbase. This does not include strips nested in meta strips.
*
* \param seqbase: ListBase in which strips are queried
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_all_strips(ListBase *seqbase);
blender::VectorSet<Strip *> SEQ_query_all_strips(ListBase *seqbase);
/**
* Query all strips in seqbase and nested meta strips.
*
* \param seqbase: ListBase in which strips are queried
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_all_strips_recursive(const ListBase *seqbase);
blender::VectorSet<Strip *> SEQ_query_all_strips_recursive(const ListBase *seqbase);
/**
* Query all effect strips that are directly or indirectly connected to seq_reference.
@@ -98,9 +98,9 @@ blender::VectorSet<Sequence *> SEQ_query_all_strips_recursive(const ListBase *se
* \param strips: set of strips to be filled
*/
void SEQ_query_strip_effect_chain(const Scene *scene,
Sequence *seq_reference,
Strip *seq_reference,
ListBase *seqbase,
blender::VectorSet<Sequence *> &strips);
blender::VectorSet<Strip *> &strips);
/**
* Query strips that are rendered at \a timeline_frame when \a displayed channel is viewed
@@ -110,8 +110,8 @@ void SEQ_query_strip_effect_chain(const Scene *scene,
* \param displayed_channel: viewed channel. when set to 0, no channel filter is applied
* \return set of strips
*/
blender::VectorSet<Sequence *> SEQ_query_rendered_strips(const Scene *scene,
ListBase *channels,
ListBase *seqbase,
int timeline_frame,
int displayed_channel);
blender::VectorSet<Strip *> SEQ_query_rendered_strips(const Scene *scene,
ListBase *channels,
ListBase *seqbase,
int timeline_frame,
int displayed_channel);
+9 -9
View File
@@ -13,7 +13,7 @@ struct BlendWriter;
struct ImBuf;
struct ListBase;
struct SeqRenderData;
struct Sequence;
struct Strip;
struct SequenceModifierData;
struct StripScreenQuad;
@@ -45,18 +45,18 @@ struct SequenceModifierTypeInfo {
};
const SequenceModifierTypeInfo *SEQ_modifier_type_info_get(int type);
SequenceModifierData *SEQ_modifier_new(Sequence *seq, const char *name, int type);
bool SEQ_modifier_remove(Sequence *seq, SequenceModifierData *smd);
void SEQ_modifier_clear(Sequence *seq);
SequenceModifierData *SEQ_modifier_new(Strip *seq, const char *name, int type);
bool SEQ_modifier_remove(Strip *seq, SequenceModifierData *smd);
void SEQ_modifier_clear(Strip *seq);
void SEQ_modifier_free(SequenceModifierData *smd);
void SEQ_modifier_unique_name(Sequence *seq, SequenceModifierData *smd);
SequenceModifierData *SEQ_modifier_find_by_name(Sequence *seq, const char *name);
void SEQ_modifier_unique_name(Strip *seq, SequenceModifierData *smd);
SequenceModifierData *SEQ_modifier_find_by_name(Strip *seq, const char *name);
void SEQ_modifier_apply_stack(const SeqRenderData *context,
const Sequence *seq,
const Strip *seq,
ImBuf *ibuf,
int timeline_frame);
void SEQ_modifier_list_copy(Sequence *seqn, Sequence *seq);
int SEQ_sequence_supports_modifiers(Sequence *seq);
void SEQ_modifier_list_copy(Strip *seqn, Strip *seq);
int SEQ_sequence_supports_modifiers(Strip *seq);
void SEQ_modifier_blend_write(BlendWriter *writer, ListBase *modbase);
void SEQ_modifier_blend_read_data(BlendDataReader *reader, ListBase *lb);
+4 -4
View File
@@ -16,7 +16,7 @@ struct Main;
struct Scene;
struct SeqIndexBuildContext;
struct SeqRenderData;
struct Sequence;
struct Strip;
struct bContext;
struct wmJob;
struct wmJobWorkerStatus;
@@ -24,14 +24,14 @@ struct wmJobWorkerStatus;
bool SEQ_proxy_rebuild_context(Main *bmain,
Depsgraph *depsgraph,
Scene *scene,
Sequence *seq,
Strip *seq,
blender::Set<std::string> *processed_paths,
ListBase *queue,
bool build_only_on_bad_performance);
void SEQ_proxy_rebuild(SeqIndexBuildContext *context, wmJobWorkerStatus *worker_status);
void SEQ_proxy_rebuild_finish(SeqIndexBuildContext *context, bool stop);
void SEQ_proxy_set(Sequence *seq, bool value);
bool SEQ_can_use_proxy(const SeqRenderData *context, const Sequence *seq, int psize);
void SEQ_proxy_set(Strip *seq, bool value);
bool SEQ_can_use_proxy(const SeqRenderData *context, const Strip *seq, int psize);
int SEQ_rendersize_to_proxysize(int render_size);
double SEQ_rendersize_to_scale_factor(int render_size);
+16 -16
View File
@@ -13,31 +13,31 @@ struct Main;
struct MovieClip;
struct ReportList;
struct Scene;
struct Sequence;
struct Strip;
/**
* Check if one sequence is input to the other.
*/
bool SEQ_relation_is_effect_of_strip(const Sequence *effect, const Sequence *input);
bool SEQ_relation_is_effect_of_strip(const Strip *effect, const Strip *input);
/**
* Function to free imbuf and anim data on changes.
*/
void SEQ_relations_sequence_free_anim(Sequence *seq);
void SEQ_relations_sequence_free_anim(Strip *seq);
bool SEQ_relations_check_scene_recursion(Scene *scene, ReportList *reports);
/**
* Check if "seq_main" (indirectly) uses strip "seq".
*/
bool SEQ_relations_render_loop_check(Sequence *seq_main, Sequence *seq);
bool SEQ_relations_render_loop_check(Strip *seq_main, Strip *seq);
void SEQ_relations_free_imbuf(Scene *scene, ListBase *seqbase, bool for_render);
void SEQ_relations_invalidate_cache_raw(Scene *scene, Sequence *seq);
void SEQ_relations_invalidate_cache_preprocessed(Scene *scene, Sequence *seq);
void SEQ_relations_invalidate_cache_composite(Scene *scene, Sequence *seq);
void SEQ_relations_invalidate_dependent(Scene *scene, Sequence *seq);
void SEQ_relations_invalidate_cache_raw(Scene *scene, Strip *seq);
void SEQ_relations_invalidate_cache_preprocessed(Scene *scene, Strip *seq);
void SEQ_relations_invalidate_cache_composite(Scene *scene, Strip *seq);
void SEQ_relations_invalidate_dependent(Scene *scene, Strip *seq);
void SEQ_relations_invalidate_scene_strips(Main *bmain, Scene *scene_target);
void SEQ_relations_invalidate_movieclip_strips(Main *bmain, MovieClip *clip_target);
void SEQ_relations_invalidate_cache_in_range(Scene *scene,
Sequence *seq,
Sequence *range_mask,
Strip *seq,
Strip *range_mask,
int invalidate_types);
/**
* Release FFmpeg handles of strips that are not currently displayed to minimize memory usage.
@@ -51,18 +51,18 @@ void SEQ_relations_check_uids_unique_and_report(const Scene *scene);
/**
* Generate new UID for the given sequence.
*/
void SEQ_relations_session_uid_generate(Sequence *sequence);
void SEQ_relations_session_uid_generate(Strip *sequence);
void SEQ_cache_cleanup(Scene *scene);
void SEQ_cache_iterate(
Scene *scene,
void *userdata,
bool callback_init(void *userdata, size_t item_count),
bool callback_iter(void *userdata, Sequence *seq, int timeline_frame, int cache_type));
bool callback_iter(void *userdata, Strip *seq, int timeline_frame, int cache_type));
/**
* Return immediate parent meta of sequence.
*/
Sequence *SEQ_find_metastrip_by_sequence(ListBase *seqbase /* = ed->seqbase */,
Sequence *meta /* = NULL */,
Sequence *seq);
bool SEQ_exists_in_seqbase(const Sequence *seq, const ListBase *seqbase);
Strip *SEQ_find_metastrip_by_sequence(ListBase *seqbase /* = ed->seqbase */,
Strip *meta /* = NULL */,
Strip *seq);
bool SEQ_exists_in_seqbase(const Strip *seq, const ListBase *seqbase);
+4 -6
View File
@@ -15,7 +15,7 @@ struct ImBuf;
struct ListBase;
struct Main;
struct Scene;
struct Sequence;
struct Strip;
struct StripElem;
enum eSeqTaskId {
@@ -57,9 +57,7 @@ struct SeqRenderData {
* \note The returned #ImBuf has its reference increased, free after usage!
*/
ImBuf *SEQ_render_give_ibuf(const SeqRenderData *context, float timeline_frame, int chanshown);
ImBuf *SEQ_render_give_ibuf_direct(const SeqRenderData *context,
float timeline_frame,
Sequence *seq);
ImBuf *SEQ_render_give_ibuf_direct(const SeqRenderData *context, float timeline_frame, Strip *seq);
void SEQ_render_new_render_data(Main *bmain,
Depsgraph *depsgraph,
Scene *scene,
@@ -68,7 +66,7 @@ void SEQ_render_new_render_data(Main *bmain,
int preview_render_size,
int for_render,
SeqRenderData *r_context);
StripElem *SEQ_render_give_stripelem(const Scene *scene, const Sequence *seq, int timeline_frame);
StripElem *SEQ_render_give_stripelem(const Scene *scene, const Strip *seq, int timeline_frame);
void SEQ_render_imbuf_from_sequencer_space(Scene *scene, ImBuf *ibuf);
void SEQ_render_pixel_from_sequencer_space_v4(Scene *scene, float pixel[4]);
@@ -76,4 +74,4 @@ void SEQ_render_pixel_from_sequencer_space_v4(Scene *scene, float pixel[4]);
* Check if `seq` is muted for rendering.
* This function also checks `SeqTimelineChannel` flag.
*/
bool SEQ_render_is_muted(const ListBase *channels, const Sequence *seq);
bool SEQ_render_is_muted(const ListBase *channels, const Strip *seq);
+26 -26
View File
@@ -13,51 +13,51 @@
struct Editing;
struct Scene;
struct Sequence;
struct Strip;
struct SeqRetimingKey;
blender::MutableSpan<SeqRetimingKey> SEQ_retiming_keys_get(const Sequence *seq);
blender::Map<SeqRetimingKey *, Sequence *> SEQ_retiming_selection_get(const Editing *ed);
int SEQ_retiming_keys_count(const Sequence *seq);
bool SEQ_retiming_is_active(const Sequence *seq);
void SEQ_retiming_data_ensure(Sequence *seq);
void SEQ_retiming_data_clear(Sequence *seq);
void SEQ_retiming_reset(Scene *scene, Sequence *seq);
bool SEQ_retiming_is_allowed(const Sequence *seq);
blender::MutableSpan<SeqRetimingKey> SEQ_retiming_keys_get(const Strip *seq);
blender::Map<SeqRetimingKey *, Strip *> SEQ_retiming_selection_get(const Editing *ed);
int SEQ_retiming_keys_count(const Strip *seq);
bool SEQ_retiming_is_active(const Strip *seq);
void SEQ_retiming_data_ensure(Strip *seq);
void SEQ_retiming_data_clear(Strip *seq);
void SEQ_retiming_reset(Scene *scene, Strip *seq);
bool SEQ_retiming_is_allowed(const Strip *seq);
/**
* Add new retiming key.
* This function always reallocates memory, so when function is used all stored pointers will
* become invalid.
*/
SeqRetimingKey *SEQ_retiming_add_key(const Scene *scene, Sequence *seq, int timeline_frame);
SeqRetimingKey *SEQ_retiming_add_transition(Sequence *seq, SeqRetimingKey *key, float offset);
SeqRetimingKey *SEQ_retiming_add_key(const Scene *scene, Strip *seq, int timeline_frame);
SeqRetimingKey *SEQ_retiming_add_transition(Strip *seq, SeqRetimingKey *key, float offset);
SeqRetimingKey *SEQ_retiming_add_freeze_frame(const Scene *scene,
Sequence *seq,
Strip *seq,
SeqRetimingKey *key,
const int offset);
bool SEQ_retiming_is_last_key(const Sequence *seq, const SeqRetimingKey *key);
SeqRetimingKey *SEQ_retiming_last_key_get(const Sequence *seq);
void SEQ_retiming_remove_key(Sequence *seq, SeqRetimingKey *key);
bool SEQ_retiming_is_last_key(const Strip *seq, const SeqRetimingKey *key);
SeqRetimingKey *SEQ_retiming_last_key_get(const Strip *seq);
void SEQ_retiming_remove_key(Strip *seq, SeqRetimingKey *key);
void SEQ_retiming_transition_key_frame_set(const Scene *scene,
const Sequence *seq,
const Strip *seq,
SeqRetimingKey *key,
int timeline_frame);
float SEQ_retiming_key_speed_get(const Sequence *seq, const SeqRetimingKey *key);
float SEQ_retiming_key_speed_get(const Strip *seq, const SeqRetimingKey *key);
void SEQ_retiming_key_speed_set(
const Scene *scene, Sequence *seq, SeqRetimingKey *key, float speed, bool keep_retiming);
int SEQ_retiming_key_index_get(const Sequence *seq, const SeqRetimingKey *key);
const Scene *scene, Strip *seq, SeqRetimingKey *key, float speed, bool keep_retiming);
int SEQ_retiming_key_index_get(const Strip *seq, const SeqRetimingKey *key);
SeqRetimingKey *SEQ_retiming_key_get_by_timeline_frame(const Scene *scene,
const Sequence *seq,
const Strip *seq,
int timeline_frame);
void SEQ_retiming_sound_animation_data_set(const Scene *scene, const Sequence *seq);
void SEQ_retiming_sound_animation_data_set(const Scene *scene, const Strip *seq);
int SEQ_retiming_key_timeline_frame_get(const Scene *scene,
const Sequence *seq,
const Strip *seq,
const SeqRetimingKey *key);
void SEQ_retiming_key_timeline_frame_set(const Scene *scene,
Sequence *seq,
Strip *seq,
SeqRetimingKey *key,
int timeline_frame);
SeqRetimingKey *SEQ_retiming_find_segment_start_key(const Sequence *seq, float frame_index);
SeqRetimingKey *SEQ_retiming_find_segment_start_key(const Strip *seq, float frame_index);
bool SEQ_retiming_key_is_transition_type(const SeqRetimingKey *key);
bool SEQ_retiming_key_is_transition_start(const SeqRetimingKey *key);
SeqRetimingKey *SEQ_retiming_transition_start_get(SeqRetimingKey *key);
@@ -66,8 +66,8 @@ bool SEQ_retiming_selection_clear(const Editing *ed);
void SEQ_retiming_selection_append(SeqRetimingKey *key);
void SEQ_retiming_selection_remove(SeqRetimingKey *key);
void SEQ_retiming_selection_copy(SeqRetimingKey *dst, const SeqRetimingKey *src);
void SEQ_retiming_remove_multiple_keys(Sequence *seq,
void SEQ_retiming_remove_multiple_keys(Strip *seq,
blender::Vector<SeqRetimingKey *> &keys_to_remove);
bool SEQ_retiming_selection_contains(const Editing *ed, const SeqRetimingKey *key);
bool SEQ_retiming_selection_has_whole_transition(const Editing *ed, SeqRetimingKey *key);
bool SEQ_retiming_data_is_editable(const Sequence *seq);
bool SEQ_retiming_data_is_editable(const Strip *seq);
+4 -4
View File
@@ -9,8 +9,8 @@
*/
struct Scene;
struct Sequence;
struct Strip;
Sequence *SEQ_select_active_get(const Scene *scene);
bool SEQ_select_active_get_pair(Scene *scene, Sequence **r_seq_act, Sequence **r_seq_other);
void SEQ_select_active_set(Scene *scene, Sequence *seq);
Strip *SEQ_select_active_get(const Scene *scene);
bool SEQ_select_active_get_pair(Scene *scene, Strip **r_seq_act, Strip **r_seq_other);
void SEQ_select_active_set(Scene *scene, Strip *seq);
+10 -14
View File
@@ -18,7 +18,7 @@ struct Main;
struct MetaStack;
struct Scene;
struct SeqTimelineChannel;
struct Sequence;
struct Strip;
struct SequencerToolSettings;
constexpr int SEQ_MAX_CHANNELS = 128;
@@ -65,8 +65,8 @@ ListBase *SEQ_active_seqbase_get(const Editing *ed);
* \param seqbase: ListBase with strips
*/
void SEQ_seqbase_active_set(Editing *ed, ListBase *seqbase);
Sequence *SEQ_sequence_alloc(ListBase *lb, int timeline_frame, int machine, int type);
void SEQ_sequence_free(Scene *scene, Sequence *seq);
Strip *SEQ_sequence_alloc(ListBase *lb, int timeline_frame, int machine, int type);
void SEQ_sequence_free(Scene *scene, Strip *seq);
/**
* Get #MetaStack that corresponds to current level that is being viewed
*
@@ -79,25 +79,22 @@ MetaStack *SEQ_meta_stack_active_get(const Editing *ed);
* \param ed: sequence editor data
* \param seqm: meta sequence or NULL for top level view
*/
void SEQ_meta_stack_set(const Scene *scene, Sequence *dst_seq);
void SEQ_meta_stack_set(const Scene *scene, Strip *dst_seq);
/**
* Close last Meta strip open for editing.
*
* \param ed: sequence editor data
*/
Sequence *SEQ_meta_stack_pop(Editing *ed);
Sequence *SEQ_sequence_dupli_recursive(const Scene *scene_src,
Scene *scene_dst,
ListBase *new_seq_list,
Sequence *seq,
int dupe_flag);
Strip *SEQ_meta_stack_pop(Editing *ed);
Strip *SEQ_sequence_dupli_recursive(
const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Strip *seq, int dupe_flag);
void SEQ_sequence_base_dupli_recursive(const Scene *scene_src,
Scene *scene_dst,
ListBase *nseqbase,
const ListBase *seqbase,
int dupe_flag,
int flag);
bool SEQ_is_valid_strip_channel(const Sequence *seq);
bool SEQ_is_valid_strip_channel(const Strip *seq);
/**
* Read and Write functions for `.blend` file data.
@@ -126,14 +123,13 @@ void SEQ_eval_sequences(Depsgraph *depsgraph, Scene *scene, ListBase *seqbase);
*
* \return pointer to Sequence
*/
Sequence *SEQ_sequence_lookup_seq_by_name(const Scene *scene, const char *key);
Strip *SEQ_sequence_lookup_seq_by_name(const Scene *scene, const char *key);
/**
* Find which meta strip the given timeline channel belongs to. Returns nullptr if it is a global
* channel.
*/
Sequence *SEQ_sequence_lookup_owner_by_channel(const Scene *scene,
const SeqTimelineChannel *channel);
Strip *SEQ_sequence_lookup_owner_by_channel(const Scene *scene, const SeqTimelineChannel *channel);
/**
* Free lookup hash data.
+6 -6
View File
@@ -11,7 +11,7 @@
struct EQCurveMappingData;
struct Main;
struct Scene;
struct Sequence;
struct Strip;
struct bSound;
struct SequenceModifierData;
struct SoundModifierWorkerInfo;
@@ -27,23 +27,23 @@ struct SoundEqualizerModifierData;
#define SOUND_EQUALIZER_SIZE_DEFINITION 1000
void SEQ_sound_update_bounds_all(Scene *scene);
void SEQ_sound_update_bounds(Scene *scene, Sequence *seq);
void SEQ_sound_update_bounds(Scene *scene, Strip *seq);
void SEQ_sound_update(Scene *scene, bSound *sound);
void SEQ_sound_update_length(Main *bmain, Scene *scene);
float SEQ_sound_pitch_get(const Scene *scene, const Sequence *seq);
float SEQ_sound_pitch_get(const Scene *scene, const Strip *seq);
EQCurveMappingData *SEQ_sound_equalizer_add(SoundEqualizerModifierData *semd,
float minX,
float maxX);
void SEQ_sound_blend_write(BlendWriter *writer, ListBase *soundbase);
void SEQ_sound_blend_read_data(BlendDataReader *reader, ListBase *lb);
void *SEQ_sound_modifier_recreator(Sequence *seq, SequenceModifierData *smd, void *sound);
void *SEQ_sound_modifier_recreator(Strip *seq, SequenceModifierData *smd, void *sound);
void SEQ_sound_equalizermodifier_init_data(SequenceModifierData *smd);
void SEQ_sound_equalizermodifier_free(SequenceModifierData *smd);
void SEQ_sound_equalizermodifier_copy_data(SequenceModifierData *target,
SequenceModifierData *smd);
void *SEQ_sound_equalizermodifier_recreator(Sequence *seq, SequenceModifierData *smd, void *sound);
void *SEQ_sound_equalizermodifier_recreator(Strip *seq, SequenceModifierData *smd, void *sound);
void SEQ_sound_equalizermodifier_set_graphs(SoundEqualizerModifierData *semd, int number);
const SoundModifierWorkerInfo *SEQ_sound_modifier_worker_info_get(int type);
EQCurveMappingData *SEQ_sound_equalizermodifier_add_graph(SoundEqualizerModifierData *semd,
@@ -54,5 +54,5 @@ void SEQ_sound_equalizermodifier_remove_graph(SoundEqualizerModifierData *semd,
struct SoundModifierWorkerInfo {
int type;
void *(*recreator)(Sequence *seq, SequenceModifierData *smd, void *sound);
void *(*recreator)(Strip *seq, SequenceModifierData *smd, void *sound);
};
@@ -11,7 +11,7 @@
struct bContext;
struct ImBuf;
struct rctf;
struct Sequence;
struct Strip;
struct Scene;
#include "BLI_function_ref.hh"
@@ -35,7 +35,7 @@ static constexpr int SEQ_THUMB_SIZE = 256;
* processed in the background. */
ImBuf *thumbnail_cache_get(const bContext *C,
Scene *scene,
const Sequence *seq,
const Strip *seq,
float timeline_frame);
/**
@@ -44,7 +44,7 @@ ImBuf *thumbnail_cache_get(const bContext *C,
*/
void thumbnail_cache_maintain_capacity(Scene *scene);
void thumbnail_cache_invalidate_strip(Scene *scene, const Sequence *seq);
void thumbnail_cache_invalidate_strip(Scene *scene, const Strip *seq);
/**
* Discard in-flight thumbnail loading requests that are outside of the given view (X coordinate:
@@ -55,6 +55,6 @@ void thumbnail_cache_discard_requests_outside(Scene *scene, const rctf &rect);
void thumbnail_cache_clear(Scene *scene);
void thumbnail_cache_destroy(Scene *scene);
bool strip_can_have_thumbnail(const Scene *scene, const Sequence *seq);
bool strip_can_have_thumbnail(const Scene *scene, const Strip *seq);
} // namespace blender::seq
+19 -19
View File
@@ -10,7 +10,7 @@
struct ListBase;
struct Scene;
struct Sequence;
struct Strip;
struct rctf;
/**
@@ -39,7 +39,7 @@ void SEQ_timeline_boundbox(const Scene *scene, const ListBase *seqbase, rctf *r_
* Get FPS rate of source media. Movie, scene and movie-clip strips are supported.
* Returns 0 for unsupported strip or if media can't be loaded.
*/
float SEQ_time_sequence_get_fps(Scene *scene, Sequence *seq);
float SEQ_time_sequence_get_fps(Scene *scene, Strip *seq);
/**
* Find start or end position of next or previous strip.
* \param scene: Video editing scene
@@ -63,74 +63,74 @@ int SEQ_time_find_next_prev_edit(Scene *scene,
* \param timeline_frame: absolute frame position
* \return true if strip intersects with timeline frame.
*/
bool SEQ_time_strip_intersects_frame(const Scene *scene, const Sequence *seq, int timeline_frame);
bool SEQ_time_strip_intersects_frame(const Scene *scene, const Strip *seq, int timeline_frame);
/* Convert timeline frame so strip frame index. */
float SEQ_give_frame_index(const Scene *scene, const Sequence *seq, float timeline_frame);
float SEQ_give_frame_index(const Scene *scene, const Strip *seq, float timeline_frame);
/**
* Returns true if strip has frames without content to render.
*/
bool SEQ_time_has_still_frames(const Scene *scene, const Sequence *seq);
bool SEQ_time_has_still_frames(const Scene *scene, const Strip *seq);
/**
* Returns true if at beginning of strip there is no content to be rendered.
*/
bool SEQ_time_has_left_still_frames(const Scene *scene, const Sequence *seq);
bool SEQ_time_has_left_still_frames(const Scene *scene, const Strip *seq);
/**
* Returns true if at end of strip there is no content to be rendered.
*/
bool SEQ_time_has_right_still_frames(const Scene *scene, const Sequence *seq);
bool SEQ_time_has_right_still_frames(const Scene *scene, const Strip *seq);
/**
* Get timeline frame where strip boundary starts.
*/
int SEQ_time_left_handle_frame_get(const Scene *scene, const Sequence *seq);
int SEQ_time_left_handle_frame_get(const Scene *scene, const Strip *seq);
/**
* Get timeline frame where strip boundary ends.
*/
int SEQ_time_right_handle_frame_get(const Scene *scene, const Sequence *seq);
int SEQ_time_right_handle_frame_get(const Scene *scene, const Strip *seq);
/**
* Set frame where strip boundary starts. This function moves only handle, content is not moved.
*/
void SEQ_time_left_handle_frame_set(const Scene *scene, Sequence *seq, int timeline_frame);
void SEQ_time_left_handle_frame_set(const Scene *scene, Strip *seq, int timeline_frame);
/**
* Set frame where strip boundary ends.
* This function moves only handle, content is not moved.
*/
void SEQ_time_right_handle_frame_set(const Scene *scene, Sequence *seq, int timeline_frame);
void SEQ_time_right_handle_frame_set(const Scene *scene, Strip *seq, int timeline_frame);
/**
* Get number of frames (in timeline) that can be rendered.
* This can change depending on scene FPS or strip speed factor.
*/
int SEQ_time_strip_length_get(const Scene *scene, const Sequence *seq);
int SEQ_time_strip_length_get(const Scene *scene, const Strip *seq);
/**
* Get timeline frame where strip content starts.
*/
float SEQ_time_start_frame_get(const Sequence *seq);
float SEQ_time_start_frame_get(const Strip *seq);
/**
* Get timeline frame where strip content ends.
*/
float SEQ_time_content_end_frame_get(const Scene *scene, const Sequence *seq);
float SEQ_time_content_end_frame_get(const Scene *scene, const Strip *seq);
/**
* Set frame where strip content starts.
* This function will also move strip handles.
*/
void SEQ_time_start_frame_set(const Scene *scene, Sequence *seq, int timeline_frame);
void SEQ_time_start_frame_set(const Scene *scene, Strip *seq, int timeline_frame);
/**
* Update meta strip content start and end, update sound playback range.
* To be used after any contained strip length or position has changed.
*
* \note this function is currently only used internally and in versioning code.
*/
void SEQ_time_update_meta_strip_range(const Scene *scene, Sequence *seq_meta);
void SEQ_time_update_meta_strip_range(const Scene *scene, Strip *seq_meta);
/**
* Move contents of a strip without moving the strip handles.
*/
void SEQ_time_slip_strip(const Scene *scene, Sequence *seq, int delta, float subframe_delta);
void SEQ_time_slip_strip(const Scene *scene, Strip *seq, int delta, float subframe_delta);
/**
* Get difference between scene and movie strip frame-rate.
*/
float SEQ_time_media_playback_rate_factor_get(const Scene *scene, const Sequence *seq);
float SEQ_time_media_playback_rate_factor_get(const Scene *scene, const Strip *seq);
/**
* Get the sound offset (if any) and round it to the nearest integer.
* This is mostly used in places where subframe data is not allowed (like re-timing key positions).
* Returns zero if sequence is not a sound strip or if there is no offset.
*/
int SEQ_time_get_rounded_sound_offset(const Scene *scene, const Sequence *seq);
int SEQ_time_get_rounded_sound_offset(const Scene *scene, const Strip *seq);
+21 -23
View File
@@ -10,32 +10,32 @@
struct ListBase;
struct Scene;
struct Sequence;
struct Strip;
bool SEQ_transform_sequence_can_be_translated(const Sequence *seq);
bool SEQ_transform_sequence_can_be_translated(const Strip *seq);
/**
* Used so we can do a quick check for single image seq
* since they work a bit differently to normal image seq's (during transform).
*/
bool SEQ_transform_single_image_check(const Sequence *seq);
bool SEQ_transform_test_overlap(const Scene *scene, ListBase *seqbasep, Sequence *test);
bool SEQ_transform_test_overlap_seq_seq(const Scene *scene, Sequence *seq1, Sequence *seq2);
void SEQ_transform_translate_sequence(Scene *evil_scene, Sequence *seq, int delta);
bool SEQ_transform_single_image_check(const Strip *seq);
bool SEQ_transform_test_overlap(const Scene *scene, ListBase *seqbasep, Strip *test);
bool SEQ_transform_test_overlap_seq_seq(const Scene *scene, Strip *seq1, Strip *seq2);
void SEQ_transform_translate_sequence(Scene *evil_scene, Strip *seq, int delta);
/**
* \return 0 if there weren't enough space.
*/
bool SEQ_transform_seqbase_shuffle_ex(ListBase *seqbasep,
Sequence *test,
Strip *test,
Scene *evil_scene,
int channel_delta);
bool SEQ_transform_seqbase_shuffle(ListBase *seqbasep, Sequence *test, Scene *evil_scene);
bool SEQ_transform_seqbase_shuffle_time(blender::Span<Sequence *> strips_to_shuffle,
blender::Span<Sequence *> time_dependent_strips,
bool SEQ_transform_seqbase_shuffle(ListBase *seqbasep, Strip *test, Scene *evil_scene);
bool SEQ_transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
blender::Span<Strip *> time_dependent_strips,
ListBase *seqbasep,
Scene *evil_scene,
ListBase *markers,
bool use_sync_markers);
bool SEQ_transform_seqbase_shuffle_time(blender::Span<Sequence *> strips_to_shuffle,
bool SEQ_transform_seqbase_shuffle_time(blender::Span<Strip *> strips_to_shuffle,
ListBase *seqbasep,
Scene *evil_scene,
ListBase *markers,
@@ -43,12 +43,12 @@ bool SEQ_transform_seqbase_shuffle_time(blender::Span<Sequence *> strips_to_shuf
void SEQ_transform_handle_overlap(Scene *scene,
ListBase *seqbasep,
blender::Span<Sequence *> transformed_strips,
blender::Span<Sequence *> time_dependent_strips,
blender::Span<Strip *> transformed_strips,
blender::Span<Strip *> time_dependent_strips,
bool use_sync_markers);
void SEQ_transform_handle_overlap(Scene *scene,
ListBase *seqbasep,
blender::Span<Sequence *> transformed_strips,
blender::Span<Strip *> transformed_strips,
bool use_sync_markers);
/**
* Check if the selected seq's reference unselected seq's.
@@ -71,11 +71,11 @@ void SEQ_transform_offset_after_frame(Scene *scene,
* Check if `seq` can be moved.
* This function also checks `SeqTimelineChannel` flag.
*/
bool SEQ_transform_is_locked(ListBase *channels, const Sequence *seq);
bool SEQ_transform_is_locked(ListBase *channels, const Strip *seq);
/* Image transformation. */
void SEQ_image_transform_mirror_factor_get(const Sequence *seq, float r_mirror[2]);
void SEQ_image_transform_mirror_factor_get(const Strip *seq, float r_mirror[2]);
/**
* Get strip transform origin offset from image center
* NOTE: This function does not apply axis mirror.
@@ -85,7 +85,7 @@ void SEQ_image_transform_mirror_factor_get(const Sequence *seq, float r_mirror[2
* \param r_origin: return value
*/
void SEQ_image_transform_origin_offset_pixelspace_get(const Scene *scene,
const Sequence *seq,
const Strip *seq,
float r_origin[2]);
/**
* Get 4 corner points of strip image, optionally without rotation component applied.
@@ -97,7 +97,7 @@ void SEQ_image_transform_origin_offset_pixelspace_get(const Scene *scene,
* \param r_quad: array of 4 2D vectors
*/
void SEQ_image_transform_quad_get(const Scene *scene,
const Sequence *seq,
const Strip *seq,
bool apply_rotation,
float r_quad[4][2]);
/**
@@ -107,9 +107,7 @@ void SEQ_image_transform_quad_get(const Scene *scene,
* \param seq: Sequence to calculate transformed image quad
* \param r_quad: array of 4 2D vectors
*/
void SEQ_image_transform_final_quad_get(const Scene *scene,
const Sequence *seq,
float r_quad[4][2]);
void SEQ_image_transform_final_quad_get(const Scene *scene, const Strip *seq, float r_quad[4][2]);
void SEQ_image_preview_unit_to_px(const Scene *scene, const float co_src[2], float co_dst[2]);
void SEQ_image_preview_unit_from_px(const Scene *scene, const float co_src[2], float co_dst[2]);
@@ -125,7 +123,7 @@ void SEQ_image_preview_unit_from_px(const Scene *scene, const float co_src[2], f
* \param r_max: Maximum x and y values
*/
void SEQ_image_transform_bounding_box_from_collection(Scene *scene,
blender::Span<Sequence *> strips,
blender::Span<Strip *> strips,
bool apply_rotation,
float r_min[2],
float r_max[2]);
@@ -139,5 +137,5 @@ void SEQ_image_transform_bounding_box_from_collection(Scene *scene,
* \param r_transform_matrix: Return value
*/
void SEQ_image_transform_matrix_get(const Scene *scene,
const Sequence *seq,
const Strip *seq,
float r_transform_matrix[4][4]);
+15 -15
View File
@@ -14,34 +14,34 @@ struct bSound;
struct ListBase;
struct Mask;
struct Scene;
struct Sequence;
struct Strip;
struct StripElem;
void SEQ_sequence_base_unique_name_recursive(Scene *scene, ListBase *seqbasep, Sequence *seq);
const char *SEQ_sequence_give_name(const Sequence *seq);
ListBase *SEQ_get_seqbase_from_sequence(Sequence *seq, ListBase **r_channels, int *r_offset);
const Sequence *SEQ_get_topmost_sequence(const Scene *scene, int frame);
void SEQ_sequence_base_unique_name_recursive(Scene *scene, ListBase *seqbasep, Strip *seq);
const char *SEQ_sequence_give_name(const Strip *seq);
ListBase *SEQ_get_seqbase_from_sequence(Strip *seq, ListBase **r_channels, int *r_offset);
const Strip *SEQ_get_topmost_sequence(const Scene *scene, int frame);
/**
* In cases where we don't know the sequence's listbase.
*/
ListBase *SEQ_get_seqbase_by_seq(const Scene *scene, Sequence *seq);
ListBase *SEQ_get_seqbase_by_seq(const Scene *scene, Strip *seq);
/**
* Only use as last resort when the StripElem is available but no the Sequence.
* (needed for RNA)
*/
Sequence *SEQ_sequence_from_strip_elem(ListBase *seqbase, StripElem *se);
Sequence *SEQ_get_sequence_by_name(ListBase *seqbase, const char *name, bool recursive);
Strip *SEQ_sequence_from_strip_elem(ListBase *seqbase, StripElem *se);
Strip *SEQ_get_sequence_by_name(ListBase *seqbase, const char *name, bool recursive);
Mask *SEQ_active_mask_get(Scene *scene);
void SEQ_alpha_mode_from_file_extension(Sequence *seq);
void SEQ_alpha_mode_from_file_extension(Strip *seq);
/**
* Check if an input referenced by this strip is valid (e.g. scene for a scene strip).
* Note that this only checks data block references, for missing media referenced
* by paths use #media_presence_is_missing.
*/
bool SEQ_sequence_has_valid_data(const Sequence *seq);
bool SEQ_sequence_has_valid_data(const Strip *seq);
void SEQ_set_scale_to_fit(const Sequence *seq,
void SEQ_set_scale_to_fit(const Strip *seq,
int image_width,
int image_height,
int preview_width,
@@ -54,7 +54,7 @@ void SEQ_set_scale_to_fit(const Sequence *seq,
* \param seq: Sequence which name will be ensured to be unique
* \param scene: Scene in which name must be unique
*/
void SEQ_ensure_unique_name(Sequence *seq, Scene *scene);
void SEQ_ensure_unique_name(Strip *seq, Scene *scene);
void SEQ_fontmap_clear();
@@ -69,17 +69,17 @@ namespace blender::seq {
* \param seq: Sequencer strip.
* \return True if media file is missing.
*/
bool media_presence_is_missing(Scene *scene, const Sequence *seq);
bool media_presence_is_missing(Scene *scene, const Strip *seq);
/**
* Set or change the missing media cache value for a given strip.
*/
void media_presence_set_missing(Scene *scene, const Sequence *seq, bool missing);
void media_presence_set_missing(Scene *scene, const Strip *seq, bool missing);
/**
* Invalidate media presence cache for the given strip.
*/
void media_presence_invalidate_strip(Scene *scene, const Sequence *seq);
void media_presence_invalidate_strip(Scene *scene, const Strip *seq);
/**
* Invalidate media presence cache for the given sound.
+8 -10
View File
@@ -35,13 +35,13 @@ bool SEQ_animation_drivers_exist(Scene *scene)
return scene->adt != nullptr && !BLI_listbase_is_empty(&scene->adt->drivers);
}
bool SEQ_fcurve_matches(const Sequence &seq, const FCurve &fcurve)
bool SEQ_fcurve_matches(const Strip &seq, const FCurve &fcurve)
{
return animrig::fcurve_matches_collection_path(
fcurve, "sequence_editor.sequences_all[", seq.name + 2);
}
void SEQ_offset_animdata(Scene *scene, Sequence *seq, int ofs)
void SEQ_offset_animdata(Scene *scene, Strip *seq, int ofs)
{
if (!SEQ_animation_keyframes_exist(scene) || ofs == 0) {
return;
@@ -73,7 +73,7 @@ void SEQ_offset_animdata(Scene *scene, Sequence *seq, int ofs)
DEG_id_tag_update(&scene->adt->action->id, ID_RECALC_ANIMATION);
}
void SEQ_free_animdata(Scene *scene, Sequence *seq)
void SEQ_free_animdata(Scene *scene, Strip *seq)
{
if (!SEQ_animation_keyframes_exist(scene)) {
return;
@@ -144,13 +144,13 @@ void SEQ_animation_restore_original(Scene *scene, SeqAnimationBackup *backup)
/**
* Duplicate the animation in `src` that matches items in `seq` into `dst`.
*/
static void seq_animation_duplicate(Sequence *seq,
static void seq_animation_duplicate(Strip *seq,
animrig::Action &dst,
const animrig::slot_handle_t dst_slot_handle,
SeqAnimationBackup *src)
{
if (seq->type == SEQ_TYPE_META) {
LISTBASE_FOREACH (Sequence *, meta_child, &seq->seqbase) {
LISTBASE_FOREACH (Strip *, meta_child, &seq->seqbase) {
seq_animation_duplicate(meta_child, dst, dst_slot_handle, src);
}
}
@@ -187,10 +187,10 @@ static void seq_animation_duplicate(Sequence *seq,
/**
* Duplicate the drivers in `src` that matches items in `seq` into `dst`.
*/
static void seq_drivers_duplicate(Sequence *seq, AnimData *dst, SeqAnimationBackup *src)
static void seq_drivers_duplicate(Strip *seq, AnimData *dst, SeqAnimationBackup *src)
{
if (seq->type == SEQ_TYPE_META) {
LISTBASE_FOREACH (Sequence *, meta_child, &seq->seqbase) {
LISTBASE_FOREACH (Strip *, meta_child, &seq->seqbase) {
seq_drivers_duplicate(meta_child, dst, src);
}
}
@@ -204,9 +204,7 @@ static void seq_drivers_duplicate(Sequence *seq, AnimData *dst, SeqAnimationBack
}
}
void SEQ_animation_duplicate_backup_to_scene(Scene *scene,
Sequence *seq,
SeqAnimationBackup *backup)
void SEQ_animation_duplicate_backup_to_scene(Scene *scene, Strip *seq, SeqAnimationBackup *backup)
{
BLI_assert(scene != nullptr);
+2 -2
View File
@@ -84,11 +84,11 @@ bool SEQ_channel_is_muted(const SeqTimelineChannel *channel)
return (channel->flag & SEQ_CHANNEL_MUTE) != 0;
}
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, ListBase *channels, const Sequence *seq)
ListBase *SEQ_get_channels_by_seq(ListBase *seqbase, ListBase *channels, const Strip *seq)
{
ListBase *lb = nullptr;
LISTBASE_FOREACH (Sequence *, iseq, seqbase) {
LISTBASE_FOREACH (Strip *, iseq, seqbase) {
if (seq == iseq) {
return channels;
}
@@ -291,7 +291,7 @@ static void seq_disk_cache_get_project_dir(SeqDiskCache *disk_cache,
}
static void seq_disk_cache_get_dir(
SeqDiskCache *disk_cache, Scene *scene, Sequence *seq, char *dirpath, size_t dirpath_maxncpy)
SeqDiskCache *disk_cache, Scene *scene, Strip *seq, char *dirpath, size_t dirpath_maxncpy)
{
char scene_name[MAX_ID_NAME + 22]; /* + -%PRId64 */
char seq_name[SEQ_NAME_MAXSTR];
@@ -369,7 +369,7 @@ static void seq_disk_cache_handle_versioning(SeqDiskCache *disk_cache)
static void seq_disk_cache_delete_invalid_files(SeqDiskCache *disk_cache,
Scene *scene,
Sequence *seq,
Strip *seq,
int invalidate_types,
int range_start,
int range_end)
@@ -394,11 +394,8 @@ static void seq_disk_cache_delete_invalid_files(SeqDiskCache *disk_cache,
}
}
void seq_disk_cache_invalidate(SeqDiskCache *disk_cache,
Scene *scene,
Sequence *seq,
Sequence *seq_changed,
int invalidate_types)
void seq_disk_cache_invalidate(
SeqDiskCache *disk_cache, Scene *scene, Strip *seq, Strip *seq_changed, int invalidate_types)
{
int start;
int end;
@@ -17,7 +17,7 @@ struct Main;
struct Scene;
struct SeqCacheKey;
struct SeqDiskCache;
struct Sequence;
struct Strip;
SeqDiskCache *seq_disk_cache_create(Main *bmain, Scene *scene);
void seq_disk_cache_free(SeqDiskCache *disk_cache);
@@ -25,8 +25,5 @@ bool seq_disk_cache_is_enabled(Main *bmain);
ImBuf *seq_disk_cache_read_file(SeqDiskCache *disk_cache, SeqCacheKey *key);
bool seq_disk_cache_write_file(SeqDiskCache *disk_cache, SeqCacheKey *key, ImBuf *ibuf);
bool seq_disk_cache_enforce_limits(SeqDiskCache *disk_cache);
void seq_disk_cache_invalidate(SeqDiskCache *disk_cache,
Scene *scene,
Sequence *seq,
Sequence *seq_changed,
int invalidate_types);
void seq_disk_cache_invalidate(
SeqDiskCache *disk_cache, Scene *scene, Strip *seq, Strip *seq_changed, int invalidate_types);
@@ -100,23 +100,23 @@ Array<float> make_gaussian_blur_kernel(float rad, int size)
return gaussian;
}
static void init_noop(Sequence * /*seq*/) {}
static void init_noop(Strip * /*seq*/) {}
static void load_noop(Sequence * /*seq*/) {}
static void load_noop(Strip * /*seq*/) {}
static void free_noop(Sequence * /*seq*/, const bool /*do_id_user*/) {}
static void free_noop(Strip * /*seq*/, const bool /*do_id_user*/) {}
static int num_inputs_default()
{
return 2;
}
static StripEarlyOut early_out_noop(const Sequence * /*seq*/, float /*fac*/)
static StripEarlyOut early_out_noop(const Strip * /*seq*/, float /*fac*/)
{
return StripEarlyOut::DoEffect;
}
StripEarlyOut early_out_fade(const Sequence * /*seq*/, float fac)
StripEarlyOut early_out_fade(const Strip * /*seq*/, float fac)
{
if (fac == 0.0f) {
return StripEarlyOut::UseInput1;
@@ -127,7 +127,7 @@ StripEarlyOut early_out_fade(const Sequence * /*seq*/, float fac)
return StripEarlyOut::DoEffect;
}
StripEarlyOut early_out_mul_input2(const Sequence * /*seq*/, float fac)
StripEarlyOut early_out_mul_input2(const Strip * /*seq*/, float fac)
{
if (fac == 0.0f) {
return StripEarlyOut::UseInput1;
@@ -135,7 +135,7 @@ StripEarlyOut early_out_mul_input2(const Sequence * /*seq*/, float fac)
return StripEarlyOut::DoEffect;
}
StripEarlyOut early_out_mul_input1(const Sequence * /*seq*/, float fac)
StripEarlyOut early_out_mul_input1(const Strip * /*seq*/, float fac)
{
if (fac == 0.0f) {
return StripEarlyOut::UseInput2;
@@ -144,17 +144,14 @@ StripEarlyOut early_out_mul_input1(const Sequence * /*seq*/, float fac)
}
static void get_default_fac_noop(const Scene * /*scene*/,
const Sequence * /*seq*/,
const Strip * /*seq*/,
float /*timeline_frame*/,
float *fac)
{
*fac = 1.0f;
}
void get_default_fac_fade(const Scene *scene,
const Sequence *seq,
float timeline_frame,
float *fac)
void get_default_fac_fade(const Scene *scene, const Strip *seq, float timeline_frame, float *fac)
{
*fac = float(timeline_frame - SEQ_time_left_handle_frame_get(scene, seq));
*fac /= SEQ_time_strip_length_get(scene, seq);
@@ -255,7 +252,7 @@ SeqEffectHandle get_sequence_effect_impl(int seq_type)
return rval;
}
SeqEffectHandle SEQ_effect_handle_get(Sequence *seq)
SeqEffectHandle SEQ_effect_handle_get(Strip *seq)
{
SeqEffectHandle rval = {};
@@ -270,7 +267,7 @@ SeqEffectHandle SEQ_effect_handle_get(Sequence *seq)
return rval;
}
SeqEffectHandle seq_effect_get_sequence_blend(Sequence *seq)
SeqEffectHandle seq_effect_get_sequence_blend(Strip *seq)
{
SeqEffectHandle rval = {};
@@ -17,19 +17,19 @@
struct ImBuf;
struct Scene;
struct Sequence;
struct Strip;
SeqEffectHandle seq_effect_get_sequence_blend(Sequence *seq);
SeqEffectHandle seq_effect_get_sequence_blend(Strip *seq);
/**
* Build frame map when speed in mode #SEQ_SPEED_MULTIPLY is animated.
* This is, because `target_frame` value is integrated over time.
*/
void seq_effect_speed_rebuild_map(Scene *scene, Sequence *seq);
void seq_effect_speed_rebuild_map(Scene *scene, Strip *seq);
/**
* Override timeline_frame when rendering speed effect input.
*/
float seq_speed_effect_target_frame_get(Scene *scene,
Sequence *seq_speed,
Strip *seq_speed,
float timeline_frame,
int input);
@@ -78,13 +78,10 @@ inline void store_opaque_black_pixel(float *dst)
dst[3] = 1.0f;
}
StripEarlyOut early_out_mul_input1(const Sequence * /*seq*/, float fac);
StripEarlyOut early_out_mul_input2(const Sequence * /*seq*/, float fac);
StripEarlyOut early_out_fade(const Sequence * /*seq*/, float fac);
void get_default_fac_fade(const Scene *scene,
const Sequence *seq,
float timeline_frame,
float *fac);
StripEarlyOut early_out_mul_input1(const Strip * /*seq*/, float fac);
StripEarlyOut early_out_mul_input2(const Strip * /*seq*/, float fac);
StripEarlyOut early_out_fade(const Strip * /*seq*/, float fac);
void get_default_fac_fade(const Scene *scene, const Strip *seq, float timeline_frame, float *fac);
SeqEffectHandle get_sequence_effect_impl(int seq_type);
@@ -45,7 +45,7 @@ struct AddEffectOp {
};
static ImBuf *do_add_effect(const SeqRenderData *context,
Sequence * /*seq*/,
Strip * /*seq*/,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -89,7 +89,7 @@ struct SubEffectOp {
};
static ImBuf *do_sub_effect(const SeqRenderData *context,
Sequence * /*seq*/,
Strip * /*seq*/,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -133,7 +133,7 @@ struct MulEffectOp {
};
static ImBuf *do_mul_effect(const SeqRenderData *context,
Sequence * /*seq*/,
Strip * /*seq*/,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -23,12 +23,12 @@ static int num_inputs_adjustment()
return 0;
}
static StripEarlyOut early_out_adjustment(const Sequence * /*seq*/, float /*fac*/)
static StripEarlyOut early_out_adjustment(const Strip * /*seq*/, float /*fac*/)
{
return StripEarlyOut::NoInput;
}
static ImBuf *do_adjustment_impl(const SeqRenderData *context, Sequence *seq, float timeline_frame)
static ImBuf *do_adjustment_impl(const SeqRenderData *context, Strip *seq, float timeline_frame)
{
Editing *ed;
ImBuf *i = nullptr;
@@ -55,7 +55,7 @@ static ImBuf *do_adjustment_impl(const SeqRenderData *context, Sequence *seq, fl
* a meta-strip and have that work on everything below the meta-strip. */
if (!i) {
Sequence *meta;
Strip *meta;
meta = SEQ_find_metastrip_by_sequence(&ed->seqbase, nullptr, seq);
@@ -68,7 +68,7 @@ static ImBuf *do_adjustment_impl(const SeqRenderData *context, Sequence *seq, fl
}
static ImBuf *do_adjustment(const SeqRenderData *context,
Sequence *seq,
Strip *seq,
float timeline_frame,
float /*fac*/,
ImBuf * /*ibuf1*/,
@@ -22,10 +22,10 @@ using namespace blender;
/* -------------------------------------------------------------------- */
/* Alpha Over Effect */
static void init_alpha_over_or_under(Sequence *seq)
static void init_alpha_over_or_under(Strip *seq)
{
Sequence *seq1 = seq->seq1;
Sequence *seq2 = seq->seq2;
Strip *seq1 = seq->seq1;
Strip *seq2 = seq->seq2;
seq->seq2 = seq1;
seq->seq1 = seq2;
@@ -77,7 +77,7 @@ struct AlphaOverEffectOp {
};
static ImBuf *do_alphaover_effect(const SeqRenderData *context,
Sequence * /*seq*/,
Strip * /*seq*/,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -126,7 +126,7 @@ struct AlphaUnderEffectOp {
};
static ImBuf *do_alphaunder_effect(const SeqRenderData *context,
Sequence * /*seq*/,
Strip * /*seq*/,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -318,7 +318,7 @@ struct BlendModeEffectOp {
};
static ImBuf *do_blend_mode_effect(const SeqRenderData *context,
Sequence *seq,
Strip *seq,
float /*timeline_frame*/,
float fac,
ImBuf *src1,
@@ -335,7 +335,7 @@ static ImBuf *do_blend_mode_effect(const SeqRenderData *context,
/* -------------------------------------------------------------------- */
/* Color Mix Effect */
static void init_colormix_effect(Sequence *seq)
static void init_colormix_effect(Strip *seq)
{
if (seq->effectdata) {
MEM_freeN(seq->effectdata);
@@ -347,7 +347,7 @@ static void init_colormix_effect(Sequence *seq)
}
static ImBuf *do_colormix_effect(const SeqRenderData *context,
Sequence *seq,
Strip *seq,
float /*timeline_frame*/,
float /*fac*/,
ImBuf *src1,
@@ -371,7 +371,7 @@ static ImBuf *do_colormix_effect(const SeqRenderData *context,
* inputs and thus the effect "fade" factor controlling the other input. */
static ImBuf *do_overdrop_effect(const SeqRenderData *context,
Sequence *seq,
Strip *seq,
float timeline_frame,
float fac,
ImBuf *src1,
@@ -380,12 +380,12 @@ static ImBuf *do_overdrop_effect(const SeqRenderData *context,
return do_alphaover_effect(context, seq, timeline_frame, fac, src1, src2);
}
static void copy_effect_default(Sequence *dst, const Sequence *src, const int /*flag*/)
static void copy_effect_default(Strip *dst, const Strip *src, const int /*flag*/)
{
dst->effectdata = MEM_dupallocN(src->effectdata);
}
static void free_effect_default(Sequence *seq, const bool /*do_id_user*/)
static void free_effect_default(Strip *seq, const bool /*do_id_user*/)
{
MEM_SAFE_FREE(seq->effectdata);
}

Some files were not shown because too many files have changed in this diff Show More