Blender  V3.3
Classes | Typedefs | Functions
utils.c File Reference
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_mask_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_blenlib.h"
#include "BKE_animsys.h"
#include "BKE_image.h"
#include "BKE_main.h"
#include "BKE_scene.h"
#include "SEQ_animation.h"
#include "SEQ_channels.h"
#include "SEQ_edit.h"
#include "SEQ_iterator.h"
#include "SEQ_relations.h"
#include "SEQ_render.h"
#include "SEQ_select.h"
#include "SEQ_sequencer.h"
#include "SEQ_time.h"
#include "SEQ_utils.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "multiview.h"
#include "proxy.h"
#include "sequencer.h"
#include "utils.h"

Go to the source code of this file.

Classes

struct  SeqUniqueInfo
 

Typedefs

typedef struct SeqUniqueInfo SeqUniqueInfo
 

Functions

static void seqbase_unique_name (ListBase *seqbasep, SeqUniqueInfo *sui)
 
static bool seqbase_unique_name_recursive_fn (Sequence *seq, void *arg_pt)
 
void SEQ_sequence_base_unique_name_recursive (struct Scene *scene, ListBase *seqbasep, Sequence *seq)
 
static const char * give_seqname_by_type (int type)
 
const char * SEQ_sequence_give_name (Sequence *seq)
 
ListBase * SEQ_get_seqbase_from_sequence (Sequence *seq, ListBase **r_channels, int *r_offset)
 
void seq_open_anim_file (Scene *scene, Sequence *seq, bool openfile)
 
const Sequence * SEQ_get_topmost_sequence (const Scene *scene, int frame)
 
ListBase * SEQ_get_seqbase_by_seq (const Scene *scene, Sequence *seq)
 
Sequence * SEQ_get_meta_by_seqbase (ListBase *seqbase_main, ListBase *meta_seqbase)
 
Sequence * SEQ_sequence_from_strip_elem (ListBase *seqbase, StripElem *se)
 
Sequence * 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)
 
bool SEQ_sequence_has_source (const Sequence *seq)
 
bool sequencer_seq_generates_image (Sequence *seq)
 
void SEQ_set_scale_to_fit (const Sequence *seq, const int image_width, const int image_height, const int preview_width, const int preview_height, const eSeqImageFitMethod fit_method)
 
void SEQ_ensure_unique_name (Sequence *seq, Scene *scene)
 

Typedef Documentation

◆ SeqUniqueInfo

typedef struct SeqUniqueInfo SeqUniqueInfo

Function Documentation

◆ give_seqname_by_type()

static const char* give_seqname_by_type ( int  type)
static

◆ SEQ_active_mask_get()

Mask* SEQ_active_mask_get ( Scene *  scene)

◆ SEQ_alpha_mode_from_file_extension()

void SEQ_alpha_mode_from_file_extension ( Sequence *  seq)

◆ SEQ_ensure_unique_name()

void SEQ_ensure_unique_name ( struct Sequence *  seq,
struct Scene *  scene 
)

Ensure, that provided Sequence has unique name. If animation data exists for this Sequence, it will be duplicated and mapped onto new name

Parameters
seqSequence which name will be ensured to be unique
sceneScene in which name must be unique

Definition at line 523 of file utils.c.

References Scene::adt, BKE_animdata_fix_paths_rename(), BLI_strncpy_utf8(), Scene::ed, Scene::id, LISTBASE_FOREACH, Sequence::name, NULL, scene, SEQ_NAME_MAXSTR, SEQ_sequence_base_unique_name_recursive(), SEQ_TYPE_META, Sequence::seqbase, Editing::seqbase, and Sequence::type.

Referenced by SEQ_edit_strip_split(), sequencer_add_duplicate_exec(), and sequencer_paste_exec().

◆ SEQ_get_meta_by_seqbase()

Sequence* SEQ_get_meta_by_seqbase ( ListBase *  seqbase_main,
ListBase *  meta_seqbase 
)

◆ SEQ_get_seqbase_by_seq()

ListBase* SEQ_get_seqbase_by_seq ( const Scene *  scene,
Sequence *  seq 
)

◆ SEQ_get_seqbase_from_sequence()

ListBase* SEQ_get_seqbase_from_sequence ( Sequence *  seq,
ListBase **  r_channels,
int *  r_offset 
)

◆ SEQ_get_sequence_by_name()

Sequence* SEQ_get_sequence_by_name ( ListBase *  seqbase,
const char *  name,
bool  recursive 
)

◆ SEQ_get_topmost_sequence()

const Sequence* SEQ_get_topmost_sequence ( const Scene *  scene,
int  frame 
)

◆ seq_open_anim_file()

void seq_open_anim_file ( Scene *  scene,
Sequence *  seq,
bool  openfile 
)

◆ SEQ_sequence_base_unique_name_recursive()

void SEQ_sequence_base_unique_name_recursive ( struct Scene *  scene,
ListBase *  seqbasep,
Sequence *  seq 
)

◆ SEQ_sequence_from_strip_elem()

Sequence* SEQ_sequence_from_strip_elem ( struct ListBase *  seqbase,
struct StripElem *  se 
)

Only use as last resort when the StripElem is available but no the Sequence. (needed for RNA)

Definition at line 403 of file utils.c.

References ARRAY_HAS_ITEM, ListBase::first, Sequence::len, Sequence::next, Sequence::seqbase, Sequence::strip, and Strip::stripdata.

◆ SEQ_sequence_give_name()

const char* SEQ_sequence_give_name ( Sequence *  seq)

◆ SEQ_sequence_has_source()

bool SEQ_sequence_has_source ( const Sequence *  seq)

◆ SEQ_set_scale_to_fit()

void SEQ_set_scale_to_fit ( const Sequence *  seq,
const int  image_width,
const int  image_height,
const int  preview_width,
const int  preview_height,
const eSeqImageFitMethod  fit_method 
)

◆ seqbase_unique_name()

static void seqbase_unique_name ( ListBase *  seqbasep,
SeqUniqueInfo *  sui 
)
static

◆ seqbase_unique_name_recursive_fn()

static bool seqbase_unique_name_recursive_fn ( Sequence *  seq,
void *  arg_pt 
)
static

◆ sequencer_seq_generates_image()

bool sequencer_seq_generates_image ( Sequence *  seq)