WIP
This commit is contained in:
parent
3b40b8a093
commit
55b2907aec
|
@ -46,7 +46,7 @@ Peaks::peakbuffer Peaks::_peakbuf;
|
|||
/** Prepare a buffer of peaks from /s/ to /e/ for reading. Must be
|
||||
* called before any calls to operator[] */
|
||||
int
|
||||
Peaks::fill_buffer ( float fpp, int s, int e ) const
|
||||
Peaks::fill_buffer ( float fpp, nframes_t s, nframes_t e ) const
|
||||
{
|
||||
_fpp = fpp;
|
||||
|
||||
|
@ -208,7 +208,7 @@ Peaks::read_source_peaks ( Peak *peaks, nframes_t s, int npeaks, int chunksize )
|
|||
}
|
||||
|
||||
int
|
||||
Peaks::read_peaks ( int s, int e, int npeaks, int chunksize ) const
|
||||
Peaks::read_peaks ( nframes_t s, nframes_t e, int npeaks, int chunksize ) const
|
||||
{
|
||||
printf( "reading peaks %d @ %d\n", npeaks, chunksize );
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ class Peaks
|
|||
|
||||
mutable float _fpp;
|
||||
|
||||
int read_peaks ( int s, int e, int npeaks, int chunksize ) const;
|
||||
int read_peaks ( nframes_t s, nframes_t e, int npeaks, int chunksize ) const;
|
||||
int read_source_peaks ( Peak *peaks, nframes_t s, int npeaks, int chunksize ) const;
|
||||
int read_source_peaks ( Peak *peaks, int npeaks, int chunksize ) const;
|
||||
int read_peakfile_peaks ( Peak *peaks, nframes_t s, int npeaks, int chunksize ) const;
|
||||
|
@ -89,7 +89,7 @@ public:
|
|||
Peak *peakbuf ( void ) const { return Peaks::_peakbuf.buf->data; }
|
||||
void clip ( Audio_File *c ) { _clip = c; }
|
||||
|
||||
int fill_buffer ( float fpp, int s, int e ) const;
|
||||
int fill_buffer ( float fpp, nframes_t s, nframes_t e ) const;
|
||||
|
||||
void downsample ( Peak *peaks, int s, int e, float *mhi, float *mlo ) const;
|
||||
void read ( int X, float *hi, float *lo ) const;
|
||||
|
|
|
@ -569,6 +569,12 @@ Region::draw ( int X, int Y, int W, int H )
|
|||
if ( ! shown() )
|
||||
return;
|
||||
|
||||
/* intersect clip with region */
|
||||
/* FIXME: wouldn't it be better to get rid of the useless X Y W H arguments and
|
||||
just intersect with the real clipping region? */
|
||||
|
||||
fl_clip_box( x(), y(), w(), h(), X, Y, W, H );
|
||||
|
||||
if ( ! ( W > 0 && H > 0 ) )
|
||||
/* WTF? */
|
||||
return;
|
||||
|
@ -596,7 +602,7 @@ Region::draw ( int X, int Y, int W, int H )
|
|||
{
|
||||
offset = timeline->x_to_ts( OX - ox );
|
||||
|
||||
rw = timeline->ts_to_x( (_r->end - _r->start) - offset );
|
||||
rw -= OX - ox;
|
||||
}
|
||||
|
||||
rw = min( rw, _track->w() );
|
||||
|
@ -614,13 +620,14 @@ Region::draw ( int X, int Y, int W, int H )
|
|||
// const nframes_t start = _r->start + offset + timeline->x_to_ts( X - rx );
|
||||
nframes_t start = _r->start + offset;
|
||||
|
||||
/* if ( X - rx > 0 ) */
|
||||
/* start += timeline->x_to_ts( X - rx ); */
|
||||
/* compensate for ??? */
|
||||
if ( X - rx > 0 )
|
||||
start += timeline->x_to_ts( X - rx );
|
||||
|
||||
printf( "offset=%lu start=%lu\n", offset, start, X, rx );
|
||||
if ( _clip->read_peaks( timeline->fpp(),
|
||||
start,
|
||||
start + timeline->x_to_ts( W ),
|
||||
start + timeline->x_to_ts( min( rw, W ) ),
|
||||
&peaks, &pbuf, &channels ) )
|
||||
{
|
||||
|
||||
|
@ -653,7 +660,13 @@ Region::draw ( int X, int Y, int W, int H )
|
|||
/* pb[ j ].max *= g; */
|
||||
/* } */
|
||||
|
||||
Waveform::draw( max( X, rx ), (y() + Fl::box_dy( box() )) + (i * ch), min( W, rw ), ch,
|
||||
const int nx = max( X, rx );
|
||||
const int nw = min( nx + W, nx + rw ) - nx;
|
||||
|
||||
Waveform::draw( nx,
|
||||
(y() + Fl::box_dy( box() )) + (i * ch),
|
||||
nw,
|
||||
ch,
|
||||
pb, peaks,
|
||||
selected() ? fl_invert_color( _color ) : _color );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue