diff --git a/Makefile b/Makefile index 47bea63..96a9b1d 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ -CXXFLAGS=-ggdb -Wall -O0 - +CXXFLAGS=-ggdb -Wall -O0 #LIBS=-L/usr/lib/sox -I/usr/include/sox -lsox -lsfx LIBS=-lsndfile `fltk-config --ldflags` # CXXFLAGS=`fltk-config -cxxflags` diff --git a/Region.C b/Region.C index 61a6314..9f718a2 100644 --- a/Region.C +++ b/Region.C @@ -294,10 +294,10 @@ Region::draw_box( int X, int Y, int W, int H ) fl_push_clip( x(), Y, w(), H ); if ( _selected ) - fl_draw_box( fl_down( box() ), x() - 10, Y, w() + 50, H, _selection_color ); + fl_draw_box( fl_down( box() ), x() - 10, y(), w() + 50, h(), _selection_color ); // fl_draw_box( fl_down( box() ), x() - 10, Y, w() + 50, H, fl_invert_color( _box_color ) ); else - fl_draw_box( box(), x() - 10, Y, w() + 50, H, _box_color ); + fl_draw_box( box(), x() - 10, y(), w() + 50, h(), _box_color ); fl_pop_clip(); } @@ -343,9 +343,9 @@ Region::draw ( int X, int Y, int W, int H ) // fl_push_clip( x() + Fl::box_dx( box() ), y(), w() - Fl::box_dw( box() ), h() ); - int ch = H / _clip->channels(); + int ch = h() / _clip->channels(); for ( int i = _clip->channels(); i--; ) - draw_waveform( rx, Y + (i * ch), rw, ch, _clip, i, + draw_waveform( rx, y() + (i * ch), rw, ch, _clip, i, _start + offset, min( (_end - _start) - offset, _end), _scale, _selected ? _color : fl_invert_color( _color ) ); diff --git a/Scalebar.H b/Scalebar.H index f97af4c..7aed7ff 100644 --- a/Scalebar.H +++ b/Scalebar.H @@ -41,13 +41,14 @@ public: _zoom = 1.0f; _zoom_min = 0; _zoom_max = 256; - _zoom_changed = true; + _zoom_changed = false; step( 1 ); } bool zoom_changed ( void ) const { return _zoom_changed; } double zoom ( void ) const { return _zoom; } + void zoom ( double v ) { _zoom = v; } double value ( void ) const { return Fl_Slider::value(); } void zoom_range ( double zmin, double zmax ) { _zoom_min = zmin; _zoom_max = zmax; } @@ -58,6 +59,9 @@ public: { case FL_MOUSEWHEEL: { + if ( ! Fl::event_ctrl() ) + return 0; + int d = Fl::event_dy(); double z = _zoom; diff --git a/Timeline.C b/Timeline.C index f1daf24..74dcd76 100644 --- a/Timeline.C +++ b/Timeline.C @@ -25,6 +25,9 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, Y, W, H, L ) { + + xoffset = 0; + { Fl_Pack *o = new Fl_Pack( 0, 0, 800, 600, "rulers" ); o->type( Fl_Pack::VERTICAL ); @@ -62,7 +65,7 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, { Fl_Scroll *o = new Fl_Scroll( 0, 24 * 2, 800, 600 - (24 * 3) ); - o->type( Fl_Scroll::VERTICAL ); + o->type( Fl_Scroll::VERTICAL_ALWAYS ); sample_rate = 44100; fpp = 256; @@ -74,8 +77,15 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, o->type( Fl_Pack::VERTICAL ); o->spacing( 10 ); + Track *l = NULL; + for ( int i = 6; i--; ) { + Track *o = new Audio_Track( 0, 0, 800, 100 ); + o->prev( l ); + if ( l ) + l->next( o ); + l = o; o->end(); } @@ -87,6 +97,8 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X, o->end(); } + redraw(); + end(); } diff --git a/main.C b/main.C index f7d0c35..1fb3a14 100644 --- a/main.C +++ b/main.C @@ -66,6 +66,7 @@ cb_scroll ( Fl_Widget *w, void *v ) int maxx = timeline->ts_to_x( timeline->length ); sb->range( 0, maxx ); +// timeline->redraw(); timeline->redraw(); } else @@ -124,6 +125,7 @@ main ( int argc, char **argv ) timeline->scrollbar = new Scalebar( 0, 600 - 24, 800, 24 ); timeline->scrollbar->range( 0, 48000 * 2 ); timeline->scrollbar->zoom_range( 2, 8192 ); + timeline->scrollbar->zoom( 256 ); timeline->scrollbar->type( 1 ); timeline->scrollbar->callback( cb_scroll, 0 );