From 97cf2a9fb1070614a7428974dd763b4de988d272 Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Wed, 19 May 2021 22:45:43 +0200 Subject: VSE: Refactor sorting functions Recently `SEQ_sort()` function was split so functionality is provided on per-seqbase basis. After discussion about this split, it turned out, that per-seqbase operation is only that should be provided, because RNA API functions need to be able to access arbitrary seqbase Remove recently introduced function `seq_sort_seqbase` and change `SEQ_sort` function to operate on seqbase. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11297 --- source/blender/sequencer/SEQ_utils.h | 2 +- source/blender/sequencer/intern/strip_add.c | 2 +- source/blender/sequencer/intern/strip_edit.c | 2 +- source/blender/sequencer/intern/utils.c | 25 +++++-------------------- source/blender/sequencer/intern/utils.h | 1 - 5 files changed, 8 insertions(+), 24 deletions(-) (limited to 'source/blender/sequencer') diff --git a/source/blender/sequencer/SEQ_utils.h b/source/blender/sequencer/SEQ_utils.h index 361246d74c5..9d529089ffc 100644 --- a/source/blender/sequencer/SEQ_utils.h +++ b/source/blender/sequencer/SEQ_utils.h @@ -35,7 +35,7 @@ struct Scene; struct Sequence; struct StripElem; -void SEQ_sort(struct Scene *scene); +void SEQ_sort(struct ListBase *seqbase); void SEQ_sequence_base_unique_name_recursive(struct ListBase *seqbasep, struct Sequence *seq); const char *SEQ_sequence_give_name(struct Sequence *seq); struct ListBase *SEQ_get_seqbase_from_sequence(struct Sequence *seq, int *r_offset); diff --git a/source/blender/sequencer/intern/strip_add.c b/source/blender/sequencer/intern/strip_add.c index 1106f47c477..5ec2269b993 100644 --- a/source/blender/sequencer/intern/strip_add.c +++ b/source/blender/sequencer/intern/strip_add.c @@ -100,7 +100,7 @@ static void seq_add_generic_update(Scene *scene, ListBase *seqbase, Sequence *se { SEQ_sequence_base_unique_name_recursive(seqbase, seq); SEQ_time_update_sequence_bounds(scene, seq); - SEQ_sort(scene); + SEQ_sort(seqbase); SEQ_relations_invalidate_cache_composite(scene, seq); } diff --git a/source/blender/sequencer/intern/strip_edit.c b/source/blender/sequencer/intern/strip_edit.c index b5b0dc2770e..18f99272ee7 100644 --- a/source/blender/sequencer/intern/strip_edit.c +++ b/source/blender/sequencer/intern/strip_edit.c @@ -407,7 +407,7 @@ Sequence *SEQ_edit_strip_split(Main *bmain, /* Sort list, so that no strip can depend on next strip in list. * This is important for SEQ_time_update_sequence functionality. */ - seq_sort_seqbase(&left_strips); + SEQ_sort(&left_strips); /* Duplicate ListBase. */ ListBase right_strips = {NULL, NULL}; diff --git a/source/blender/sequencer/intern/utils.c b/source/blender/sequencer/intern/utils.c index 8da71b0ac56..cf1d7d66476 100644 --- a/source/blender/sequencer/intern/utils.c +++ b/source/blender/sequencer/intern/utils.c @@ -59,9 +59,12 @@ * * \param seqbase: ListBase with strips */ - -void seq_sort_seqbase(ListBase *seqbase) +void SEQ_sort(ListBase *seqbase) { + if (seqbase == NULL) { + return; + } + /* all strips together per kind, and in order of y location ("machine") */ ListBase inputbase, effbase; Sequence *seq, *seqt; @@ -103,24 +106,6 @@ void seq_sort_seqbase(ListBase *seqbase) BLI_movelisttolist(seqbase, &effbase); } -/** - * Sort strips in active seqbase. Effect strips are trailing the list and they are sorted by - * channel position as well. - * This is important for SEQ_time_update_sequence to work properly - * - * \param scene: Scene to look for active seqbase in - */ -void SEQ_sort(Scene *scene) -{ - Editing *ed = SEQ_editing_get(scene, false); - - if (ed == NULL) { - return; - } - - seq_sort_seqbase(SEQ_active_seqbase_get(ed)); -} - typedef struct SeqUniqueInfo { Sequence *seq; char name_src[SEQ_NAME_MAXSTR]; diff --git a/source/blender/sequencer/intern/utils.h b/source/blender/sequencer/intern/utils.h index 0ec78a6cfa5..97f33bb3ae0 100644 --- a/source/blender/sequencer/intern/utils.h +++ b/source/blender/sequencer/intern/utils.h @@ -34,7 +34,6 @@ void seq_open_anim_file(struct Scene *scene, struct Sequence *seq, bool openfile struct Sequence *seq_find_metastrip_by_sequence(ListBase *seqbase /* = ed->seqbase */, struct Sequence *meta /* = NULL */, struct Sequence *seq); -void seq_sort_seqbase(ListBase *seqbase); #ifdef __cplusplus } -- cgit v1.2.3