Cleanup peak code to use Clip for reading.
This commit is contained in:
parent
1684805c63
commit
f27a222e47
26
Peaks.C
26
Peaks.C
|
@ -79,9 +79,8 @@ Peaks::downsample ( int s, int e, float *mhi, float *mlo ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static
|
|
||||||
int
|
int
|
||||||
sf_read_peaks ( SNDFILE *in, Peak *peaks, int npeaks, int chunksize )
|
Peaks::clip_read_peaks ( Peak *peaks, int npeaks, int chunksize ) const
|
||||||
{
|
{
|
||||||
float *fbuf = new float[ chunksize ];
|
float *fbuf = new float[ chunksize ];
|
||||||
|
|
||||||
|
@ -91,7 +90,7 @@ sf_read_peaks ( SNDFILE *in, Peak *peaks, int npeaks, int chunksize )
|
||||||
for ( i = 0; i < npeaks; ++i )
|
for ( i = 0; i < npeaks; ++i )
|
||||||
{
|
{
|
||||||
/* read in a buffer */
|
/* read in a buffer */
|
||||||
len = sf_read_float( in, fbuf, chunksize );
|
len = _clip->read( fbuf, chunksize );
|
||||||
|
|
||||||
Peak &p = peaks[ i ];
|
Peak &p = peaks[ i ];
|
||||||
p.min = 0;
|
p.min = 0;
|
||||||
|
@ -126,22 +125,14 @@ Peaks::read_peaks ( int s, int e, int npeaks, int chunksize ) const
|
||||||
peakbuf.buf = (peakdata*)realloc( peakbuf.buf, sizeof( peakdata ) + (peakbuf.size * sizeof( Peak )) );
|
peakbuf.buf = (peakdata*)realloc( peakbuf.buf, sizeof( peakdata ) + (peakbuf.size * sizeof( Peak )) );
|
||||||
}
|
}
|
||||||
|
|
||||||
memset( peakbuf.buf->data, 0, peakbuf.size * sizeof( Peak ) );
|
_clip->open();
|
||||||
|
_clip->seek( s );
|
||||||
SNDFILE *in;
|
|
||||||
SF_INFO si;
|
|
||||||
|
|
||||||
memset( &si, 0, sizeof( si ) );
|
|
||||||
|
|
||||||
in = sf_open( _clip->name(), SFM_READ, &si );
|
|
||||||
|
|
||||||
sf_seek( in, s, SEEK_SET );
|
|
||||||
|
|
||||||
peakbuf.offset = s;
|
peakbuf.offset = s;
|
||||||
peakbuf.buf->chunksize = chunksize;
|
peakbuf.buf->chunksize = chunksize;
|
||||||
peakbuf.len = sf_read_peaks( in, peakbuf.buf->data, npeaks, chunksize );
|
peakbuf.len = clip_read_peaks( peakbuf.buf->data, npeaks, chunksize );
|
||||||
|
|
||||||
sf_close( in );
|
_clip->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,11 +254,6 @@ Peaks::make_peaks ( const char *filename, int chunksize )
|
||||||
|
|
||||||
in = sf_open( filename, SFM_READ, &si );
|
in = sf_open( filename, SFM_READ, &si );
|
||||||
|
|
||||||
if ( si.channels != 1 )
|
|
||||||
abort();
|
|
||||||
if ( si.samplerate != timeline.sample_rate )
|
|
||||||
abort();
|
|
||||||
|
|
||||||
FILE *fp = fopen( peakname( filename ), "w" );
|
FILE *fp = fopen( peakname( filename ), "w" );
|
||||||
|
|
||||||
if ( fp == NULL )
|
if ( fp == NULL )
|
||||||
|
|
3
Peaks.H
3
Peaks.H
|
@ -63,6 +63,7 @@ class Peaks
|
||||||
size_t _len;
|
size_t _len;
|
||||||
|
|
||||||
void read_peaks ( int s, int e, int npeaks, int chunksize ) const;
|
void read_peaks ( int s, int e, int npeaks, int chunksize ) const;
|
||||||
|
int clip_read_peaks ( Peak *peaks, int npeaks, int chunksize ) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -71,9 +72,7 @@ public:
|
||||||
_peaks = new peakdata;
|
_peaks = new peakdata;
|
||||||
|
|
||||||
_peaks->chunksize = 0;
|
_peaks->chunksize = 0;
|
||||||
// _peaks->data = NULL;
|
|
||||||
_len = 0;
|
_len = 0;
|
||||||
|
|
||||||
_clip = c;
|
_clip = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue