Mercurial > hg > svcore
diff data/model/DenseTimeValueModel.cpp @ 841:226733f3cf3f tonioni
Merge from default branch
author | Chris Cannam |
---|---|
date | Fri, 22 Nov 2013 10:37:28 +0000 |
parents | 33fca917c800 |
children | e802e550a1f2 |
line wrap: on
line diff
--- a/data/model/DenseTimeValueModel.cpp Wed Jul 17 16:01:28 2013 +0100 +++ b/data/model/DenseTimeValueModel.cpp Fri Nov 22 10:37:28 2013 +0000 @@ -16,6 +16,8 @@ #include "DenseTimeValueModel.h" #include "base/PlayParameterRepository.h" +#include <QStringList> + DenseTimeValueModel::DenseTimeValueModel() { PlayParameterRepository::getInstance()->addPlayable(this); @@ -26,3 +28,36 @@ PlayParameterRepository::getInstance()->removePlayable(this); } +QString +DenseTimeValueModel::toDelimitedDataString(QString delimiter, size_t f0, size_t f1) const +{ + size_t ch = getChannelCount(); + + std::cerr << "f0 = " << f0 << ", f1 = " << f1 << std::endl; + + if (f1 <= f0) return ""; + + float **all = new float *[ch]; + for (size_t c = 0; c < ch; ++c) { + all[c] = new float[f1 - f0]; + } + + size_t n = getData(0, ch - 1, f0, f1 - f0, all); + + QStringList list; + for (size_t i = 0; i < n; ++i) { + QStringList parts; + parts << QString("%1").arg(f0 + i); + for (size_t c = 0; c < ch; ++c) { + parts << QString("%1").arg(all[c][i]); + } + list << parts.join(delimiter); + } + + for (size_t c = 0; c < ch; ++c) { + delete[] all[c]; + } + delete[] all; + + return list.join("\n"); +}