| @@ -464,7 +464,7 @@ Region::draw ( int X, int Y, int W, int H ) | |||
| _scale, selected() ? fl_invert_color( _color ) : _color ); | |||
| // timeline->draw_measure_lines( rx, Y, rw, H, _box_color ); | |||
| timeline->draw_measure_lines( rx, Y, rw, H, _box_color ); | |||
| fl_color( FL_BLACK ); | |||
| fl_line( rx, Y, rx, Y + H ); | |||
| @@ -99,42 +99,36 @@ protected: | |||
| if ( ! strcmp( s, ":x" ) ) | |||
| _offset = atol( v ); | |||
| else | |||
| if ( ! strcmp( s, ":l" ) ) | |||
| _start = atol( v ); | |||
| else if ( ! strcmp( s, ":l" ) ) | |||
| _start = atol( v ); | |||
| else if ( ! strcmp( s, ":r" ) ) | |||
| _end = atol( v ); | |||
| else if ( ! strcmp( s, ":selected" ) ) | |||
| { | |||
| if ( atoi( v ) ) | |||
| select(); | |||
| else | |||
| if ( ! strcmp( s, ":r" ) ) | |||
| _end = atol( v ); | |||
| else | |||
| if ( ! strcmp( s, ":selected" ) ) | |||
| { | |||
| if ( atoi( v ) ) | |||
| select(); | |||
| else | |||
| deselect(); | |||
| } | |||
| else | |||
| if ( ! strcmp( s, ":gain" ) ) | |||
| _scale = atof( v ); | |||
| else | |||
| if ( ! strcmp( s, ":source" ) ) | |||
| { | |||
| if ( ! ( _clip = Audio_File::from_file( v ) ) ) | |||
| { | |||
| printf( "Grave error: could not open source \"%s\"\n", v ); | |||
| } | |||
| } | |||
| else | |||
| if ( ! strcmp( s, ":track" ) ) | |||
| { | |||
| int i; | |||
| sscanf( v, "%X", &i ); | |||
| Track *t = (Track*)Loggable::find( i ); | |||
| assert( t ); | |||
| t->add( this ); | |||
| } | |||
| deselect(); | |||
| } | |||
| else if ( ! strcmp( s, ":gain" ) ) | |||
| _scale = atof( v ); | |||
| else if ( ! strcmp( s, ":source" ) ) | |||
| { | |||
| if ( ! ( _clip = Audio_File::from_file( v ) ) ) | |||
| { | |||
| printf( "Grave error: could not open source \"%s\"\n", v ); | |||
| } | |||
| } | |||
| else if ( ! strcmp( s, ":track" ) ) | |||
| { | |||
| int i; | |||
| sscanf( v, "%X", &i ); | |||
| Track *t = (Track*)Loggable::find( i ); | |||
| assert( t ); | |||
| t->add( this ); | |||
| } | |||
| free( s ); | |||
| @@ -86,11 +86,24 @@ Track::draw ( void ) | |||
| fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); | |||
| if ( pushed() && pushed()->track() == this ) | |||
| { | |||
| /* make sure the pushed widget is above all others */ | |||
| remove( pushed() ); | |||
| add( pushed() ); | |||
| } | |||
| int xfades = 0; | |||
| // printf( "track::draw %d,%d %dx%d\n", X,Y,W,H ); | |||
| timeline->draw_measure_lines( x(), y(), w(), h(), color() ); | |||
| for ( list <Track_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) | |||
| (*r)->draw_box( X, Y, W, H ); | |||
| for ( list <Track_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) | |||
| (*r)->draw( X, Y, W, H ); | |||
| @@ -112,6 +125,8 @@ Track::draw ( void ) | |||
| /* completely inside */ | |||
| continue; | |||
| ++xfades; | |||
| Rectangle b( (*r)->x(), | |||
| o->y(), | |||
| (o->x() + o->w()) - (*r)->x(), | |||
| @@ -133,7 +148,9 @@ Track::draw ( void ) | |||
| } | |||
| for ( list <Track_Widget *>::const_reverse_iterator r = _widgets.rbegin(); r != _widgets.rend(); r++ ) | |||
| // printf( "There are %d xfades\n", xfades ); | |||
| for ( list <Track_Widget *>::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) | |||
| { | |||
| Track_Widget *o = overlaps( *r ); | |||
| @@ -184,7 +201,6 @@ Track::draw ( void ) | |||
| } | |||
| } | |||
| timeline->draw_measure_lines( x(), y(), w(), h(), color() ); | |||
| fl_pop_clip(); | |||
| } | |||