Browse Source

Fix measure line drawing/snap messed up by addition of track headers.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
f8ab34b914
2 changed files with 8 additions and 8 deletions
  1. +6
    -6
      Timeline.C
  2. +2
    -2
      main.C

+ 6
- 6
Timeline.C View File

@@ -147,12 +147,12 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Group( X,
{ {
Fl_Pack *o = new Fl_Pack( X, rulers->y() + rulers->h(), W - vscroll->w(), 5000 ); Fl_Pack *o = new Fl_Pack( X, rulers->y() + rulers->h(), W - vscroll->w(), 5000 );
o->type( Fl_Pack::VERTICAL ); o->type( Fl_Pack::VERTICAL );
o->spacing( 10 );
o->spacing( 5 );


Track *l = NULL; Track *l = NULL;
for ( int i = 16; i--; ) for ( int i = 16; i--; )
{ {
Track_Header *t = new Track_Header( 0, 0, 800, 100 );
Track_Header *t = new Track_Header( 0, 0, W, 75 );
Track *o = new Audio_Track( 0, 0, 1, 100 ); Track *o = new Audio_Track( 0, 0, 1, 100 );
o->prev( l ); o->prev( l );
if ( l ) if ( l )
@@ -206,7 +206,7 @@ Timeline::nearest_line ( int ix )
{ {
for ( int x = ix - 10; x < ix + 10; ++x ) for ( int x = ix - 10; x < ix + 10; ++x )
{ {
const int measure = ts_to_x( (double)(sample_rate * 60) / beats_per_minute( x_to_ts( x ) + xoffset ));
const int measure = ts_to_x( (double)(sample_rate * 60) / beats_per_minute( x_to_ts( x - Track_Header::width() ) + xoffset ));


// const int abs_x = ts_to_x( xoffset ) + x; // const int abs_x = ts_to_x( xoffset ) + x;


@@ -232,13 +232,13 @@ Timeline::draw_measure_lines ( int X, int Y, int W, int H, Fl_Color color )


for ( int x = X; x < X + W; ++x ) for ( int x = X; x < X + W; ++x )
{ {
measure = ts_to_x( (double)(sample_rate * 60) / beats_per_minute( x_to_ts( x ) + xoffset ));
measure = ts_to_x( (double)(sample_rate * 60) / beats_per_minute( x_to_ts( x - Track_Header::width() ) + xoffset ));


const int abs_x = ts_to_x( xoffset ) + x;
const int abs_x = ts_to_x( xoffset ) + x - Track_Header::width();


if ( 0 == abs_x % measure ) if ( 0 == abs_x % measure )
{ {
int bpb = beats_per_bar( x_to_ts( x ) + xoffset );
int bpb = beats_per_bar( x_to_ts( x -Track_Header::width() ) + xoffset );


if ( 0 == (abs_x / measure) % bpb ) if ( 0 == (abs_x / measure) % bpb )
{ {


+ 2
- 2
main.C View File

@@ -66,7 +66,7 @@ void cb_undo ( Fl_Widget *w, void *v )
int int
main ( int argc, char **argv ) main ( int argc, char **argv )
{ {
Fl_Window *main_window = new Fl_Window( 0, 0, 800, 600 );
Fl_Window *main_window = new Fl_Window( 0, 0, 1024, 768 );


Fl::get_system_colors(); Fl::get_system_colors();
Fl::scheme( "plastic" ); Fl::scheme( "plastic" );
@@ -77,7 +77,7 @@ main ( int argc, char **argv )
Loggable::register_create( "Time_Point", &Time_Point::create ); Loggable::register_create( "Time_Point", &Time_Point::create );




timeline = new Timeline( 0, 24, 800, 600 - 24, "Timeline" );
timeline = new Timeline( 0, 24, main_window->w(), main_window->h() - 24, "Timeline" );


// Region *wave = new Region( Clip::from_file( "streambass8.wav" ) ); // Region *wave = new Region( Clip::from_file( "streambass8.wav" ) );




Loading…
Cancel
Save