2002-10-12 11:37:38 +00:00
|
|
|
/**
|
|
|
|
|
* $Id$
|
|
|
|
|
*
|
2008-04-16 22:40:48 +00:00
|
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
2002-10-12 11:37:38 +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
|
2008-04-16 22:40:48 +00:00
|
|
|
* of the License, or (at your option) any later version.
|
2002-10-12 11:37:38 +00:00
|
|
|
*
|
|
|
|
|
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
*
|
|
|
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* The Original Code is: all of this file.
|
|
|
|
|
*
|
|
|
|
|
* Contributor(s): none yet.
|
|
|
|
|
*
|
2008-04-16 22:40:48 +00:00
|
|
|
* ***** END GPL LICENSE BLOCK *****
|
2002-10-12 11:37:38 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef BIF_EDITSEQ_H
|
|
|
|
|
#define BIF_EDITSEQ_H
|
|
|
|
|
|
|
|
|
|
struct Sequence;
|
|
|
|
|
|
|
|
|
|
void add_duplicate_seq(void);
|
|
|
|
|
void add_sequence(int type);
|
|
|
|
|
void borderselect_seq(void);
|
|
|
|
|
void boundbox_seq(void);
|
|
|
|
|
void change_sequence(void);
|
2007-10-24 13:12:07 +00:00
|
|
|
void reload_sequence(void);
|
== Sequencer ==
Added enhancements by blendix (Patch #4919: Insert sequence effect between)
It adds the following things:
- You can add a sequence strip afterwards in the middle of an effect chain
(you have to move strips around before, so that there is "room" for it.
Blender will ask you then, if you want to add in between or after the
selected strips)
- In the case you messed it up and want your effect strips to be reassigned in
a different way, there is the new "R"-key. Just select three arbitrary
strips and press "R". If you don't create a cycle, those will be connected
to a new effect chain.
- Fixed freeing of imbufs on changes to properly take into account dependencies. An example of a simple case that went wrong is one image strip with two
glow effects, changing the parameters of the first glow strip will not
result in any updates. Basically only direct dependencies were taken into
account, which resulted in the image preview not being updated in some cases.
- Let the sequencer detect an active sequence strip if none is defined, to
get rid of annoying error messages when trying to add an effect to a
selected sequence strip right after loading a file.
- Delete is less destructive. If you delete somewhere between other strips,
Blender now tries to relink in a reasonable way.
- The active sequence strip is now displayed with a light instead of a dark
outline, which makes it easier to spot, and is especially useful for the
tools using the active sequence strip.
- Ability to view the final result when editing inside meta strip.
The channel button was modified to also allow negative numbers,
where -n is n levels up the meta stack. There is probably a nicer way to
specify this, instead of (ab)using the channel button, but this seems to
work quite efficient.
- Also a small bugfix: don't crash on loading files from newer versions with
an unknown effect strip.
2006-11-09 18:58:02 +00:00
|
|
|
void update_seq_ipo_rect(struct Sequence * seq);
|
2006-12-31 15:38:14 +00:00
|
|
|
void update_seq_icu_rects(struct Sequence * seq);
|
== Sequencer ==
Added enhancements by blendix (Patch #4919: Insert sequence effect between)
It adds the following things:
- You can add a sequence strip afterwards in the middle of an effect chain
(you have to move strips around before, so that there is "room" for it.
Blender will ask you then, if you want to add in between or after the
selected strips)
- In the case you messed it up and want your effect strips to be reassigned in
a different way, there is the new "R"-key. Just select three arbitrary
strips and press "R". If you don't create a cycle, those will be connected
to a new effect chain.
- Fixed freeing of imbufs on changes to properly take into account dependencies. An example of a simple case that went wrong is one image strip with two
glow effects, changing the parameters of the first glow strip will not
result in any updates. Basically only direct dependencies were taken into
account, which resulted in the image preview not being updated in some cases.
- Let the sequencer detect an active sequence strip if none is defined, to
get rid of annoying error messages when trying to add an effect to a
selected sequence strip right after loading a file.
- Delete is less destructive. If you delete somewhere between other strips,
Blender now tries to relink in a reasonable way.
- The active sequence strip is now displayed with a light instead of a dark
outline, which makes it easier to spot, and is especially useful for the
tools using the active sequence strip.
- Ability to view the final result when editing inside meta strip.
The channel button was modified to also allow negative numbers,
where -n is n levels up the meta stack. There is probably a nicer way to
specify this, instead of (ab)using the channel button, but this seems to
work quite efficient.
- Also a small bugfix: don't crash on loading files from newer versions with
an unknown effect strip.
2006-11-09 18:58:02 +00:00
|
|
|
struct Sequence* get_last_seq();
|
2007-11-08 13:02:59 +00:00
|
|
|
struct Sequence* get_forground_frame_seq( int frame );
|
== Sequencer ==
Added enhancements by blendix (Patch #4919: Insert sequence effect between)
It adds the following things:
- You can add a sequence strip afterwards in the middle of an effect chain
(you have to move strips around before, so that there is "room" for it.
Blender will ask you then, if you want to add in between or after the
selected strips)
- In the case you messed it up and want your effect strips to be reassigned in
a different way, there is the new "R"-key. Just select three arbitrary
strips and press "R". If you don't create a cycle, those will be connected
to a new effect chain.
- Fixed freeing of imbufs on changes to properly take into account dependencies. An example of a simple case that went wrong is one image strip with two
glow effects, changing the parameters of the first glow strip will not
result in any updates. Basically only direct dependencies were taken into
account, which resulted in the image preview not being updated in some cases.
- Let the sequencer detect an active sequence strip if none is defined, to
get rid of annoying error messages when trying to add an effect to a
selected sequence strip right after loading a file.
- Delete is less destructive. If you delete somewhere between other strips,
Blender now tries to relink in a reasonable way.
- The active sequence strip is now displayed with a light instead of a dark
outline, which makes it easier to spot, and is especially useful for the
tools using the active sequence strip.
- Ability to view the final result when editing inside meta strip.
The channel button was modified to also allow negative numbers,
where -n is n levels up the meta stack. There is probably a nicer way to
specify this, instead of (ab)using the channel button, but this seems to
work quite efficient.
- Also a small bugfix: don't crash on loading files from newer versions with
an unknown effect strip.
2006-11-09 18:58:02 +00:00
|
|
|
void set_last_seq(struct Sequence * seq);
|
|
|
|
|
void clear_last_seq();
|
2002-10-12 11:37:38 +00:00
|
|
|
void del_seq(void);
|
|
|
|
|
void enter_meta(void);
|
2003-10-20 20:12:01 +00:00
|
|
|
void exit_meta(void);
|
2007-10-18 12:35:58 +00:00
|
|
|
struct Sequence* find_neighboring_sequence(struct Sequence *test, int lr, int sel);
|
|
|
|
|
struct Sequence* find_next_prev_sequence(struct Sequence *test, int lr, int sel);
|
2002-10-12 11:37:38 +00:00
|
|
|
struct Sequence* find_nearest_seq(int *hand);
|
|
|
|
|
int insert_gap(int gap, int cfra);
|
|
|
|
|
void make_meta(void);
|
2007-06-26 17:46:12 +00:00
|
|
|
void select_channel_direction(struct Sequence *test,int lr);
|
2007-10-18 12:35:58 +00:00
|
|
|
void select_more_seq(void);
|
|
|
|
|
void select_less_seq(void);
|
2002-10-12 11:37:38 +00:00
|
|
|
void mouse_select_seq(void);
|
|
|
|
|
void no_gaps(void);
|
2004-06-03 14:29:14 +00:00
|
|
|
void seq_snap(short event);
|
|
|
|
|
void seq_snap_menu(void);
|
2008-01-20 20:09:06 +00:00
|
|
|
void seq_mute_sel( int mute );
|
2008-02-24 12:12:05 +00:00
|
|
|
void seq_lock_sel(int lock);
|
2002-10-12 11:37:38 +00:00
|
|
|
void set_filter_seq(void);
|
|
|
|
|
void swap_select_seq(void);
|
|
|
|
|
void touch_seq_files(void);
|
2007-06-25 13:01:46 +00:00
|
|
|
void seq_remap_paths(void);
|
2005-04-30 21:19:19 +00:00
|
|
|
void transform_seq(int mode, int context);
|
2007-10-18 19:40:59 +00:00
|
|
|
void transform_seq_nomarker(int mode, int context);
|
2002-10-12 11:37:38 +00:00
|
|
|
void un_meta(void);
|
2008-03-24 17:35:01 +00:00
|
|
|
void seq_cut(int cutframe, int hard_cut);
|
2007-10-17 11:17:11 +00:00
|
|
|
void seq_separate_images(void);
|
== Sequencer ==
Added enhancements by blendix (Patch #4919: Insert sequence effect between)
It adds the following things:
- You can add a sequence strip afterwards in the middle of an effect chain
(you have to move strips around before, so that there is "room" for it.
Blender will ask you then, if you want to add in between or after the
selected strips)
- In the case you messed it up and want your effect strips to be reassigned in
a different way, there is the new "R"-key. Just select three arbitrary
strips and press "R". If you don't create a cycle, those will be connected
to a new effect chain.
- Fixed freeing of imbufs on changes to properly take into account dependencies. An example of a simple case that went wrong is one image strip with two
glow effects, changing the parameters of the first glow strip will not
result in any updates. Basically only direct dependencies were taken into
account, which resulted in the image preview not being updated in some cases.
- Let the sequencer detect an active sequence strip if none is defined, to
get rid of annoying error messages when trying to add an effect to a
selected sequence strip right after loading a file.
- Delete is less destructive. If you delete somewhere between other strips,
Blender now tries to relink in a reasonable way.
- The active sequence strip is now displayed with a light instead of a dark
outline, which makes it easier to spot, and is especially useful for the
tools using the active sequence strip.
- Ability to view the final result when editing inside meta strip.
The channel button was modified to also allow negative numbers,
where -n is n levels up the meta stack. There is probably a nicer way to
specify this, instead of (ab)using the channel button, but this seems to
work quite efficient.
- Also a small bugfix: don't crash on loading files from newer versions with
an unknown effect strip.
2006-11-09 18:58:02 +00:00
|
|
|
void reassign_inputs_seq_effect(void);
|
2007-06-26 17:46:12 +00:00
|
|
|
void select_surrounding_handles(struct Sequence *test);
|
|
|
|
|
void select_surround_from_last();
|
|
|
|
|
void select_dir_from_last(int lr);
|
|
|
|
|
void select_neighbor_from_last(int lr);
|
2007-10-18 12:35:58 +00:00
|
|
|
void select_linked_seq(int mode);
|
2008-01-15 21:44:09 +00:00
|
|
|
int test_overlap_seq(struct Sequence *test);
|
|
|
|
|
void shuffle_seq(struct Sequence *test);
|
2007-03-07 14:58:29 +00:00
|
|
|
struct Sequence* alloc_sequence(ListBase *lb, int cfra, int machine); /*used from python*/
|
2007-10-23 19:30:22 +00:00
|
|
|
int check_single_seq(struct Sequence *seq);
|
2002-10-12 11:37:38 +00:00
|
|
|
|
2008-01-15 21:44:09 +00:00
|
|
|
/* seq funcs for transform
|
|
|
|
|
notice the difference between start/end and left/right.
|
|
|
|
|
|
|
|
|
|
left and right are the bounds at which the setuence is rendered,
|
|
|
|
|
start and end are from the start and fixed length of the sequence.
|
|
|
|
|
*/
|
|
|
|
|
|
2007-10-09 20:37:53 +00:00
|
|
|
/* sequence transform functions, for internal used */
|
|
|
|
|
int seq_tx_get_start(struct Sequence *seq);
|
|
|
|
|
int seq_tx_get_end(struct Sequence *seq);
|
|
|
|
|
|
2008-05-31 16:22:07 +00:00
|
|
|
int seq_tx_get_final_left(struct Sequence *seq, int metaclip);
|
|
|
|
|
int seq_tx_get_final_right(struct Sequence *seq, int metaclip);
|
2007-10-09 20:37:53 +00:00
|
|
|
|
|
|
|
|
void seq_tx_set_final_left(struct Sequence *seq, int i);
|
|
|
|
|
void seq_tx_set_final_right(struct Sequence *seq, int i);
|
|
|
|
|
|
2007-10-17 22:31:59 +00:00
|
|
|
/* check if one side can be transformed */
|
|
|
|
|
int seq_tx_check_left(struct Sequence *seq);
|
|
|
|
|
int seq_tx_check_right(struct Sequence *seq);
|
|
|
|
|
|
2008-01-20 13:52:54 +00:00
|
|
|
#define SEQ_DEBUG_INFO(seq) printf("seq into '%s' -- len:%i start:%i startstill:%i endstill:%i startofs:%i endofs:%i depth:%i\n",\
|
|
|
|
|
seq->name, seq->len, seq->start, seq->startstill, seq->endstill, seq->startofs, seq->endofs, seq->depth)
|
2007-10-08 23:38:50 +00:00
|
|
|
|
2004-06-16 20:25:56 +00:00
|
|
|
|
2002-10-12 11:37:38 +00:00
|
|
|
#endif
|
2002-10-30 02:07:20 +00:00
|
|
|
|