Browse Source

Don't fake sample rate.

tags/non-daw-v1.1.0
Jonathan Moore Liles 17 years ago
parent
commit
ad756bc1b2
4 changed files with 17 additions and 9 deletions
  1. +2
    -0
      Timeline/Engine.C
  2. +3
    -0
      Timeline/Engine.H
  3. +8
    -6
      Timeline/Timeline.C
  4. +4
    -3
      Timeline/Timeline.H

+ 2
- 0
Timeline/Engine.C View File

@@ -148,6 +148,8 @@ Engine::init ( void )


jack_activate( _client ); jack_activate( _client );


_sample_rate = frame_rate();

/* we don't need to create any ports until tracks are created */ /* we don't need to create any ports until tracks are created */
return 1; return 1;
} }

+ 3
- 0
Timeline/Engine.H View File

@@ -53,6 +53,8 @@ private:
friend class Transport; friend class Transport;
jack_client_t * client ( void ) { return _client; } jack_client_t * client ( void ) { return _client; }


nframes_t _sample_rate;

public: public:


Engine ( ); Engine ( );
@@ -63,6 +65,7 @@ public:


nframes_t nframes ( void ) const { return jack_get_buffer_size( _client ); } nframes_t nframes ( void ) const { return jack_get_buffer_size( _client ); }
float frame_rate ( void ) const { return jack_get_sample_rate( _client ); } float frame_rate ( void ) const { return jack_get_sample_rate( _client ); }
nframes_t sample_rate ( void ) const { return _sample_rate; }


float cpu_load ( void ) const { return jack_cpu_load( _client ); } float cpu_load ( void ) const { return jack_cpu_load( _client ); }
}; };


+ 8
- 6
Timeline/Timeline.C View File

@@ -154,9 +154,11 @@ Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : Fl_Overlay_Wi




{ {
_sample_rate = 44100;
// sample_rate() = engine->sample_rate();
_fpp = 256; _fpp = 256;
_length = _sample_rate * 60 * 2;
// _length = sample_rate() * 60 * 2;
/* FIXME: hack */
_length = -1;


{ {
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 );
@@ -246,7 +248,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 - Track::width() ) + xoffset ));
const int measure = ts_to_x( (double)(sample_rate() * 60) / beats_per_minute( x_to_ts( x - Track::width() ) + xoffset ));


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


@@ -292,7 +294,7 @@ Timeline::draw_measure ( int X, int Y, int W, int H, Fl_Color color, bool BBT )
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 - Track::width() ) + xoffset ) );
measure = ts_to_x( (double)(sample_rate() * 60) / beats_per_minute( x_to_ts( x - Track::width() ) + xoffset ) );


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


@@ -318,7 +320,7 @@ Timeline::draw_measure ( int X, int Y, int W, int H, Fl_Color color, bool BBT )
// if ( draw_hms ) // if ( draw_hms )
{ {


const double seconds = (double)ts / _sample_rate;
const double seconds = (double)ts / sample_rate();


int S = (int)seconds; int S = (int)seconds;
int M = S / 60; S -= M * 60; int M = S / 60; S -= M * 60;
@@ -901,7 +903,7 @@ Timeline::zoom ( float secs )
const int sw = w() - vscroll->w() - Track::width(); const int sw = w() - vscroll->w() - Track::width();


/* FIXME: we actually need to set this in the scalebar */ /* FIXME: we actually need to set this in the scalebar */
_fpp = (int)((secs * _sample_rate) / sw);
_fpp = (int)((secs * sample_rate()) / sw);


redraw(); redraw();
} }


+ 4
- 3
Timeline/Timeline.H View File

@@ -73,7 +73,9 @@ struct Rectangle
}; };




class Engine;
#include "Engine.H" // for sample_rate()

// class Engine;


#include "RWLock.H" #include "RWLock.H"


@@ -97,7 +99,6 @@ class Timeline : public Fl_Overlay_Window, public RWLock
void cb_scroll ( Fl_Widget *w ); void cb_scroll ( Fl_Widget *w );


float _fpp; /* frames per pixel */ float _fpp; /* frames per pixel */
nframes_t _sample_rate;
nframes_t _length; nframes_t _length;




@@ -128,7 +129,7 @@ public:


float fpp ( void ) const { return _fpp; } float fpp ( void ) const { return _fpp; }
nframes_t length ( void ) const { return _length; } nframes_t length ( void ) const { return _length; }
nframes_t sample_rate ( void ) const { return _sample_rate; }
nframes_t sample_rate ( void ) const { return engine->sample_rate(); }
int ts_to_x( nframes_t ts ) const { return ts / _fpp; } int ts_to_x( nframes_t ts ) const { return ts / _fpp; }
nframes_t x_to_ts ( int x ) const { return x * _fpp; } nframes_t x_to_ts ( int x ) const { return x * _fpp; }




Loading…
Cancel
Save