comparison data/model/EditableDenseThreeDimensionalModel.cpp @ 1038:cc27f35aa75c cxx11

Introducing the signed 64-bit frame index type, and fixing build failures from inclusion of -Wconversion with -Werror. Not finished yet.
author Chris Cannam
date Tue, 03 Mar 2015 15:18:24 +0000
parents 0009b2b066e0
children a1cd5abcb38b
comparison
equal deleted inserted replaced
1037:bf0e5944289b 1038:cc27f35aa75c
59 EditableDenseThreeDimensionalModel::getSampleRate() const 59 EditableDenseThreeDimensionalModel::getSampleRate() const
60 { 60 {
61 return m_sampleRate; 61 return m_sampleRate;
62 } 62 }
63 63
64 int 64 sv_frame_t
65 EditableDenseThreeDimensionalModel::getStartFrame() const 65 EditableDenseThreeDimensionalModel::getStartFrame() const
66 { 66 {
67 return m_startFrame; 67 return m_startFrame;
68 } 68 }
69 69
70 void 70 void
71 EditableDenseThreeDimensionalModel::setStartFrame(int f) 71 EditableDenseThreeDimensionalModel::setStartFrame(sv_frame_t f)
72 { 72 {
73 m_startFrame = f; 73 m_startFrame = f;
74 } 74 }
75 75
76 int 76 sv_frame_t
77 EditableDenseThreeDimensionalModel::getEndFrame() const 77 EditableDenseThreeDimensionalModel::getEndFrame() const
78 { 78 {
79 return m_resolution * m_data.size() + (m_resolution - 1); 79 return m_resolution * m_data.size() + (m_resolution - 1);
80 } 80 }
81 81
253 // stored += h - bcount; 253 // stored += h - bcount;
254 for (int i = bcount; i < h; ++i) { 254 for (int i = bcount; i < h; ++i) {
255 tcol[i - bcount] = values.at(i); 255 tcol[i - bcount] = values.at(i);
256 } 256 }
257 m_data[index] = tcol; 257 m_data[index] = tcol;
258 m_trunc[index] = -tdist; 258 m_trunc[index] = (signed char)(-tdist);
259 return; 259 return;
260 } else { 260 } else {
261 // create a new column with h - tcount values from 0 up 261 // create a new column with h - tcount values from 0 up
262 Column tcol(h - tcount); 262 Column tcol(h - tcount);
263 // given += values.size(); 263 // given += values.size();
264 // stored += h - tcount; 264 // stored += h - tcount;
265 for (int i = 0; i < h - tcount; ++i) { 265 for (int i = 0; i < h - tcount; ++i) {
266 tcol[i] = values.at(i); 266 tcol[i] = values.at(i);
267 } 267 }
268 m_data[index] = tcol; 268 m_data[index] = tcol;
269 m_trunc[index] = tdist; 269 m_trunc[index] = (signed char)(tdist);
270 return; 270 return;
271 } 271 }
272 } 272 }
273 } 273 }
274 274
463 } 463 }
464 } 464 }
465 465
466 if (sample.empty()) return false; 466 if (sample.empty()) return false;
467 for (int j = 0; j < sample.size(); ++j) { 467 for (int j = 0; j < sample.size(); ++j) {
468 if (n[j]) sample[j] /= n[j]; 468 if (n[j]) sample[j] /= float(n[j]);
469 } 469 }
470 470
471 return LogRange::useLogScale(sample.toStdVector()); 471 return LogRange::useLogScale(sample.toStdVector());
472 } 472 }
473 473
513 } 513 }
514 return s; 514 return s;
515 } 515 }
516 516
517 QString 517 QString
518 EditableDenseThreeDimensionalModel::toDelimitedDataStringSubset(QString delimiter, int f0, int f1) const 518 EditableDenseThreeDimensionalModel::toDelimitedDataStringSubset(QString delimiter, sv_frame_t f0, sv_frame_t f1) const
519 { 519 {
520 QReadLocker locker(&m_lock); 520 QReadLocker locker(&m_lock);
521 QString s; 521 QString s;
522 for (int i = 0; i < m_data.size(); ++i) { 522 for (int i = 0; i < m_data.size(); ++i) {
523 int fr = m_startFrame + i * m_resolution; 523 sv_frame_t fr = m_startFrame + i * m_resolution;
524 if (fr >= int(f0) && fr < int(f1)) { 524 if (fr >= f0 && fr < f1) {
525 QStringList list; 525 QStringList list;
526 for (int j = 0; j < m_data.at(i).size(); ++j) { 526 for (int j = 0; j < m_data.at(i).size(); ++j) {
527 list << QString("%1").arg(m_data.at(i).at(j)); 527 list << QString("%1").arg(m_data.at(i).at(j));
528 } 528 }
529 s += list.join(delimiter) + "\n"; 529 s += list.join(delimiter) + "\n";