diff --git a/source/blender/editors/space_sequencer/sequencer_add.cc b/source/blender/editors/space_sequencer/sequencer_add.cc index 477ca1d0b8d..cfd580de73f 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.cc +++ b/source/blender/editors/space_sequencer/sequencer_add.cc @@ -1436,10 +1436,8 @@ 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, *seq3; - if (!seq_effect_find_selected( - scene, nullptr, load_data.effect.type, &seq1, &seq2, &seq3, &error_msg)) - { + Sequence *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; } @@ -1450,13 +1448,11 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) load_data.effect.seq1 = seq1; load_data.effect.seq2 = seq2; - load_data.effect.seq3 = seq3; /* Set channel. If unset, use lowest free one above strips. */ if (!RNA_struct_property_is_set(op->ptr, "channel")) { if (seq1 != nullptr) { - int chan = max_iii( - seq1 ? seq1->machine : 0, seq2 ? seq2->machine : 0, seq3 ? seq3->machine : 0); + int chan = max_ii(seq1 ? seq1->machine : 0, seq2 ? seq2->machine : 0); if (chan < MAXSEQ) { load_data.channel = chan; } diff --git a/source/blender/editors/space_sequencer/sequencer_edit.cc b/source/blender/editors/space_sequencer/sequencer_edit.cc index b506a138216..dd8c3e85b09 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.cc +++ b/source/blender/editors/space_sequencer/sequencer_edit.cc @@ -406,12 +406,6 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op) scene, seq, (snap_frame - SEQ_time_left_handle_frame_get(scene, seq))); } } - else if (seq->seq3 && (seq->seq3->flag & SELECT)) { - if (!either_handle_selected) { - SEQ_offset_animdata( - scene, seq, (snap_frame - SEQ_time_left_handle_frame_get(scene, seq))); - } - } } } @@ -1206,11 +1200,10 @@ int seq_effect_find_selected(Scene *scene, int type, Sequence **r_selseq1, Sequence **r_selseq2, - Sequence **r_selseq3, const char **r_error_str) { Editing *ed = SEQ_editing_get(scene); - Sequence *seq1 = nullptr, *seq2 = nullptr, *seq3 = nullptr; + Sequence *seq1 = nullptr, *seq2 = nullptr; *r_error_str = nullptr; @@ -1219,7 +1212,7 @@ int seq_effect_find_selected(Scene *scene, } if (SEQ_effect_get_num_inputs(type) == 0) { - *r_selseq1 = *r_selseq2 = *r_selseq3 = nullptr; + *r_selseq1 = *r_selseq2 = nullptr; return 1; } @@ -1236,25 +1229,14 @@ int seq_effect_find_selected(Scene *scene, else if (seq1 == nullptr) { seq1 = seq; } - else if (seq3 == nullptr) { - seq3 = seq; - } else { - *r_error_str = N_("Cannot apply effect to more than 3 sequence strips"); + *r_error_str = N_("Cannot apply effect to more than 2 sequence strips"); return 0; } } } } - /* Make sequence selection a little bit more intuitive - * for 3 strips: the last-strip should be seq3. */ - if (seq3 != nullptr && seq2 != nullptr) { - Sequence *tmp = seq2; - seq2 = seq3; - seq3 = tmp; - } - switch (SEQ_effect_get_num_inputs(type)) { case 1: if (seq2 == nullptr) { @@ -1264,34 +1246,24 @@ int seq_effect_find_selected(Scene *scene, if (seq1 == nullptr) { seq1 = seq2; } - if (seq3 == nullptr) { - seq3 = seq2; - } ATTR_FALLTHROUGH; case 2: if (seq1 == nullptr || seq2 == nullptr) { *r_error_str = N_("2 selected sequence strips are needed"); return 0; } - if (seq3 == nullptr) { - seq3 = seq2; - } break; } - if (seq1 == nullptr && seq2 == nullptr && seq3 == nullptr) { + if (seq1 == nullptr && seq2 == nullptr) { *r_error_str = N_("TODO: in what cases does this happen?"); return 0; } *r_selseq1 = seq1; *r_selseq2 = seq2; - *r_selseq3 = seq3; /* TODO(Richard): This function needs some refactoring, this is just quick hack for #73828. */ - if (SEQ_effect_get_num_inputs(type) < 3) { - *r_selseq3 = nullptr; - } if (SEQ_effect_get_num_inputs(type) < 2) { *r_selseq2 = nullptr; } @@ -1302,7 +1274,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, *seq3, *last_seq = SEQ_select_active_get(scene); + Sequence *seq1, *seq2, *last_seq = SEQ_select_active_get(scene); const char *error_msg; if (SEQ_effect_get_num_inputs(last_seq->type) == 0) { @@ -1310,8 +1282,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - if (!seq_effect_find_selected( - scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg) || + if (!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &error_msg) || SEQ_effect_get_num_inputs(last_seq->type) == 0) { BKE_report(op->reports, RPT_ERROR, error_msg); @@ -1319,8 +1290,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op) } /* Check if reassigning would create recursivity. */ if (SEQ_relations_render_loop_check(seq1, last_seq) || - SEQ_relations_render_loop_check(seq2, last_seq) || - SEQ_relations_render_loop_check(seq3, last_seq)) + SEQ_relations_render_loop_check(seq2, last_seq)) { BKE_report(op->reports, RPT_ERROR, "Cannot reassign inputs: recursion detected"); return OPERATOR_CANCELLED; @@ -1328,7 +1298,6 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op) last_seq->seq1 = seq1; last_seq->seq2 = seq2; - last_seq->seq3 = seq3; int old_start = last_seq->start; @@ -1407,7 +1376,7 @@ void SEQUENCER_OT_swap_inputs(wmOperatorType *ot) /* Identifiers. */ ot->name = "Swap Inputs"; ot->idname = "SEQUENCER_OT_swap_inputs"; - ot->description = "Swap the first two inputs for the effect strip"; + ot->description = "Swap the two inputs of the effect strip"; /* Api callbacks. */ ot->exec = sequencer_swap_inputs_exec; @@ -2363,7 +2332,7 @@ static Sequence *find_next_prev_sequence(Scene *scene, Sequence *test, int lr, i static bool seq_is_parent(const Sequence *par, const Sequence *seq) { - return ((par->seq1 == seq) || (par->seq2 == seq) || (par->seq3 == seq)); + return ((par->seq1 == seq) || (par->seq2 == seq)); } static int sequencer_swap_exec(bContext *C, wmOperator *op) @@ -2384,13 +2353,11 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op) if (seq) { /* Disallow effect strips. */ - if (SEQ_effect_get_num_inputs(seq->type) >= 1 && - (seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3)) - { + if (SEQ_effect_get_num_inputs(seq->type) >= 1 && (seq->effectdata || seq->seq1 || seq->seq2)) { return OPERATOR_CANCELLED; } if ((SEQ_effect_get_num_inputs(active_seq->type) >= 1) && - (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3)) + (active_seq->effectdata || active_seq->seq1 || active_seq->seq2)) { return OPERATOR_CANCELLED; } @@ -2650,34 +2617,12 @@ void SEQUENCER_OT_swap_data(wmOperatorType *ot) /** \name Change Effect Input Operator * \{ */ -static const EnumPropertyItem prop_change_effect_input_types[] = { - {0, "A_B", 0, "A " BLI_STR_UTF8_RIGHTWARDS_ARROW " B", ""}, - {1, "B_C", 0, "B " BLI_STR_UTF8_RIGHTWARDS_ARROW " C", ""}, - {2, "A_C", 0, "A " BLI_STR_UTF8_RIGHTWARDS_ARROW " C", ""}, - {0, nullptr, 0, nullptr, nullptr}, -}; - static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op) { Scene *scene = CTX_data_scene(C); Sequence *seq = SEQ_select_active_get(scene); - Sequence **seq_1, **seq_2; - - switch (RNA_enum_get(op->ptr, "swap")) { - case 0: - seq_1 = &seq->seq1; - seq_2 = &seq->seq2; - break; - case 1: - seq_1 = &seq->seq2; - seq_2 = &seq->seq3; - break; - default: /* 2 */ - seq_1 = &seq->seq1; - seq_2 = &seq->seq3; - break; - } + Sequence **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"); @@ -2704,9 +2649,6 @@ void SEQUENCER_OT_change_effect_input(wmOperatorType *ot) /* Flags. */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - - ot->prop = RNA_def_enum( - ot->srna, "swap", prop_change_effect_input_types, 0, "Swap", "The effect inputs to swap"); } /** \} */ diff --git a/source/blender/editors/space_sequencer/sequencer_intern.hh b/source/blender/editors/space_sequencer/sequencer_intern.hh index 24e74b34229..8d86c846b83 100644 --- a/source/blender/editors/space_sequencer/sequencer_intern.hh +++ b/source/blender/editors/space_sequencer/sequencer_intern.hh @@ -177,7 +177,6 @@ int seq_effect_find_selected(Scene *scene, int type, Sequence **r_selseq1, Sequence **r_selseq2, - Sequence **r_selseq3, const char **r_error_str); /* Operator helpers. */ diff --git a/source/blender/editors/space_sequencer/sequencer_select.cc b/source/blender/editors/space_sequencer/sequencer_select.cc index a7498395c97..aa022776090 100644 --- a/source/blender/editors/space_sequencer/sequencer_select.cc +++ b/source/blender/editors/space_sequencer/sequencer_select.cc @@ -2422,9 +2422,6 @@ static bool select_grouped_effect(blender::Span strips, if (seq->seq2) { seq->seq2->flag |= SELECT; } - if (seq->seq3) { - seq->seq3->flag |= SELECT; - } changed = true; } } diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index defeb673c17..90852893136 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -194,16 +194,14 @@ typedef struct Sequence { float startstill, endstill; /** Machine: the strip channel */ int machine; - int _pad; /** Starting and ending points of the effect strip. Undefined for other strip types. */ int startdisp, enddisp; float sat; float mul; - float _pad1; - short anim_preseek; /* UNUSED. */ /** Stream-index for movie or sound files with several streams. */ short streamindex; + short _pad; /** For multi-camera source selection. */ int multicam_source; /** MOVIECLIP render flags. */ @@ -231,7 +229,7 @@ typedef struct Sequence { float speed_fader; /* pointers for effects: */ - struct Sequence *seq1, *seq2, *seq3; + struct Sequence *seq1, *seq2; /** List of strips for meta-strips. */ ListBase seqbase; @@ -291,7 +289,6 @@ typedef struct Sequence { float speed_factor; struct SeqRetimingKey *retiming_keys; - void *_pad5; int retiming_keys_num; char _pad6[4]; diff --git a/source/blender/makesrna/intern/rna_sequencer.cc b/source/blender/makesrna/intern/rna_sequencer.cc index 700d1a736ae..efb47ac1d29 100644 --- a/source/blender/makesrna/intern/rna_sequencer.cc +++ b/source/blender/makesrna/intern/rna_sequencer.cc @@ -2696,16 +2696,6 @@ static void rna_def_effect_inputs(StructRNA *srna, int count) RNA_def_property_pointer_funcs(prop, nullptr, "rna_Sequence_input_2_set", nullptr, nullptr); RNA_def_property_ui_text(prop, "Input 2", "Second input for the effect strip"); } - -# if 0 - if (count == 3) { - /* Not used by any effects (perhaps one day plugins?). */ - prop = RNA_def_property(srna, "input_3", PROP_POINTER, PROP_NONE); - RNA_def_property_pointer_sdna(prop, nullptr, "seq3"); - RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_NULL); - RNA_def_property_ui_text(prop, "Input 3", "Third input for the effect strip"); - } -# endif } static void rna_def_color_management(StructRNA *srna) diff --git a/source/blender/makesrna/intern/rna_sequencer_api.cc b/source/blender/makesrna/intern/rna_sequencer_api.cc index 014f7270c56..6522a1a6ca8 100644 --- a/source/blender/makesrna/intern/rna_sequencer_api.cc +++ b/source/blender/makesrna/intern/rna_sequencer_api.cc @@ -450,8 +450,7 @@ static Sequence *rna_Sequences_new_effect(ID *id, int frame_start, int frame_end, Sequence *seq1, - Sequence *seq2, - Sequence *seq3) + Sequence *seq2) { Scene *scene = (Scene *)id; Sequence *seq; @@ -476,17 +475,11 @@ static Sequence *rna_Sequences_new_effect(ID *id, return nullptr; } break; - case 3: - if (seq1 == nullptr || seq2 == nullptr || seq3 == nullptr) { - BKE_report(reports, RPT_ERROR, "Sequences.new_effect: effect takes 3 input sequences"); - return nullptr; - } - break; default: BKE_reportf( reports, RPT_ERROR, - "Sequences.new_effect: effect expects more than 3 inputs (%d, should never happen!)", + "Sequences.new_effect: effect expects more than 2 inputs (%d, should never happen!)", num_inputs); return nullptr; } @@ -497,7 +490,6 @@ static Sequence *rna_Sequences_new_effect(ID *id, load_data.effect.type = type; load_data.effect.seq1 = seq1; load_data.effect.seq2 = seq2; - load_data.effect.seq3 = seq3; seq = SEQ_add_effect_strip(scene, seqbase, &load_data); DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS); @@ -515,11 +507,10 @@ static Sequence *rna_Sequences_editing_new_effect(ID *id, int frame_start, int frame_end, Sequence *seq1, - Sequence *seq2, - Sequence *seq3) + Sequence *seq2) { return rna_Sequences_new_effect( - id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3); + id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2); } static Sequence *rna_Sequences_meta_new_effect(ID *id, @@ -531,11 +522,10 @@ static Sequence *rna_Sequences_meta_new_effect(ID *id, int frame_start, int frame_end, Sequence *seq1, - Sequence *seq2, - Sequence *seq3) + Sequence *seq2) { return rna_Sequences_new_effect( - id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3); + id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2); } static void rna_Sequences_remove( @@ -1075,7 +1065,6 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastri 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, "seq3", "Sequence", "", "Sequence 3 for effect"); /* return type */ parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); RNA_def_function_return(func, parm); diff --git a/source/blender/sequencer/SEQ_add.hh b/source/blender/sequencer/SEQ_add.hh index 8bd6b6859e7..b0baaee8921 100644 --- a/source/blender/sequencer/SEQ_add.hh +++ b/source/blender/sequencer/SEQ_add.hh @@ -48,7 +48,6 @@ struct SeqLoadData { int end_frame; Sequence *seq1; Sequence *seq2; - Sequence *seq3; } effect; /* Only for effect strips. */ eSeqLoadFlags flags; eSeqImageFitMethod fit_method; diff --git a/source/blender/sequencer/intern/iterator.cc b/source/blender/sequencer/intern/iterator.cc index 0eb0a150cfa..14a78662f99 100644 --- a/source/blender/sequencer/intern/iterator.cc +++ b/source/blender/sequencer/intern/iterator.cc @@ -243,16 +243,11 @@ void SEQ_query_strip_effect_chain(const Scene *scene, if (reference_strip->seq2) { SEQ_query_strip_effect_chain(scene, reference_strip->seq2, seqbase, strips); } - if (reference_strip->seq3) { - SEQ_query_strip_effect_chain(scene, reference_strip->seq3, seqbase, strips); - } } /* Find all strips connected to reference_strip. */ LISTBASE_FOREACH (Sequence *, seq_test, seqbase) { - if (seq_test->seq1 == reference_strip || seq_test->seq2 == reference_strip || - seq_test->seq3 == reference_strip) - { + if (seq_test->seq1 == reference_strip || seq_test->seq2 == reference_strip) { SEQ_query_strip_effect_chain(scene, seq_test, seqbase, strips); } } diff --git a/source/blender/sequencer/intern/sequencer.cc b/source/blender/sequencer/intern/sequencer.cc index 587fcbab329..b72e692e816 100644 --- a/source/blender/sequencer/intern/sequencer.cc +++ b/source/blender/sequencer/intern/sequencer.cc @@ -316,9 +316,6 @@ static void seq_new_fix_links_recursive(Sequence *seq) if (seq->seq2 && seq->seq2->tmp) { seq->seq2 = static_cast(seq->seq2->tmp); } - if (seq->seq3 && seq->seq3->tmp) { - seq->seq3 = static_cast(seq->seq3->tmp); - } } else if (seq->type == SEQ_TYPE_META) { LISTBASE_FOREACH (Sequence *, seqn, &seq->seqbase) { @@ -829,12 +826,6 @@ static bool seq_read_data_cb(Sequence *seq, void *user_data) BLO_read_struct(reader, Sequence, &seq->seq1); BLO_read_struct(reader, Sequence, &seq->seq2); - BLO_read_struct(reader, Sequence, &seq->seq3); - - /* a patch: after introduction of effects with 3 input strips */ - if (seq->seq3 == nullptr) { - seq->seq3 = seq->seq2; - } if (seq->effectdata) { switch (seq->type) { diff --git a/source/blender/sequencer/intern/strip_add.cc b/source/blender/sequencer/intern/strip_add.cc index 8890c89db6b..186ffe486c0 100644 --- a/source/blender/sequencer/intern/strip_add.cc +++ b/source/blender/sequencer/intern/strip_add.cc @@ -167,7 +167,6 @@ Sequence *SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, SeqLoadData *loa sh.init(seq); seq->seq1 = load_data->effect.seq1; seq->seq2 = load_data->effect.seq2; - seq->seq3 = load_data->effect.seq3; if (SEQ_effect_get_num_inputs(seq->type) == 1) { seq->blend_mode = seq->seq1->blend_mode; diff --git a/source/blender/sequencer/intern/strip_edit.cc b/source/blender/sequencer/intern/strip_edit.cc index 14bccb8165c..6779b4262f9 100644 --- a/source/blender/sequencer/intern/strip_edit.cc +++ b/source/blender/sequencer/intern/strip_edit.cc @@ -367,13 +367,6 @@ static bool seq_edit_split_effect_inputs_intersect(const Scene *scene, scene, seq->seq2, timeline_frame); } } - if (seq->seq3) { - input_does_intersect |= seq_edit_split_intersect_check(scene, seq->seq3, timeline_frame); - if ((seq->seq1->type & SEQ_TYPE_EFFECT) != 0) { - input_does_intersect |= seq_edit_split_effect_inputs_intersect( - scene, seq->seq3, timeline_frame); - } - } return input_does_intersect; } diff --git a/source/blender/sequencer/intern/strip_relations.cc b/source/blender/sequencer/intern/strip_relations.cc index 59f030bfb9a..57cc5cbf09c 100644 --- a/source/blender/sequencer/intern/strip_relations.cc +++ b/source/blender/sequencer/intern/strip_relations.cc @@ -379,8 +379,7 @@ bool SEQ_relations_render_loop_check(Sequence *seq_main, Sequence *seq) } if ((seq_main->seq1 && SEQ_relations_render_loop_check(seq_main->seq1, seq)) || - (seq_main->seq2 && SEQ_relations_render_loop_check(seq_main->seq2, seq)) || - (seq_main->seq3 && SEQ_relations_render_loop_check(seq_main->seq3, seq))) + (seq_main->seq2 && SEQ_relations_render_loop_check(seq_main->seq2, seq))) { return true; } diff --git a/source/blender/sequencer/intern/strip_transform.cc b/source/blender/sequencer/intern/strip_transform.cc index 53f6a4accbd..6d8cf102c30 100644 --- a/source/blender/sequencer/intern/strip_transform.cc +++ b/source/blender/sequencer/intern/strip_transform.cc @@ -59,16 +59,13 @@ bool SEQ_transform_seqbase_isolated_sel_check(ListBase *seqbase) if (seq->flag & SELECT) { if ((seq->seq1 && (seq->seq1->flag & SELECT) == 0) || - (seq->seq2 && (seq->seq2->flag & SELECT) == 0) || - (seq->seq3 && (seq->seq3->flag & SELECT) == 0)) + (seq->seq2 && (seq->seq2->flag & SELECT) == 0)) { return false; } } else { - if ((seq->seq1 && (seq->seq1->flag & SELECT)) || (seq->seq2 && (seq->seq2->flag & SELECT)) || - (seq->seq3 && (seq->seq3->flag & SELECT))) - { + if ((seq->seq1 && (seq->seq1->flag & SELECT)) || (seq->seq2 && (seq->seq2->flag & SELECT))) { return false; } }