Blender V5.0
SEQ_sequencer.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2004-2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
10
11#include "BLI_map.hh"
12#include "BLI_vector_set.hh"
13#include "DNA_scene_types.h"
14
15struct BlendDataReader;
16struct BlendWriter;
17struct Depsgraph;
18struct Editing;
19struct Main;
20struct MetaStack;
21struct Scene;
23struct Strip;
25
26namespace blender::seq {
27
28constexpr int MAX_CHANNELS = 128;
29
30/* RNA enums, just to be more readable */
31enum {
38};
39
40/* strip_duplicate' flags */
41enum class StripDuplicate : uint8_t {
42 /* Note: Technically, the selected strips are duplicated when `All` is not set. */
44 /* Ensure strips have a unique name. */
45 UniqueName = (1 << 0),
46 /* Duplicate strips and the IDs they reference. */
47 Data = (1 << 1),
48 /* If this is set, duplicate all strips. If not set, duplicate selected strips. */
49 All = (1 << 3),
50};
52
55void tool_settings_free(SequencerToolSettings *tool_settings);
64Editing *editing_get(const Scene *scene);
66void editing_free(Scene *scene, bool do_id_user);
74Strip *strip_alloc(ListBase *lb, int timeline_frame, int channel, int type);
75void strip_free(Scene *scene, Strip *strip);
88void meta_stack_set(const Scene *scene, Strip *dst);
96 const Scene *scene_src,
97 Scene *scene_dst,
98 ListBase *new_seq_list,
99 Strip *strip,
100 StripDuplicate dupe_flag);
102 const Scene *scene_src,
103 Scene *scene_dst,
104 ListBase *nseqbase,
105 const ListBase *seqbase,
106 StripDuplicate dupe_flag,
107 int flag);
108bool is_valid_strip_channel(const Strip *strip);
109
113void blend_write(BlendWriter *writer, ListBase *seqbase);
114void blend_read(BlendDataReader *reader, ListBase *seqbase);
115
117
118/* Depsgraph update function. */
119
125void eval_strips(Depsgraph *depsgraph, Scene *scene, ListBase *seqbase);
126
137Strip *lookup_strip_by_name(Editing *ed, const char *key);
138
148
155
165
185
190
191} // namespace blender::seq
#define ENUM_OPERATORS(_type, _max)
eSeqImageFitMethod
eSeqOverlapMode
BPy_StructRNA * depsgraph
Strip * lookup_meta_by_strip(Editing *ed, const Strip *key)
SequencerToolSettings * tool_settings_init()
Definition sequencer.cc:359
blender::Map< const Scene *, VectorSet< Strip * > > & lookup_strips_by_scene_map_get(Editing *ed)
void eval_strips(Depsgraph *depsgraph, Scene *scene, ListBase *seqbase)
Strip * lookup_strip_by_name(Editing *ed, const char *key)
eSeqImageFitMethod tool_settings_fit_method_get(Scene *scene)
Definition sequencer.cc:391
void doversion_250_sound_proxy_update(Main *bmain, Editing *ed)
Span< Strip * > lookup_strips_by_scene(Editing *ed, const Scene *key)
SequencerToolSettings * tool_settings_copy(SequencerToolSettings *tool_settings)
Definition sequencer.cc:841
void blend_write(BlendWriter *writer, ListBase *seqbase)
Definition sequencer.cc:947
void tool_settings_free(SequencerToolSettings *tool_settings)
Definition sequencer.cc:386
Editing * editing_get(const Scene *scene)
Definition sequencer.cc:286
void meta_stack_set(const Scene *scene, Strip *dst)
Definition sequencer.cc:463
Span< Strip * > lookup_strips_by_compositor_node_group(Editing *ed, const bNodeTree *key)
void strip_free(Scene *scene, Strip *strip)
Definition sequencer.cc:269
MetaStack * meta_stack_active_get(const Editing *ed)
Definition sequencer.cc:454
Strip * lookup_strip_by_channel_owner(Editing *ed, const SeqTimelineChannel *channel)
Editing * editing_ensure(Scene *scene)
Definition sequencer.cc:291
void editing_free(Scene *scene, const bool do_id_user)
Definition sequencer.cc:305
constexpr int MAX_CHANNELS
int tool_settings_pivot_point_get(Scene *scene)
Definition sequencer.cc:427
void tool_settings_fit_method_set(Scene *scene, eSeqImageFitMethod fit_method)
Definition sequencer.cc:415
bool is_valid_strip_channel(const Strip *strip)
Definition sequencer.cc:836
short tool_settings_snap_flag_get(Scene *scene)
Definition sequencer.cc:403
SequencerToolSettings * tool_settings_ensure(Scene *scene)
Definition sequencer.cc:375
int tool_settings_snap_distance_get(Scene *scene)
Definition sequencer.cc:409
static void strip_lookup_free(StripLookup **lookup)
Strip * strip_duplicate_recursive(Main *bmain, const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Strip *strip, const StripDuplicate dupe_flag)
Definition sequencer.cc:766
ListBase * active_seqbase_get(const Editing *ed)
Definition sequencer.cc:433
short tool_settings_snap_mode_get(Scene *scene)
Definition sequencer.cc:397
Strip * meta_stack_pop(Editing *ed)
Definition sequencer.cc:484
void blend_read(BlendDataReader *reader, ListBase *seqbase)
Strip * strip_alloc(ListBase *lb, int timeline_frame, int channel, int type)
Definition sequencer.cc:136
void strip_lookup_invalidate(const Editing *ed)
eSeqOverlapMode tool_settings_overlap_mode_get(Scene *scene)
Definition sequencer.cc:421
void seqbase_duplicate_recursive(Main *bmain, const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, const StripDuplicate dupe_flag, const int flag)
Definition sequencer.cc:819
uint8_t flag
Definition wm_window.cc:145