1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
/**
* $Id: BIF_editseq.h 12524 2007-11-08 13:02:59Z campbellbarton $
*
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
* 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. The Blender
* Foundation also sells licenses for use in proprietary software under
* the Blender License. See http://www.blender.org/BL/ for information
* about this.
*
* 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.
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
#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);
void reload_sequence(void);
void update_seq_ipo_rect(struct Sequence * seq);
void update_seq_icu_rects(struct Sequence * seq);
struct Sequence* get_last_seq();
struct Sequence* get_forground_frame_seq( int frame );
void set_last_seq(struct Sequence * seq);
void clear_last_seq();
void del_seq(void);
void enter_meta(void);
void exit_meta(void);
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);
struct Sequence* find_nearest_seq(int *hand);
int insert_gap(int gap, int cfra);
void make_meta(void);
void select_channel_direction(struct Sequence *test,int lr);
void select_more_seq(void);
void select_less_seq(void);
void mouse_select_seq(void);
void no_gaps(void);
void seq_snap(short event);
void seq_snap_menu(void);
void set_filter_seq(void);
void swap_select_seq(void);
void touch_seq_files(void);
void seq_remap_paths(void);
void transform_seq(int mode, int context);
void transform_seq_nomarker(int mode, int context);
void un_meta(void);
void seq_cut(int cutframe);
void seq_separate_images(void);
void reassign_inputs_seq_effect(void);
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);
void select_linked_seq(int mode);
struct Sequence* alloc_sequence(ListBase *lb, int cfra, int machine); /*used from python*/
int check_single_seq(struct Sequence *seq);
/* sequence transform functions, for internal used */
int seq_tx_get_start(struct Sequence *seq);
int seq_tx_get_end(struct Sequence *seq);
int seq_tx_get_final_left(struct Sequence *seq);
int seq_tx_get_final_right(struct Sequence *seq);
void seq_tx_set_final_left(struct Sequence *seq, int i);
void seq_tx_set_final_right(struct Sequence *seq, int i);
/* check if one side can be transformed */
int seq_tx_check_left(struct Sequence *seq);
int seq_tx_check_right(struct Sequence *seq);
#define SEQ_DEBUG_INFO(seq) printf("seq into '%s' -- len:%i start:%i startstill:%i endstill:%i startofs:%i endofs:%i\n",\
seq->name, seq->len, seq->start, seq->startstill, seq->endstill, seq->startofs, seq->endofs)
/* seq macro's 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.
*/
/*
#define SEQ_GET_START(seq) (seq->start)
#define SEQ_GET_END(seq) (seq->start+seq->len)
#define SEQ_GET_FINAL_LEFT(seq) ((seq->start - seq->startstill) + seq->startofs)
#define SEQ_GET_FINAL_RIGHT(seq) (((seq->start+seq->len) + seq->endstill) - seq->endofs)
#define SEQ_SET_FINAL_LEFT(seq, val) \
if (val < (seq)->start) { \
(seq)->startstill = abs(val - (seq)->start); \
(seq)->startofs = 0; \
} else { \
(seq)->startofs = abs(val - (seq)->start); \
(seq)->startstill = 0; \
}
#define SEQ_SET_FINAL_RIGHT(seq, val) \
if (val > (seq)->start + (seq)->len) { \
(seq)->endstill = abs(val - ((seq)->start + (seq)->len)); \
(seq)->endofs = 0; \
} else { \
(seq)->endofs = abs(val - ((seq)->start + (seq)->len)); \
(seq)->endstill = 0; \
}
*/
/* drawseq.c */
void do_seqbuttons(short);
#endif
|