2011-02-23 10:52:22 +00:00
|
|
|
/*
|
2010-06-21 22:05:34 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
2019-02-18 08:08:12 +11:00
|
|
|
/** \file
|
|
|
|
* \ingroup RNA
|
2011-02-27 20:20:01 +00:00
|
|
|
*/
|
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
#include <stdio.h>
|
2020-03-19 09:33:03 +01:00
|
|
|
#include <stdlib.h>
|
2010-06-21 22:05:34 +00:00
|
|
|
#include <string.h>
|
|
|
|
|
2013-03-07 02:44:55 +00:00
|
|
|
#include "DNA_scene_types.h"
|
|
|
|
#include "DNA_sequence_types.h"
|
|
|
|
|
|
|
|
#include "BLI_utildefines.h"
|
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
#include "RNA_access.h"
|
|
|
|
#include "RNA_define.h"
|
|
|
|
|
|
|
|
#include "rna_internal.h"
|
|
|
|
|
|
|
|
#ifdef RNA_RUNTIME
|
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
//#include "DNA_anim_types.h"
|
|
|
|
# include "DNA_image_types.h"
|
2012-06-07 18:24:36 +00:00
|
|
|
# include "DNA_mask_types.h"
|
2012-05-10 15:10:51 +00:00
|
|
|
# include "DNA_sound_types.h"
|
|
|
|
|
|
|
|
# include "BLI_path_util.h" /* BLI_split_dirfile */
|
|
|
|
|
|
|
|
# include "BKE_image.h"
|
2012-06-07 18:24:36 +00:00
|
|
|
# include "BKE_mask.h"
|
2018-11-07 18:00:24 +01:00
|
|
|
# include "BKE_movieclip.h"
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
# include "BKE_report.h"
|
2012-05-10 15:10:51 +00:00
|
|
|
# include "BKE_sound.h"
|
|
|
|
|
|
|
|
# include "IMB_imbuf.h"
|
|
|
|
# include "IMB_imbuf_types.h"
|
|
|
|
|
2020-12-19 06:44:57 +01:00
|
|
|
# include "SEQ_add.h"
|
|
|
|
# include "SEQ_edit.h"
|
2021-03-02 12:08:16 +01:00
|
|
|
# include "SEQ_effects.h"
|
2020-12-19 06:44:57 +01:00
|
|
|
# include "SEQ_relations.h"
|
|
|
|
# include "SEQ_render.h"
|
2020-11-01 21:03:31 +01:00
|
|
|
# include "SEQ_sequencer.h"
|
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
# include "WM_api.h"
|
2010-06-21 22:05:34 +00:00
|
|
|
|
2018-07-01 15:47:09 +02:00
|
|
|
static void rna_Sequence_update_rnafunc(ID *id, Sequence *self, bool do_data)
|
2013-01-02 16:15:45 +00:00
|
|
|
{
|
|
|
|
if (do_data) {
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_relations_update_changed_seq_and_deps((Scene *)id, self, true, true);
|
2013-01-02 16:15:45 +00:00
|
|
|
// new_tstripdata(self); /* need 2.6x version of this. */
|
|
|
|
}
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_time_update_sequence((Scene *)id, self);
|
|
|
|
SEQ_time_update_sequence_bounds((Scene *)id, self);
|
2013-01-02 16:15:45 +00:00
|
|
|
}
|
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
static void rna_Sequence_swap_internal(Sequence *seq_self,
|
|
|
|
ReportList *reports,
|
|
|
|
Sequence *seq_other)
|
|
|
|
{
|
2011-05-28 09:59:34 +00:00
|
|
|
const char *error_msg;
|
2018-06-09 14:40:09 +02:00
|
|
|
|
2020-12-19 05:57:27 +01:00
|
|
|
if (SEQ_edit_sequence_swap(seq_self, seq_other, &error_msg) == 0) {
|
2011-05-28 09:59:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, error_msg);
|
2019-06-04 00:21:57 +10:00
|
|
|
}
|
2010-06-21 22:05:34 +00:00
|
|
|
}
|
|
|
|
|
2021-03-23 10:49:48 +01:00
|
|
|
static void rna_Sequences_move_strip_to_meta(
|
|
|
|
ID *id, Sequence *seq_self, Main *bmain, ReportList *reports, Sequence *meta_dst)
|
2021-03-19 23:36:28 +01:00
|
|
|
{
|
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-23 10:49:48 +01:00
|
|
|
const char *error_msg;
|
2021-03-19 23:36:28 +01:00
|
|
|
|
2021-03-21 13:18:20 +11:00
|
|
|
/* Move strip to meta. */
|
2021-03-23 10:49:48 +01:00
|
|
|
if (!SEQ_edit_move_strip_to_meta(scene, seq_self, meta_dst, &error_msg)) {
|
|
|
|
BKE_report(reports, RPT_ERROR, error_msg);
|
|
|
|
}
|
2021-03-19 23:36:28 +01:00
|
|
|
|
2021-03-21 13:18:20 +11:00
|
|
|
/* Update depsgraph. */
|
2021-03-19 23:36:28 +01:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
|
|
|
|
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
|
|
|
}
|
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
static Sequence *rna_Sequences_new_clip(ID *id,
|
2020-12-02 05:51:22 +01:00
|
|
|
ListBase *seqbase,
|
2019-06-11 11:18:47 +02:00
|
|
|
Main *bmain,
|
|
|
|
const char *name,
|
|
|
|
MovieClip *clip,
|
|
|
|
int channel,
|
|
|
|
int frame_start)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, NULL, frame_start, channel);
|
|
|
|
load_data.clip = clip;
|
|
|
|
Sequence *seq = SEQ_add_movieclip_strip(scene, seqbase, &load_data);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
static Sequence *rna_Sequences_editing_new_clip(ID *id,
|
|
|
|
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)
|
2012-06-07 18:24:36 +00:00
|
|
|
{
|
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, NULL, frame_start, channel);
|
|
|
|
load_data.mask = mask;
|
|
|
|
Sequence *seq = SEQ_add_mask_strip(scene, seqbase, &load_data);
|
2012-06-07 18:24:36 +00:00
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-06-07 18:24:36 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
2020-12-02 05:51:22 +01:00
|
|
|
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);
|
|
|
|
}
|
2012-06-07 18:24:36 +00:00
|
|
|
|
2019-06-11 11:15:52 +02:00
|
|
|
static Sequence *rna_Sequences_new_scene(ID *id,
|
2020-12-02 05:51:22 +01:00
|
|
|
ListBase *seqbase,
|
2019-06-11 11:15:52 +02:00
|
|
|
Main *bmain,
|
|
|
|
const char *name,
|
|
|
|
Scene *sce_seq,
|
|
|
|
int channel,
|
|
|
|
int frame_start)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, NULL, frame_start, channel);
|
|
|
|
load_data.scene = sce_seq;
|
|
|
|
Sequence *seq = SEQ_add_scene_strip(scene, seqbase, &load_data);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2019-06-11 11:15:52 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
static Sequence *rna_Sequences_editing_new_scene(ID *id,
|
|
|
|
Editing *ed,
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2012-05-11 11:05:48 +00:00
|
|
|
static Sequence *rna_Sequences_new_image(ID *id,
|
2020-12-02 05:51:22 +01:00
|
|
|
ListBase *seqbase,
|
2019-06-11 11:18:47 +02:00
|
|
|
Main *bmain,
|
2021-03-02 14:21:10 +01:00
|
|
|
ReportList *UNUSED(reports),
|
2012-05-10 15:22:29 +00:00
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
|
|
|
|
load_data.image.len = 1;
|
2021-03-30 02:45:22 +02:00
|
|
|
load_data.fit_method = fit_method;
|
2021-03-02 12:08:16 +01:00
|
|
|
Sequence *seq = SEQ_add_image_strip(bmain, scene, seqbase, &load_data);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
char dir[FILE_MAX], filename[FILE_MAX];
|
|
|
|
BLI_split_dirfile(file, dir, filename, sizeof(dir), sizeof(filename));
|
|
|
|
SEQ_add_image_set_directory(seq, dir);
|
|
|
|
SEQ_add_image_load_file(seq, 0, filename);
|
|
|
|
SEQ_add_image_init_alpha_mode(seq);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
static Sequence *rna_Sequences_editing_new_image(ID *id,
|
|
|
|
Editing *ed,
|
|
|
|
Main *bmain,
|
|
|
|
ReportList *reports,
|
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2020-12-02 05:51:22 +01:00
|
|
|
{
|
|
|
|
return rna_Sequences_new_image(
|
2021-03-30 02:45:22 +02:00
|
|
|
id, &ed->seqbase, bmain, reports, name, file, channel, frame_start, fit_method);
|
2020-12-02 05:51:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
static Sequence *rna_Sequences_meta_new_image(ID *id,
|
|
|
|
Sequence *seq,
|
|
|
|
Main *bmain,
|
|
|
|
ReportList *reports,
|
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2020-12-02 05:51:22 +01:00
|
|
|
{
|
|
|
|
return rna_Sequences_new_image(
|
2021-03-30 02:45:22 +02:00
|
|
|
id, &seq->seqbase, bmain, reports, name, file, channel, frame_start, fit_method);
|
2020-12-02 05:51:22 +01:00
|
|
|
}
|
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
static Sequence *rna_Sequences_new_movie(ID *id,
|
|
|
|
ListBase *seqbase,
|
|
|
|
Main *bmain,
|
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
|
2021-03-30 02:45:22 +02:00
|
|
|
load_data.fit_method = fit_method;
|
2021-03-02 12:08:16 +01:00
|
|
|
load_data.allow_invalid_file = true;
|
|
|
|
Sequence *seq = SEQ_add_movie_strip(bmain, scene, seqbase, &load_data);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
DEG_relations_tag_update(bmain);
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
static Sequence *rna_Sequences_editing_new_movie(ID *id,
|
|
|
|
Editing *ed,
|
|
|
|
Main *bmain,
|
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2020-12-02 05:51:22 +01:00
|
|
|
{
|
2021-03-30 02:45:22 +02:00
|
|
|
return rna_Sequences_new_movie(
|
|
|
|
id, &ed->seqbase, bmain, name, file, channel, frame_start, fit_method);
|
2020-12-02 05:51:22 +01:00
|
|
|
}
|
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
static Sequence *rna_Sequences_meta_new_movie(ID *id,
|
|
|
|
Sequence *seq,
|
|
|
|
Main *bmain,
|
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
2021-03-30 02:45:22 +02:00
|
|
|
int frame_start,
|
|
|
|
int fit_method)
|
2020-12-02 05:51:22 +01:00
|
|
|
{
|
2021-03-30 02:45:22 +02:00
|
|
|
return rna_Sequences_new_movie(
|
|
|
|
id, &seq->seqbase, bmain, name, file, channel, frame_start, fit_method);
|
2020-12-02 05:51:22 +01:00
|
|
|
}
|
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
# ifdef WITH_AUDASPACE
|
2012-05-11 11:05:48 +00:00
|
|
|
static Sequence *rna_Sequences_new_sound(ID *id,
|
2020-12-02 05:51:22 +01:00
|
|
|
ListBase *seqbase,
|
2012-05-11 11:05:48 +00:00
|
|
|
Main *bmain,
|
|
|
|
ReportList *reports,
|
2013-01-06 12:42:47 +00:00
|
|
|
const char *name,
|
|
|
|
const char *file,
|
|
|
|
int channel,
|
|
|
|
int frame_start)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, file, frame_start, channel);
|
|
|
|
load_data.allow_invalid_file = true;
|
|
|
|
Sequence *seq = SEQ_add_sound_strip(bmain, scene, seqbase, &load_data);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
if (seq == NULL) {
|
2012-05-10 15:10:51 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Sequences.new_sound: unable to open sound file");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
# else /* WITH_AUDASPACE */
|
2012-05-17 14:59:11 +00:00
|
|
|
static Sequence *rna_Sequences_new_sound(ID *UNUSED(id),
|
2020-12-02 10:07:56 +01:00
|
|
|
ListBase *UNUSED(seqbase),
|
2012-05-17 14:59:11 +00:00
|
|
|
Main *UNUSED(bmain),
|
|
|
|
ReportList *reports,
|
2012-10-20 10:28:34 +00:00
|
|
|
const char *UNUSED(name),
|
|
|
|
const char *UNUSED(file),
|
|
|
|
int UNUSED(channel),
|
2013-01-06 12:42:47 +00:00
|
|
|
int UNUSED(frame_start))
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Blender compiled without Audaspace support");
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
# endif /* WITH_AUDASPACE */
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
static Sequence *rna_Sequences_editing_new_sound(ID *id,
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2021-03-19 23:55:39 +01:00
|
|
|
/* Meta sequence
|
|
|
|
* Possibility to create an empty meta to avoid plenty of meta toggling
|
|
|
|
* Created meta have a length equal to 1, must be set through the API. */
|
|
|
|
static Sequence *rna_Sequences_new_meta(
|
|
|
|
ID *id, ListBase *seqbase, const char *name, int channel, int frame_start)
|
|
|
|
{
|
|
|
|
Scene *scene = (Scene *)id;
|
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, NULL, frame_start, channel);
|
|
|
|
Sequence *seqm = SEQ_add_meta_strip(scene, seqbase, &load_data);
|
|
|
|
|
|
|
|
return seqm;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Sequence *rna_Sequences_editing_new_meta(
|
|
|
|
ID *id, Editing *ed, const char *name, int channel, int frame_start)
|
|
|
|
{
|
|
|
|
return rna_Sequences_new_meta(id, &ed->seqbase, name, channel, frame_start);
|
|
|
|
}
|
|
|
|
|
|
|
|
static Sequence *rna_Sequences_meta_new_meta(
|
|
|
|
ID *id, Sequence *seq, const char *name, int channel, int frame_start)
|
|
|
|
{
|
|
|
|
return rna_Sequences_new_meta(id, &seq->seqbase, name, channel, frame_start);
|
|
|
|
}
|
|
|
|
|
2012-05-11 11:05:48 +00:00
|
|
|
static Sequence *rna_Sequences_new_effect(ID *id,
|
2020-12-02 05:51:22 +01:00
|
|
|
ListBase *seqbase,
|
2012-05-11 11:05:48 +00:00
|
|
|
ReportList *reports,
|
2012-05-10 15:10:51 +00:00
|
|
|
const char *name,
|
|
|
|
int type,
|
|
|
|
int channel,
|
2013-01-06 12:42:47 +00:00
|
|
|
int frame_start,
|
|
|
|
int frame_end,
|
2012-05-10 15:10:51 +00:00
|
|
|
Sequence *seq1,
|
|
|
|
Sequence *seq2,
|
|
|
|
Sequence *seq3)
|
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2012-05-10 15:10:51 +00:00
|
|
|
Sequence *seq;
|
2021-03-02 12:08:16 +01:00
|
|
|
const int num_inputs = SEQ_effect_get_num_inputs(type);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-10-20 10:28:34 +00:00
|
|
|
switch (num_inputs) {
|
2012-05-10 15:10:51 +00:00
|
|
|
case 0:
|
2013-01-06 12:42:47 +00:00
|
|
|
if (frame_end <= frame_start) {
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Sequences.new_effect: end frame not set");
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
if (seq1 == NULL) {
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Sequences.new_effect: effect takes 1 input sequence");
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
if (seq1 == NULL || seq2 == NULL) {
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Sequences.new_effect: effect takes 2 input sequences");
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
if (seq1 == NULL || seq2 == NULL || seq3 == NULL) {
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "Sequences.new_effect: effect takes 3 input sequences");
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
2012-10-20 10:28:34 +00:00
|
|
|
BKE_reportf(
|
|
|
|
reports,
|
|
|
|
RPT_ERROR,
|
|
|
|
"Sequences.new_effect: effect expects more than 3 inputs (%d, should never happen!)",
|
|
|
|
num_inputs);
|
2012-05-10 15:10:51 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2021-03-02 12:08:16 +01:00
|
|
|
SeqLoadData load_data;
|
|
|
|
SEQ_add_load_data_init(&load_data, name, NULL, frame_start, channel);
|
|
|
|
load_data.effect.end_frame = frame_end;
|
|
|
|
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);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
return seq;
|
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
static void rna_Sequences_remove(
|
2020-12-02 05:51:22 +01:00
|
|
|
ID *id, ListBase *seqbase, Main *bmain, ReportList *reports, PointerRNA *seq_ptr)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-11-02 09:41:26 +00:00
|
|
|
Sequence *seq = seq_ptr->data;
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
if (BLI_findindex(seqbase, seq) == -1) {
|
2012-11-02 09:41:26 +00:00
|
|
|
BKE_reportf(
|
|
|
|
reports, RPT_ERROR, "Sequence '%s' not in scene '%s'", seq->name + 2, scene->id.name + 2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_edit_flag_for_removal(scene, seqbase, seq);
|
|
|
|
SEQ_edit_remove_flagged_sequences(scene, seqbase);
|
2012-11-02 09:41:26 +00:00
|
|
|
RNA_POINTER_INVALIDATE(seq_ptr);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2019-06-11 11:18:47 +02:00
|
|
|
DEG_relations_tag_update(bmain);
|
|
|
|
DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2014-03-28 12:11:52 +11:00
|
|
|
static StripElem *rna_SequenceElements_append(ID *id, Sequence *seq, const char *filename)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2012-05-10 15:10:51 +00:00
|
|
|
StripElem *se;
|
|
|
|
|
2012-05-10 15:22:29 +00:00
|
|
|
seq->strip->stripdata = se = MEM_reallocN(seq->strip->stripdata,
|
|
|
|
sizeof(StripElem) * (seq->len + 1));
|
2012-05-10 15:10:51 +00:00
|
|
|
se += seq->len;
|
|
|
|
BLI_strncpy(se->name, filename, sizeof(se->name));
|
|
|
|
seq->len++;
|
|
|
|
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_time_update_sequence_bounds(scene, seq);
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
return se;
|
|
|
|
}
|
|
|
|
|
2012-05-14 21:32:35 +00:00
|
|
|
static void rna_SequenceElements_pop(ID *id, Sequence *seq, ReportList *reports, int index)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
2012-05-11 11:05:48 +00:00
|
|
|
Scene *scene = (Scene *)id;
|
2012-05-14 21:32:35 +00:00
|
|
|
StripElem *new_seq, *se;
|
2012-05-10 15:10:51 +00:00
|
|
|
|
|
|
|
if (seq->len == 1) {
|
2012-10-26 17:32:50 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "SequenceElements.pop: cannot pop the last element");
|
2012-05-10 15:10:51 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2012-06-06 06:01:51 +00:00
|
|
|
/* python style negative indexing */
|
|
|
|
if (index < 0) {
|
|
|
|
index += seq->len;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (seq->len <= index || index < 0) {
|
2012-05-14 21:32:35 +00:00
|
|
|
BKE_report(reports, RPT_ERROR, "SequenceElements.pop: index out of range");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
new_seq = MEM_callocN(sizeof(StripElem) * (seq->len - 1), "SequenceElements_pop");
|
2012-05-10 15:10:51 +00:00
|
|
|
seq->len--;
|
|
|
|
|
2012-06-08 22:05:26 +00:00
|
|
|
se = seq->strip->stripdata;
|
2019-06-04 00:21:57 +10:00
|
|
|
if (index > 0) {
|
2012-06-08 22:05:26 +00:00
|
|
|
memcpy(new_seq, se, sizeof(StripElem) * index);
|
2019-06-04 00:21:57 +10:00
|
|
|
}
|
2012-06-08 22:05:26 +00:00
|
|
|
|
2019-06-04 00:21:57 +10:00
|
|
|
if (index < seq->len) {
|
2012-06-08 22:05:26 +00:00
|
|
|
memcpy(&new_seq[index], &se[index + 1], sizeof(StripElem) * (seq->len - index));
|
2019-06-04 00:21:57 +10:00
|
|
|
}
|
2012-05-14 21:32:35 +00:00
|
|
|
|
|
|
|
MEM_freeN(seq->strip->stripdata);
|
|
|
|
seq->strip->stripdata = new_seq;
|
|
|
|
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_time_update_sequence_bounds(scene, seq);
|
2012-05-10 15:10:51 +00:00
|
|
|
|
2012-05-10 15:32:01 +00:00
|
|
|
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
|
2012-05-10 15:10:51 +00:00
|
|
|
}
|
|
|
|
|
2020-06-18 05:31:42 +02:00
|
|
|
static void rna_Sequence_invalidate_cache_rnafunc(ID *id, Sequence *self, int type)
|
|
|
|
{
|
|
|
|
switch (type) {
|
|
|
|
case SEQ_CACHE_STORE_RAW:
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_relations_invalidate_cache_raw((Scene *)id, self);
|
2020-06-18 05:31:42 +02:00
|
|
|
break;
|
|
|
|
case SEQ_CACHE_STORE_PREPROCESSED:
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_relations_invalidate_cache_preprocessed((Scene *)id, self);
|
2020-06-18 05:31:42 +02:00
|
|
|
break;
|
|
|
|
case SEQ_CACHE_STORE_COMPOSITE:
|
2020-12-19 05:57:27 +01:00
|
|
|
SEQ_relations_invalidate_cache_composite((Scene *)id, self);
|
2020-06-18 05:31:42 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
#else
|
|
|
|
|
|
|
|
void RNA_api_sequence_strip(StructRNA *srna)
|
|
|
|
{
|
|
|
|
FunctionRNA *func;
|
|
|
|
PropertyRNA *parm;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-06-18 05:31:42 +02:00
|
|
|
static const EnumPropertyItem seq_cahce_type_items[] = {
|
|
|
|
{SEQ_CACHE_STORE_RAW, "RAW", 0, "Raw", ""},
|
|
|
|
{SEQ_CACHE_STORE_PREPROCESSED, "PREPROCESSED", 0, "Preprocessed", ""},
|
|
|
|
{SEQ_CACHE_STORE_COMPOSITE, "COMPOSITE", 0, "Composite", ""},
|
|
|
|
{0, NULL, 0, NULL, NULL},
|
|
|
|
};
|
|
|
|
|
2013-01-02 16:15:45 +00:00
|
|
|
func = RNA_def_function(srna, "update", "rna_Sequence_update_rnafunc");
|
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
|
|
|
|
RNA_def_function_ui_description(func, "Update the strip dimensions");
|
2014-06-17 17:33:57 +10:00
|
|
|
parm = RNA_def_boolean(func, "data", false, "Data", "Update strip data");
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-11-05 14:05:25 +01:00
|
|
|
func = RNA_def_function(srna, "strip_elem_from_frame", "SEQ_render_give_stripelem");
|
2011-09-19 13:23:58 +00:00
|
|
|
RNA_def_function_ui_description(func, "Return the strip element from a given frame or None");
|
2012-03-05 23:30:41 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"Frame",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The frame to get the strip element from",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-03-18 09:27:36 +00:00
|
|
|
RNA_def_function_return(
|
|
|
|
func,
|
|
|
|
RNA_def_pointer(func, "elem", "SequenceElement", "", "strip element of the current frame"));
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-03-05 23:30:41 +00:00
|
|
|
func = RNA_def_function(srna, "swap", "rna_Sequence_swap_internal");
|
2010-06-21 22:05:34 +00:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS);
|
2012-03-05 23:30:41 +00:00
|
|
|
parm = RNA_def_pointer(func, "other", "Sequence", "Other", "");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
2020-06-18 05:31:42 +02:00
|
|
|
|
2021-03-19 23:36:28 +01:00
|
|
|
func = RNA_def_function(srna, "move_to_meta", "rna_Sequences_move_strip_to_meta");
|
2021-03-23 10:49:48 +01:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2021-03-19 23:55:39 +01:00
|
|
|
parm = RNA_def_pointer(func,
|
|
|
|
"meta_sequence",
|
|
|
|
"Sequence",
|
|
|
|
"Destination Meta Sequence",
|
|
|
|
"Meta to move the strip into");
|
2021-03-19 23:36:28 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
|
|
|
|
2020-06-18 05:31:42 +02:00
|
|
|
func = RNA_def_function(srna, "invalidate_cache", "rna_Sequence_invalidate_cache_rnafunc");
|
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
|
2020-06-19 09:44:57 +10:00
|
|
|
RNA_def_function_ui_description(func,
|
2020-07-04 01:02:54 +02:00
|
|
|
"Invalidate cached images for strip and all dependent strips");
|
2020-06-18 05:31:42 +02:00
|
|
|
parm = RNA_def_enum(func, "type", seq_cahce_type_items, 0, "Type", "Cache Type");
|
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
2010-06-21 22:05:34 +00:00
|
|
|
}
|
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop)
|
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *parm;
|
|
|
|
FunctionRNA *func;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_property_srna(cprop, "SequenceElements");
|
|
|
|
srna = RNA_def_struct(brna, "SequenceElements", NULL);
|
|
|
|
RNA_def_struct_sdna(srna, "Sequence");
|
|
|
|
RNA_def_struct_ui_text(srna, "SequenceElements", "Collection of SequenceElement");
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2014-03-28 12:11:52 +11:00
|
|
|
func = RNA_def_function(srna, "append", "rna_SequenceElements_append");
|
2012-05-11 11:05:48 +00:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Push an image from ImageSequence.directory");
|
2012-05-10 15:32:01 +00:00
|
|
|
parm = RNA_def_string(func, "filename", "File", 0, "", "Filepath to image");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "elem", "SequenceElement", "", "New SequenceElement");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
func = RNA_def_function(srna, "pop", "rna_SequenceElements_pop");
|
2012-05-11 11:05:48 +00:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Pop an image off the collection");
|
2012-06-06 06:01:51 +00:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "index", -1, INT_MIN, INT_MAX, "", "Index of image to remove", INT_MIN, INT_MAX);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
}
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastrip)
|
2012-05-10 15:10:51 +00:00
|
|
|
{
|
|
|
|
StructRNA *srna;
|
|
|
|
PropertyRNA *parm;
|
|
|
|
FunctionRNA *func;
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2017-10-18 15:07:26 +11:00
|
|
|
static const EnumPropertyItem seq_effect_items[] = {
|
2012-06-07 15:49:02 +00:00
|
|
|
{SEQ_TYPE_CROSS, "CROSS", 0, "Cross", ""},
|
|
|
|
{SEQ_TYPE_ADD, "ADD", 0, "Add", ""},
|
|
|
|
{SEQ_TYPE_SUB, "SUBTRACT", 0, "Subtract", ""},
|
|
|
|
{SEQ_TYPE_ALPHAOVER, "ALPHA_OVER", 0, "Alpha Over", ""},
|
|
|
|
{SEQ_TYPE_ALPHAUNDER, "ALPHA_UNDER", 0, "Alpha Under", ""},
|
|
|
|
{SEQ_TYPE_GAMCROSS, "GAMMA_CROSS", 0, "Gamma Cross", ""},
|
|
|
|
{SEQ_TYPE_MUL, "MULTIPLY", 0, "Multiply", ""},
|
|
|
|
{SEQ_TYPE_OVERDROP, "OVER_DROP", 0, "Over Drop", ""},
|
|
|
|
{SEQ_TYPE_WIPE, "WIPE", 0, "Wipe", ""},
|
|
|
|
{SEQ_TYPE_GLOW, "GLOW", 0, "Glow", ""},
|
|
|
|
{SEQ_TYPE_TRANSFORM, "TRANSFORM", 0, "Transform", ""},
|
|
|
|
{SEQ_TYPE_COLOR, "COLOR", 0, "Color", ""},
|
|
|
|
{SEQ_TYPE_SPEED, "SPEED", 0, "Speed", ""},
|
|
|
|
{SEQ_TYPE_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""},
|
|
|
|
{SEQ_TYPE_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""},
|
2014-07-19 22:16:10 +06:00
|
|
|
{SEQ_TYPE_GAUSSIAN_BLUR, "GAUSSIAN_BLUR", 0, "Gaussian Blur", ""},
|
2015-07-01 20:29:18 +02:00
|
|
|
{SEQ_TYPE_TEXT, "TEXT", 0, "Text", ""},
|
2017-11-27 23:33:08 +01:00
|
|
|
{SEQ_TYPE_COLORMIX, "COLORMIX", 0, "Color Mix", ""},
|
2019-02-03 14:01:45 +11:00
|
|
|
{0, NULL, 0, NULL, NULL},
|
2012-05-10 15:10:51 +00:00
|
|
|
};
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2021-03-30 02:45:22 +02:00
|
|
|
static const EnumPropertyItem scale_fit_methods[] = {
|
|
|
|
{SEQ_SCALE_TO_FIT, "FIT", 0, "Scale to Fit", "Scale image so fits in preview"},
|
|
|
|
{SEQ_SCALE_TO_FILL,
|
|
|
|
"FILL",
|
|
|
|
0,
|
|
|
|
"Scale to Fill",
|
|
|
|
"Scale image so it fills preview completely"},
|
|
|
|
{SEQ_STRETCH_TO_FILL, "STRETCH", 0, "Stretch to Fill", "Stretch image so it fills preview"},
|
|
|
|
{SEQ_USE_ORIGINAL_SIZE, "ORIGINAL", 0, "Use Original Size", "Don't scale the image"},
|
|
|
|
{0, NULL, 0, NULL, NULL},
|
|
|
|
};
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
const char *new_clip_func_name = "rna_Sequences_editing_new_clip";
|
|
|
|
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";
|
2021-03-19 23:55:39 +01:00
|
|
|
const char *new_meta_func_name = "rna_Sequences_editing_new_meta";
|
2020-12-02 05:51:22 +01:00
|
|
|
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";
|
2021-03-19 23:55:39 +01:00
|
|
|
new_meta_func_name = "rna_Sequences_meta_new_meta";
|
2020-12-02 05:51:22 +01:00
|
|
|
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");
|
|
|
|
}
|
|
|
|
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_struct_ui_text(srna, "Sequences", "Collection of Sequences");
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_clip", new_clip_func_name);
|
2019-06-11 11:18:47 +02:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new movie clip sequence");
|
2012-10-20 05:51:45 +00:00
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_pointer(func, "clip", "MovieClip", "", "Movie clip to add");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-06-07 18:24:36 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-06-07 18:24:36 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_mask", new_mask_func_name);
|
2019-06-11 11:18:47 +02:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-10-20 05:51:45 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new mask sequence");
|
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-06-07 18:24:36 +00:00
|
|
|
parm = RNA_def_pointer(func, "mask", "Mask", "", "Mask to add");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_scene", new_scene_func_name);
|
2019-06-11 11:15:52 +02:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new scene sequence");
|
2012-10-20 05:51:45 +00:00
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_pointer(func, "scene", "Scene", "", "Scene to add");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_image", new_image_func_name);
|
2019-06-11 11:18:47 +02:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new image sequence");
|
2012-10-20 05:51:45 +00:00
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_string(func, "filepath", "File", 0, "", "Filepath to image");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2021-03-30 02:45:22 +02:00
|
|
|
parm = RNA_def_enum(
|
|
|
|
func, "fit_method", scale_fit_methods, SEQ_USE_ORIGINAL_SIZE, "Image Fit Method", NULL);
|
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_PYFUNC_OPTIONAL);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_movie", new_movie_func_name);
|
2021-03-02 12:08:16 +01:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new movie sequence");
|
2012-10-20 05:51:45 +00:00
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_string(func, "filepath", "File", 0, "", "Filepath to movie");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2021-03-30 02:45:22 +02:00
|
|
|
parm = RNA_def_enum(
|
|
|
|
func, "fit_method", scale_fit_methods, SEQ_USE_ORIGINAL_SIZE, "Image Fit Method", NULL);
|
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_PYFUNC_OPTIONAL);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_sound", new_sound_func_name);
|
2012-05-11 11:05:48 +00:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID | FUNC_USE_MAIN);
|
2012-10-20 05:51:45 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new sound sequence");
|
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_string(func, "filepath", "File", 0, "", "Filepath to movie");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
2012-05-10 15:22:29 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2021-03-19 23:55:39 +01:00
|
|
|
func = RNA_def_function(srna, "new_meta", new_meta_func_name);
|
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID);
|
|
|
|
RNA_def_function_ui_description(func, "Add a new meta sequence");
|
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME,
|
|
|
|
"",
|
|
|
|
"The start frame for the new sequence",
|
|
|
|
-MAXFRAME,
|
|
|
|
MAXFRAME);
|
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "new_effect", new_effect_func_name);
|
2012-05-11 11:05:48 +00:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_SELF_ID);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Add a new effect sequence");
|
2012-10-20 05:51:45 +00:00
|
|
|
parm = RNA_def_string(func, "name", "Name", 0, "", "Name for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2012-05-10 15:10:51 +00:00
|
|
|
parm = RNA_def_enum(func, "type", seq_effect_items, 0, "Type", "type for the new sequence");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2015-02-12 02:36:33 +11:00
|
|
|
parm = RNA_def_int(
|
|
|
|
func, "channel", 0, 1, MAXSEQ, "Channel", "The channel for the new sequence", 1, MAXSEQ);
|
2013-01-06 10:17:38 +00:00
|
|
|
/* don't use MAXFRAME since it makes importer scripts fail */
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
parm = RNA_def_int(func,
|
|
|
|
"frame_start",
|
|
|
|
0,
|
|
|
|
INT_MIN,
|
|
|
|
INT_MAX,
|
|
|
|
"",
|
2013-01-06 10:17:38 +00:00
|
|
|
"The start frame for the new sequence",
|
|
|
|
INT_MIN,
|
|
|
|
INT_MAX);
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
2013-01-06 12:42:47 +00:00
|
|
|
RNA_def_int(func,
|
|
|
|
"frame_end",
|
|
|
|
0,
|
|
|
|
INT_MIN,
|
|
|
|
INT_MAX,
|
|
|
|
"",
|
2013-01-06 10:17:38 +00:00
|
|
|
"The end frame for the new sequence",
|
|
|
|
INT_MIN,
|
|
|
|
INT_MAX);
|
2012-11-01 09:54:00 +00:00
|
|
|
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");
|
2012-05-10 15:10:51 +00:00
|
|
|
/* return type */
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "New Sequence");
|
|
|
|
RNA_def_function_return(func, parm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2020-12-02 05:51:22 +01:00
|
|
|
func = RNA_def_function(srna, "remove", remove_func_name);
|
2019-06-11 11:18:47 +02:00
|
|
|
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS | FUNC_USE_MAIN);
|
2012-05-10 15:10:51 +00:00
|
|
|
RNA_def_function_ui_description(func, "Remove a Sequence");
|
|
|
|
parm = RNA_def_pointer(func, "sequence", "Sequence", "", "Sequence to remove");
|
Refactor RNA property: split flags in property flags, parameter flags, and internal flags.
This gives us 9 flags available again for properties (we had none anymore),
and also makes things slightly cleaner.
To simplify (and make more clear the differences between mere properties
and function parameters), also added RNA_def_parameter_flags function (and
its clear counterpart), to be used instead of RNA_def_property_flag for
function parameters.
This patch is also a big cleanup (some RNA function definitions were
still using 'prop' PropertyRNA pointer, etc.).
And yes, am aware this will be annoying for all branches, but we really need
to get new flags available for properties (will need at least one for override, etc.).
Reviewers: sergey, Severin
Subscribers: dfelinto, brecht
Differential Revision: https://developer.blender.org/D2400
2016-12-12 15:23:55 +01:00
|
|
|
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
|
|
|
|
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
|
2012-05-10 15:10:51 +00:00
|
|
|
}
|
|
|
|
|
2010-06-21 22:05:34 +00:00
|
|
|
#endif
|