Snap trims as well.

pull/3/head
Jonathan Moore Liles 2008-05-17 00:14:26 -05:00
parent 4422c354f7
commit 91614d9aa1
3 changed files with 26 additions and 2 deletions

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;

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:

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 )
{ {
} }