Browse Source

Snap trims as well.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
91614d9aa1
3 changed files with 26 additions and 2 deletions
  1. +2
    -2
      Timeline/Audio_Region.C
  2. +10
    -0
      Timeline/Sequence_Region.C
  3. +14
    -0
      Timeline/Sequence_Widget.H

+ 2
- 2
Timeline/Audio_Region.C View File

@@ -865,6 +865,8 @@ Audio_Region::write ( nframes_t nframes )
bool bool
Audio_Region::finalize ( nframes_t frame ) Audio_Region::finalize ( nframes_t frame )
{ {
_range.length = frame - _range.start;

log_end(); log_end();


_clip->close(); _clip->close();
@@ -872,8 +874,6 @@ Audio_Region::finalize ( nframes_t frame )


/* FIXME: should we attempt to truncate the file? */ /* FIXME: should we attempt to truncate the file? */


_range.length = frame - _range.start;

redraw(); redraw();


return true; return true;


+ 10
- 0
Timeline/Sequence_Region.C View File

@@ -92,6 +92,11 @@ Sequence_Region::trim ( enum trim_e t, int X )


_r->trim_left( 0 - td ); _r->trim_left( 0 - td );


nframes_t f;
/* snap to beat/bar lines */
if ( timeline->nearest_line( _r->start, &f ) )
_r->set_left( f );

break; break;
} }
case RIGHT: case RIGHT:
@@ -109,6 +114,11 @@ Sequence_Region::trim ( enum trim_e t, int X )


_r->trim_right( 0 - td ); _r->trim_right( 0 - td );


nframes_t f;
/* snap to beat/bar lines */
if ( timeline->nearest_line( _r->start + _r->length, &f ) )
_r->set_right( f );

break; break;
} }
default: default:


+ 14
- 0
Timeline/Sequence_Widget.H View File

@@ -62,6 +62,20 @@ struct Range
length += n; length += n;
} }


void
set_left ( nframes_t f )
{
offset += f - start;
length -= f - start;
start = f;
}

void
set_right ( nframes_t f )
{
length = f - start;
}

Range ( ) : start( 0 ), offset( 0 ), length( 0 ) Range ( ) : start( 0 ), offset( 0 ), length( 0 )
{ {
} }


Loading…
Cancel
Save