~ubuntu-branches/ubuntu/trusty/blender/trusty

« back to all changes in this revision

Viewing changes to source/blender/blenkernel/intern/sequencer.c

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2012-05-12 20:02:22 UTC
  • mfrom: (14.2.16 sid)
  • Revision ID: package-import@ubuntu.com-20120512200222-lznjs2cxzaq96wua
Tags: 2.63a-1
* New upstream bugfix release
  + debian/patches/: re-worked since source code changed

Show diffs side-by-side

added added

removed removed

Lines of Context:
515
515
        *seqar = tseqar;
516
516
}
517
517
 
518
 
 
519
 
static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq)
 
518
static int metaseq_start(Sequence *metaseq)
 
519
{
 
520
        return metaseq->start + metaseq->startofs;
 
521
}
 
522
 
 
523
static int metaseq_end(Sequence *metaseq)
 
524
{
 
525
        return metaseq->start + metaseq->len - metaseq->endofs;
 
526
}
 
527
 
 
528
static void seq_update_sound_bounds_recursive_rec(Scene *scene, Sequence *metaseq, int start, int end)
520
529
{
521
530
        Sequence *seq;
522
531
 
524
533
         * since sound is played outside of evaluating the imbufs, */
525
534
        for (seq = metaseq->seqbase.first; seq; seq = seq->next) {
526
535
                if (seq->type == SEQ_META) {
527
 
                        seq_update_sound_bounds_recursive(scene, seq);
 
536
                        seq_update_sound_bounds_recursive_rec(scene, seq, MAX2(start, metaseq_start(seq)), MIN2(end, metaseq_end(seq)));
528
537
                }
529
538
                else if (ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) {
530
539
                        if (seq->scene_sound) {
531
540
                                int startofs = seq->startofs;
532
541
                                int endofs = seq->endofs;
533
 
                                if (seq->startofs + seq->start < metaseq->start + metaseq->startofs)
534
 
                                        startofs = metaseq->start + metaseq->startofs - seq->start;
 
542
                                if (seq->startofs + seq->start < start)
 
543
                                        startofs = start - seq->start;
535
544
 
536
 
                                if (seq->start + seq->len - seq->endofs > metaseq->start + metaseq->len - metaseq->endofs)
537
 
                                        endofs = seq->start + seq->len - metaseq->start - metaseq->len + metaseq->endofs;
 
545
                                if (seq->start + seq->len - seq->endofs > end)
 
546
                                        endofs = seq->start + seq->len - end;
538
547
                                sound_move_scene_sound(scene, seq->scene_sound, seq->start + startofs, seq->start + seq->len - endofs, startofs);
539
548
                        }
540
549
                }
541
550
        }
542
551
}
543
552
 
 
553
static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq)
 
554
{
 
555
        seq_update_sound_bounds_recursive_rec(scene, metaseq, metaseq_start(metaseq), metaseq_end(metaseq));
 
556
}
 
557
 
544
558
void calc_sequence_disp(Scene *scene, Sequence *seq)
545
559
{
546
560
        if (seq->startofs && seq->startstill) seq->startstill = 0;