Changeset View
Changeset View
Standalone View
Standalone View
source/blender/sequencer/intern/strip_transform.c
| Show All 34 Lines | |||||
| } | } | ||||
| static int seq_tx_get_end(Sequence *seq) | static int seq_tx_get_end(Sequence *seq) | ||||
| { | { | ||||
| return seq->start + seq->len; | return seq->start + seq->len; | ||||
| } | } | ||||
| int SEQ_transform_get_left_handle_frame(Sequence *seq) | int SEQ_transform_get_left_handle_frame(Sequence *seq) | ||||
| { | { | ||||
| return (seq->start - seq->startstill) + seq->startofs; | return seq->start + seq->startofs; | ||||
| } | } | ||||
| int SEQ_transform_get_right_handle_frame(Sequence *seq) | int SEQ_transform_get_right_handle_frame(Sequence *seq) | ||||
| { | { | ||||
| return ((seq->start + seq->len) + seq->endstill) - seq->endofs; | return seq->start + seq->len - seq->endofs; | ||||
| } | } | ||||
| void SEQ_transform_set_left_handle_frame(Sequence *seq, int val) | void SEQ_transform_set_left_handle_frame(Sequence *seq, int val) | ||||
| { | { | ||||
| if (val < (seq)->start) { | seq->startofs = val - seq->start; | ||||
| seq->startstill = abs(val - (seq)->start); | |||||
| seq->startofs = 0; | |||||
| } | |||||
| else { | |||||
| seq->startofs = abs(val - (seq)->start); | |||||
| seq->startstill = 0; | |||||
| } | |||||
| } | } | ||||
| void SEQ_transform_set_right_handle_frame(Sequence *seq, int val) | void SEQ_transform_set_right_handle_frame(Sequence *seq, int val) | ||||
| { | { | ||||
| if (val > (seq)->start + (seq)->len) { | seq->endofs = seq->start + seq->len - val; | ||||
| seq->endstill = abs(val - (seq->start + (seq)->len)); | |||||
| seq->endofs = 0; | |||||
| } | |||||
| else { | |||||
| seq->endofs = abs(val - ((seq)->start + (seq)->len)); | |||||
| seq->endstill = 0; | |||||
| } | |||||
| } | } | ||||
| bool SEQ_transform_single_image_check(Sequence *seq) | bool SEQ_transform_single_image_check(Sequence *seq) | ||||
| { | { | ||||
| return ((seq->len == 1) && | return ((seq->len == 1) && | ||||
| (seq->type == SEQ_TYPE_IMAGE || | (seq->type == SEQ_TYPE_IMAGE || | ||||
| ((seq->type & SEQ_TYPE_EFFECT) && SEQ_effect_get_num_inputs(seq->type) == 0))); | ((seq->type & SEQ_TYPE_EFFECT) && SEQ_effect_get_num_inputs(seq->type) == 0))); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | if (SEQ_transform_single_image_check(seq) == 0) { | ||||
| if (SEQ_transform_get_right_handle_frame(seq) <= seq_tx_get_start(seq)) { | if (SEQ_transform_get_right_handle_frame(seq) <= seq_tx_get_start(seq)) { | ||||
| SEQ_transform_set_right_handle_frame(seq, seq_tx_get_start(seq) + 1); | SEQ_transform_set_right_handle_frame(seq, seq_tx_get_start(seq) + 1); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| /* sounds cannot be extended past their endpoints */ | /* sounds cannot be extended past their endpoints */ | ||||
| if (seq->type == SEQ_TYPE_SOUND_RAM) { | if (seq->type == SEQ_TYPE_SOUND_RAM) { | ||||
| seq->startstill = 0; | CLAMP(seq->startofs, 0, MAXFRAME); | ||||
| seq->endstill = 0; | CLAMP(seq->endofs, 0, MAXFRAME); | ||||
| } | } | ||||
| } | } | ||||
| void SEQ_transform_fix_single_image_seq_offsets(Sequence *seq) | void SEQ_transform_fix_single_image_seq_offsets(Sequence *seq) | ||||
| { | { | ||||
| int left, start, offset; | int left, start, offset; | ||||
| if (!SEQ_transform_single_image_check(seq)) { | if (!SEQ_transform_single_image_check(seq)) { | ||||
| return; | return; | ||||
| ▲ Show 20 Lines • Show All 368 Lines • Show Last 20 Lines | |||||