From c0d481904d7a12065f5a29b631326924dc674c99 Mon Sep 17 00:00:00 2001 From: John Glover Date: Thu, 23 Dec 2010 15:47:03 +0000 Subject: Fixed memset bug in constructor --- sndobj/SinAnal.cpp | 100 +++++++++++++++++------------------------------------ 1 file changed, 32 insertions(+), 68 deletions(-) (limited to 'sndobj') diff --git a/sndobj/SinAnal.cpp b/sndobj/SinAnal.cpp index c4e609f..510d2db 100644 --- a/sndobj/SinAnal.cpp +++ b/sndobj/SinAnal.cpp @@ -23,7 +23,6 @@ #include "SinAnal.h" SinAnal::SinAnal(){ - m_thresh = 0.f; m_startupThresh = 0.f; m_maxtracks = 0; @@ -48,7 +47,6 @@ SinAnal::SinAnal(){ SinAnal::SinAnal(SndObj* input, double threshold, int maxtracks, int minpoints, int maxgap, double sr) :SndObj(input,maxtracks*3,sr){ - m_minpoints = (minpoints > 1 ? minpoints : 1) - 1; m_thresh = threshold; m_startupThresh = 0.f; @@ -66,20 +64,19 @@ SinAnal::SinAnal(SndObj* input, double threshold, int maxtracks, m_lastpk = new unsigned int*[minpoints+2]; m_trkid = new unsigned int*[minpoints+2]; int i; - for(i=0; i 1 ? minpoints : 1) - 1; m_thresh = threshold; m_startupThresh = 0.f; @@ -143,18 +138,17 @@ SinAnal::SinAnal(SndObj* input, int numbins, double threshold, int maxtracks, int i; for(i=0; i 0){ // check for peaks; m_numpeaks will be > 0 - double F = m_bndx[m_prev][j]; for(i=0; i < m_numbins; i++){ @@ -497,7 +469,6 @@ SinAnal::PartialTracking(){ m_diffs[i] = (m_diffs[i] < 0 ? -m_diffs[i] : m_diffs[i]); } - bestix = 0; // best index for(i=0; i < m_numbins; i++) if(m_diffs[i] < m_diffs[bestix]) bestix = i; @@ -506,7 +477,6 @@ SinAnal::PartialTracking(){ double tempf = F - m_binmax[bestix]; tempf = (tempf < 0 ? -tempf : tempf); if(tempf < 1.){ - // if amp jump is too great (check) if(m_adthresh[m_prev][j] < (dbstep = 20*log10(m_magmax[bestix]/m_pkmags[m_prev][j]))){ @@ -529,7 +499,6 @@ SinAnal::PartialTracking(){ double tmp2 = m_adthresh[m_prev][j] - (m_adthresh[m_prev][j] - 1.5f)*0.048770575f; m_adthresh[m_prev][j] = (tmp1 > tmp2 ? tmp1 : tmp2); - } // else } // if difference // if check @@ -573,11 +542,8 @@ SinAnal::PartialTracking(){ if(count < m_maxtracks){ // if we have not exceeded available tracks. // create new tracks for all new peaks - for(j=0; j< m_numbins && count < m_maxtracks; j++){ - if(m_magmax[j] > m_startupThresh){ - m_bndx[m_cur][count] = m_binmax[j]; m_pkmags[m_cur][count] = m_magmax[j]; m_adthresh[m_cur][count] = 400.f; @@ -589,7 +555,6 @@ SinAnal::PartialTracking(){ m_trkid[m_cur][count] = ((m_accum++)%m_vecsize); m_lastpk[m_cur][count] = m_timecount; count++; - } } for(i = count; i < m_maxtracks; i++){ @@ -597,7 +562,6 @@ SinAnal::PartialTracking(){ if(i >= count) m_pkmags[m_cur][i] = m_bndx[m_cur][i] = m_adthresh[m_cur][i] = 0.f; } - } // if count != maxtracks // count is the number of continuing tracks + new tracks @@ -618,8 +582,8 @@ SinAnal::PartialTracking(){ m_trndx[i] = m_trkid[tpoint][i]; m_tracks++; } - } + // end track-selecting // current arrays become previous //int tmp = m_prev; -- cgit v1.2.3