Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BIF_editseq.h « include « editors « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: dc9722aa2fb430149ca4a1b1d0cbd77ba2036da5 (plain)
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