bugfix
[blender.git] / source / blender / include / BIF_editseq.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL LICENSE BLOCK *****
28  */
29
30 #ifndef BIF_EDITSEQ_H
31 #define BIF_EDITSEQ_H
32
33 struct Sequence;
34
35 void                            add_duplicate_seq(void);
36 void                            add_sequence(int type);
37 void                            borderselect_seq(void);
38 void                            boundbox_seq(void);
39 void                            change_sequence(void);
40 void                            reload_sequence(void);
41 void                            update_seq_ipo_rect(struct Sequence * seq);
42 void                            update_seq_icu_rects(struct Sequence * seq);
43 struct Sequence*        get_last_seq();
44 struct Sequence*        get_forground_frame_seq( int frame );
45 void                            set_last_seq(struct Sequence * seq);
46 void                            clear_last_seq();
47 void                            del_seq(void);
48 void                            enter_meta(void);
49 void                            exit_meta(void);
50 struct Sequence*        find_neighboring_sequence(struct Sequence *test, int lr, int sel);
51 struct Sequence*        find_next_prev_sequence(struct Sequence *test, int lr, int sel);
52 struct Sequence*        find_nearest_seq(int *hand);
53 int                                     insert_gap(int gap, int cfra);
54 void                            make_meta(void);
55 void                            select_channel_direction(struct Sequence *test,int lr);
56 void                            select_more_seq(void);
57 void                            select_less_seq(void);
58 void                            mouse_select_seq(void);
59 void                            no_gaps(void);
60 void                            seq_snap(short event);
61 void                            seq_snap_menu(void);
62 void                            seq_mute_sel( int mute );
63 void                            seq_lock_sel(int lock);
64 void                            set_filter_seq(void);
65 void                            swap_select_seq(void);
66 void                            touch_seq_files(void);
67 void                            seq_remap_paths(void);
68 void                            transform_seq(int mode, int context);
69 void                            transform_seq_nomarker(int mode, int context);
70 void                            un_meta(void);
71 void                            seq_cut(int cutframe, int hard_cut);
72 void                            seq_separate_images(void);
73 void                            reassign_inputs_seq_effect(void);
74 void                            select_surrounding_handles(struct Sequence *test);
75 void                            select_surround_from_last();
76 void                            select_dir_from_last(int lr);
77 void                            select_neighbor_from_last(int lr);
78 void                            select_linked_seq(int mode);
79 int                                     test_overlap_seq(struct Sequence *test);
80 void                            shuffle_seq(struct Sequence *test);
81 struct Sequence*        alloc_sequence(ListBase *lb, int cfra, int machine); /*used from python*/
82 int                             check_single_seq(struct Sequence *seq);
83
84 /* seq funcs for transform
85  notice the difference between start/end and left/right.
86  
87  left and right are the bounds at which the setuence is rendered,
88 start and end are from the start and fixed length of the sequence.
89 */
90
91 /* sequence transform functions, for internal used */
92 int seq_tx_get_start(struct Sequence *seq);
93 int seq_tx_get_end(struct Sequence *seq);
94
95 int seq_tx_get_final_left(struct Sequence *seq, int metaclip);
96 int seq_tx_get_final_right(struct Sequence *seq, int metaclip);
97
98 void seq_tx_set_final_left(struct Sequence *seq, int i);
99 void seq_tx_set_final_right(struct Sequence *seq, int i);
100
101 /* check if one side can be transformed */
102 int seq_tx_check_left(struct Sequence *seq);
103 int seq_tx_check_right(struct Sequence *seq);
104
105 #define SEQ_DEBUG_INFO(seq) printf("seq into '%s' -- len:%i  start:%i  startstill:%i  endstill:%i  startofs:%i  endofs:%i depth:%i\n",\
106                     seq->name, seq->len, seq->start, seq->startstill, seq->endstill, seq->startofs, seq->endofs, seq->depth)
107
108
109 #endif
110