VSE: Unify sequences collections API

Use RNA_api_sequences() for SequenceEditor and MetaSequence
sequences member.

Defines pair of dispatch functions rna_Sequences_editing_* and
rna_Sequences_meta_* that pass pointer to seqbase to
rna_Sequences_* function.

Downside of this implementation is, that it defines 2 seemingly
different RNA collections - SequencesMeta and SequencesTopLevel

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D9601
This commit is contained in:
2020-12-02 05:51:22 +01:00
parent 1176591574
commit 13ca11ac52
3 changed files with 235 additions and 39 deletions

View File

@@ -421,7 +421,7 @@ void RNA_api_space_node(struct StructRNA *srna);
void RNA_api_space_text(struct StructRNA *srna); void RNA_api_space_text(struct StructRNA *srna);
void RNA_api_region_view3d(struct StructRNA *srna); void RNA_api_region_view3d(struct StructRNA *srna);
void RNA_api_texture(struct StructRNA *srna); void RNA_api_texture(struct StructRNA *srna);
void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop); void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastrip);
void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop); void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop);
void RNA_api_sound(struct StructRNA *srna); void RNA_api_sound(struct StructRNA *srna);
void RNA_api_vfont(struct StructRNA *srna); void RNA_api_vfont(struct StructRNA *srna);

View File

@@ -1967,7 +1967,7 @@ static void rna_def_editor(BlenderRNA *brna)
RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL);
RNA_def_property_struct_type(prop, "Sequence"); RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_ui_text(prop, "Sequences", "Top-level strips only"); RNA_def_property_ui_text(prop, "Sequences", "Top-level strips only");
RNA_api_sequences(brna, prop); RNA_api_sequences(brna, prop, false);
prop = RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE); prop = RNA_def_property(srna, "sequences_all", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL);
@@ -2339,7 +2339,8 @@ static void rna_def_meta(BlenderRNA *brna)
prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE); prop = RNA_def_property(srna, "sequences", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL); RNA_def_property_collection_sdna(prop, NULL, "seqbase", NULL);
RNA_def_property_struct_type(prop, "Sequence"); RNA_def_property_struct_type(prop, "Sequence");
RNA_def_property_ui_text(prop, "Sequences", ""); RNA_def_property_ui_text(prop, "Sequences", "Sequences nested in meta strip");
RNA_api_sequences(brna, prop, true);
rna_def_filter_video(srna); rna_def_filter_video(srna);
rna_def_proxy(srna); rna_def_proxy(srna);

View File

@@ -77,15 +77,15 @@ static void rna_Sequence_swap_internal(Sequence *seq_self,
} }
static Sequence *alloc_generic_sequence( static Sequence *alloc_generic_sequence(
Editing *ed, const char *name, int frame_start, int channel, int type, const char *file) ListBase *seqbase, const char *name, int frame_start, int channel, int type, const char *file)
{ {
Sequence *seq; Sequence *seq;
StripElem *se; StripElem *se;
seq = BKE_sequence_alloc(ed->seqbasep, frame_start, channel, type); seq = BKE_sequence_alloc(seqbase, frame_start, channel, type);
BLI_strncpy(seq->name + 2, name, sizeof(seq->name) - 2); BLI_strncpy(seq->name + 2, name, sizeof(seq->name) - 2);
BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq); BKE_sequence_base_unique_name_recursive(seqbase, seq);
Strip *strip = seq->strip; Strip *strip = seq->strip;
@@ -105,7 +105,7 @@ static Sequence *alloc_generic_sequence(
} }
static Sequence *rna_Sequences_new_clip(ID *id, static Sequence *rna_Sequences_new_clip(ID *id,
Editing *ed, ListBase *seqbase,
Main *bmain, Main *bmain,
const char *name, const char *name,
MovieClip *clip, MovieClip *clip,
@@ -115,7 +115,8 @@ static Sequence *rna_Sequences_new_clip(ID *id,
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
Sequence *seq; Sequence *seq;
seq = alloc_generic_sequence(ed, name, frame_start, channel, SEQ_TYPE_MOVIECLIP, clip->filepath); seq = alloc_generic_sequence(
seqbase, name, frame_start, channel, SEQ_TYPE_MOVIECLIP, clip->filepath);
seq->clip = clip; seq->clip = clip;
seq->len = BKE_movieclip_get_duration(clip); seq->len = BKE_movieclip_get_duration(clip);
id_us_plus((ID *)clip); id_us_plus((ID *)clip);
@@ -129,13 +130,40 @@ static Sequence *rna_Sequences_new_clip(ID *id,
return seq; return seq;
} }
static Sequence *rna_Sequences_new_mask( static Sequence *rna_Sequences_editing_new_clip(ID *id,
ID *id, Editing *ed, Main *bmain, const char *name, Mask *mask, int channel, int frame_start) 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,
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)
{ {
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
Sequence *seq; Sequence *seq;
seq = alloc_generic_sequence(ed, name, frame_start, channel, SEQ_TYPE_MASK, mask->id.name); seq = alloc_generic_sequence(seqbase, name, frame_start, channel, SEQ_TYPE_MASK, mask->id.name);
seq->mask = mask; seq->mask = mask;
seq->len = BKE_mask_get_duration(mask); seq->len = BKE_mask_get_duration(mask);
id_us_plus((ID *)mask); id_us_plus((ID *)mask);
@@ -149,9 +177,20 @@ static Sequence *rna_Sequences_new_mask(
return seq; return seq;
} }
static Sequence *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)
{
return rna_Sequences_new_mask(id, &seq->seqbase, bmain, name, mask, channel, frame_start);
}
static Sequence *rna_Sequences_new_scene(ID *id, static Sequence *rna_Sequences_new_scene(ID *id,
Editing *ed, ListBase *seqbase,
Main *bmain, Main *bmain,
const char *name, const char *name,
Scene *sce_seq, Scene *sce_seq,
@@ -161,7 +200,7 @@ static Sequence *rna_Sequences_new_scene(ID *id,
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
Sequence *seq; Sequence *seq;
seq = alloc_generic_sequence(ed, name, frame_start, channel, SEQ_TYPE_SCENE, NULL); seq = alloc_generic_sequence(seqbase, name, frame_start, channel, SEQ_TYPE_SCENE, NULL);
seq->scene = sce_seq; seq->scene = sce_seq;
seq->len = sce_seq->r.efra - sce_seq->r.sfra + 1; seq->len = sce_seq->r.efra - sce_seq->r.sfra + 1;
id_us_plus((ID *)sce_seq); id_us_plus((ID *)sce_seq);
@@ -176,9 +215,31 @@ static Sequence *rna_Sequences_new_scene(ID *id,
return seq; return seq;
} }
static Sequence *rna_Sequences_new_image(ID *id, static Sequence *rna_Sequences_editing_new_scene(ID *id,
Editing *ed, Editing *ed,
Main *bmain, 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,
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, ReportList *reports,
const char *name, const char *name,
const char *file, const char *file,
@@ -188,12 +249,12 @@ static Sequence *rna_Sequences_new_image(ID *id,
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
Sequence *seq; Sequence *seq;
seq = alloc_generic_sequence(ed, name, frame_start, channel, SEQ_TYPE_IMAGE, file); seq = alloc_generic_sequence(seqbase, name, frame_start, channel, SEQ_TYPE_IMAGE, file);
seq->len = 1; seq->len = 1;
if (seq->strip->stripdata->name[0] == '\0') { if (seq->strip->stripdata->name[0] == '\0') {
BKE_report(reports, RPT_ERROR, "Sequences.new_image: unable to open image file"); BKE_report(reports, RPT_ERROR, "Sequences.new_image: unable to open image file");
BLI_remlink(&ed->seqbase, seq); BLI_remlink(seqbase, seq);
BKE_sequence_free(scene, seq, true); BKE_sequence_free(scene, seq, true);
return NULL; return NULL;
} }
@@ -208,14 +269,40 @@ static Sequence *rna_Sequences_new_image(ID *id,
return seq; 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)
{
return rna_Sequences_new_image(
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_image(ID *id,
Sequence *seq,
Main *bmain,
ReportList *reports,
const char *name,
const char *file,
int channel,
int frame_start)
{
return rna_Sequences_new_image(
id, &seq->seqbase, bmain, reports, name, file, channel, frame_start);
}
static Sequence *rna_Sequences_new_movie( static Sequence *rna_Sequences_new_movie(
ID *id, Editing *ed, const char *name, const char *file, int channel, int frame_start) ID *id, ListBase *seqbase, const char *name, const char *file, int channel, int frame_start)
{ {
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
Sequence *seq; Sequence *seq;
StripAnim *sanim; StripAnim *sanim;
seq = alloc_generic_sequence(ed, name, frame_start, channel, SEQ_TYPE_MOVIE, file); seq = alloc_generic_sequence(seqbase, name, frame_start, channel, SEQ_TYPE_MOVIE, file);
struct anim *an = openanim(file, IB_rect, 0, NULL); struct anim *an = openanim(file, IB_rect, 0, NULL);
if (an == NULL) { if (an == NULL) {
@@ -240,9 +327,21 @@ static Sequence *rna_Sequences_new_movie(
return seq; return seq;
} }
static Sequence *rna_Sequences_editing_new_movie(
ID *id, Editing *ed, const char *name, const char *file, int channel, int frame_start)
{
return rna_Sequences_new_movie(id, &ed->seqbase, name, file, channel, frame_start);
}
static Sequence *rna_Sequences_meta_new_movie(
ID *id, Sequence *seq, const char *name, const char *file, int channel, int frame_start)
{
return rna_Sequences_new_movie(id, &seq->seqbase, name, file, channel, frame_start);
}
# ifdef WITH_AUDASPACE # ifdef WITH_AUDASPACE
static Sequence *rna_Sequences_new_sound(ID *id, static Sequence *rna_Sequences_new_sound(ID *id,
Editing *ed, ListBase *seqbase,
Main *bmain, Main *bmain,
ReportList *reports, ReportList *reports,
const char *name, const char *name,
@@ -262,7 +361,7 @@ static Sequence *rna_Sequences_new_sound(ID *id,
return NULL; return NULL;
} }
seq = alloc_generic_sequence( seq = alloc_generic_sequence(
ed, name, frame_start, channel, SEQ_TYPE_SOUND_RAM, sound->filepath); seqbase, name, frame_start, channel, SEQ_TYPE_SOUND_RAM, sound->filepath);
seq->sound = sound; seq->sound = sound;
seq->len = ceil((double)info.length * FPS); seq->len = ceil((double)info.length * FPS);
@@ -276,7 +375,7 @@ static Sequence *rna_Sequences_new_sound(ID *id,
} }
# else /* WITH_AUDASPACE */ # else /* WITH_AUDASPACE */
static Sequence *rna_Sequences_new_sound(ID *UNUSED(id), static Sequence *rna_Sequences_new_sound(ID *UNUSED(id),
Editing *UNUSED(ed), Editing *UNUSED(seqbase),
Main *UNUSED(bmain), Main *UNUSED(bmain),
ReportList *reports, ReportList *reports,
const char *UNUSED(name), const char *UNUSED(name),
@@ -289,8 +388,34 @@ static Sequence *rna_Sequences_new_sound(ID *UNUSED(id),
} }
# endif /* WITH_AUDASPACE */ # endif /* WITH_AUDASPACE */
static Sequence *rna_Sequences_new_effect(ID *id, static Sequence *rna_Sequences_editing_new_sound(ID *id,
Editing *ed, 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,
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);
}
static Sequence *rna_Sequences_new_effect(ID *id,
ListBase *seqbase,
ReportList *reports, ReportList *reports,
const char *name, const char *name,
int type, int type,
@@ -340,7 +465,7 @@ static Sequence *rna_Sequences_new_effect(ID *id,
return NULL; return NULL;
} }
seq = alloc_generic_sequence(ed, name, frame_start, channel, type, NULL); seq = alloc_generic_sequence(seqbase, name, frame_start, channel, type, NULL);
sh = BKE_sequence_get_effect(seq); sh = BKE_sequence_get_effect(seq);
@@ -367,20 +492,52 @@ static Sequence *rna_Sequences_new_effect(ID *id,
return seq; 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,
Sequence *seq3)
{
return rna_Sequences_new_effect(
id, &ed->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3);
}
static Sequence *rna_Sequences_meta_new_effect(ID *id,
Sequence *seq,
ReportList *reports,
const char *name,
int type,
int channel,
int frame_start,
int frame_end,
Sequence *seq1,
Sequence *seq2,
Sequence *seq3)
{
return rna_Sequences_new_effect(
id, &seq->seqbase, reports, name, type, channel, frame_start, frame_end, seq1, seq2, seq3);
}
static void rna_Sequences_remove( static void rna_Sequences_remove(
ID *id, Editing *ed, Main *bmain, ReportList *reports, PointerRNA *seq_ptr) ID *id, ListBase *seqbase, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
{ {
Sequence *seq = seq_ptr->data; Sequence *seq = seq_ptr->data;
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
if (BLI_findindex(&ed->seqbase, seq) == -1) { if (BLI_findindex(seqbase, seq) == -1) {
BKE_reportf( BKE_reportf(
reports, RPT_ERROR, "Sequence '%s' not in scene '%s'", seq->name + 2, scene->id.name + 2); reports, RPT_ERROR, "Sequence '%s' not in scene '%s'", seq->name + 2, scene->id.name + 2);
return; return;
} }
BKE_sequencer_flag_for_removal(scene, &ed->seqbase, seq); BKE_sequencer_flag_for_removal(scene, seqbase, seq);
BKE_sequencer_remove_flagged_sequences(scene, &ed->seqbase); BKE_sequencer_remove_flagged_sequences(scene, seqbase);
RNA_POINTER_INVALIDATE(seq_ptr); RNA_POINTER_INVALIDATE(seq_ptr);
DEG_relations_tag_update(bmain); DEG_relations_tag_update(bmain);
@@ -388,6 +545,18 @@ static void rna_Sequences_remove(
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene); WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
} }
static void rna_Sequences_editing_remove(
ID *id, Editing *ed, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
{
rna_Sequences_remove(id, &ed->seqbase, bmain, reports, seq_ptr);
}
static void rna_Sequences_meta_remove(
ID *id, Sequence *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, Sequence *seq, const char *filename)
{ {
Scene *scene = (Scene *)id; Scene *scene = (Scene *)id;
@@ -536,7 +705,7 @@ void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED); RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
} }
void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop) void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastrip)
{ {
StructRNA *srna; StructRNA *srna;
PropertyRNA *parm; PropertyRNA *parm;
@@ -564,12 +733,38 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
{0, NULL, 0, NULL, NULL}, {0, NULL, 0, NULL, NULL},
}; };
RNA_def_property_srna(cprop, "Sequences"); const char *new_clip_func_name = "rna_Sequences_editing_new_clip";
srna = RNA_def_struct(brna, "Sequences", NULL); const char *new_mask_func_name = "rna_Sequences_editing_new_mask";
const char *new_scene_func_name = "rna_Sequences_editing_new_scene";
const char *new_image_func_name = "rna_Sequences_editing_new_image";
const char *new_movie_func_name = "rna_Sequences_editing_new_movie";
const char *new_sound_func_name = "rna_Sequences_editing_new_sound";
const char *new_effect_func_name = "rna_Sequences_editing_new_effect";
const char *remove_func_name = "rna_Sequences_editing_remove";
if (metastrip) {
RNA_def_property_srna(cprop, "SequencesMeta");
srna = RNA_def_struct(brna, "SequencesMeta", NULL);
RNA_def_struct_sdna(srna, "Sequence");
new_clip_func_name = "rna_Sequences_meta_new_clip";
new_mask_func_name = "rna_Sequences_meta_new_mask";
new_scene_func_name = "rna_Sequences_meta_new_scene";
new_image_func_name = "rna_Sequences_meta_new_image";
new_movie_func_name = "rna_Sequences_meta_new_movie";
new_sound_func_name = "rna_Sequences_meta_new_sound";
new_effect_func_name = "rna_Sequences_meta_new_effect";
remove_func_name = "rna_Sequences_meta_remove";
}
else {
RNA_def_property_srna(cprop, "SequencesTopLevel");
srna = RNA_def_struct(brna, "SequencesTopLevel", NULL);
RNA_def_struct_sdna(srna, "Editing"); RNA_def_struct_sdna(srna, "Editing");
}
RNA_def_struct_ui_text(srna, "Sequences", "Collection of Sequences"); RNA_def_struct_ui_text(srna, "Sequences", "Collection of Sequences");
func = RNA_def_function(srna, "new_clip", "rna_Sequences_new_clip"); func = RNA_def_function(srna, "new_clip", new_clip_func_name);
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN); RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Add a new movie clip sequence"); RNA_def_function_ui_description(func, "Add a new movie clip sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -593,7 +788,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_mask", "rna_Sequences_new_mask"); func = RNA_def_function(srna, "new_mask", new_mask_func_name);
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN); RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Add a new mask sequence"); RNA_def_function_ui_description(func, "Add a new mask sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -617,7 +812,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_scene", "rna_Sequences_new_scene"); func = RNA_def_function(srna, "new_scene", new_scene_func_name);
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN); RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Add a new scene sequence"); RNA_def_function_ui_description(func, "Add a new scene sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -641,7 +836,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_image", "rna_Sequences_new_image"); func = RNA_def_function(srna, "new_image", new_image_func_name);
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN); RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Add a new image sequence"); RNA_def_function_ui_description(func, "Add a new image sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -665,7 +860,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_movie", "rna_Sequences_new_movie"); func = RNA_def_function(srna, "new_movie", new_movie_func_name);
RNA_def_function_flag(func, FUNC_USE_SELF_ID); RNA_def_function_flag(func, FUNC_USE_SELF_ID);
RNA_def_function_ui_description(func, "Add a new movie sequence"); RNA_def_function_ui_description(func, "Add a new movie sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -689,7 +884,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_sound", "rna_Sequences_new_sound"); func = RNA_def_function(srna, "new_sound", new_sound_func_name);
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN); RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Add a new sound sequence"); RNA_def_function_ui_description(func, "Add a new sound sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -713,7 +908,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "new_effect", "rna_Sequences_new_effect"); func = RNA_def_function(srna, "new_effect", new_effect_func_name);
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID); RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID);
RNA_def_function_ui_description(func, "Add a new effect sequence"); RNA_def_function_ui_description(func, "Add a new effect sequence");
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence"); parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
@@ -750,7 +945,7 @@ void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence"); parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
RNA_def_function_return(func, parm); RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "remove", "rna_Sequences_remove"); 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_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS | FUNC_USE_MAIN);
RNA_def_function_ui_description(func, "Remove a Sequence"); 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", "Sequence", "", "Sequence to remove");