comparison data/model/PathModel.h @ 1040:a1cd5abcb38b cxx11

Introduce and use a samplerate type
author Chris Cannam
date Wed, 04 Mar 2015 12:01:04 +0000
parents 59e7fe1b1003
children 57633d605547
comparison
equal deleted inserted replaced
1039:b14064bd1f97 1040:a1cd5abcb38b
17 #define _PATH_MODEL_H_ 17 #define _PATH_MODEL_H_
18 18
19 #include "Model.h" 19 #include "Model.h"
20 #include "SparseModel.h" 20 #include "SparseModel.h"
21 #include "base/RealTime.h" 21 #include "base/RealTime.h"
22 #include "base/BaseTypes.h"
22 23
23 #include <QStringList> 24 #include <QStringList>
24 25
25 26
26 struct PathPoint 27 struct PathPoint
27 { 28 {
28 PathPoint(long _frame) : frame(_frame), mapframe(_frame) { } 29 PathPoint(sv_frame_t _frame) : frame(_frame), mapframe(_frame) { }
29 PathPoint(long _frame, long _mapframe) : 30 PathPoint(sv_frame_t _frame, sv_frame_t _mapframe) :
30 frame(_frame), mapframe(_mapframe) { } 31 frame(_frame), mapframe(_mapframe) { }
31 32
32 int getDimensions() const { return 2; } 33 int getDimensions() const { return 2; }
33 34
34 long frame; 35 sv_frame_t frame;
35 long mapframe; 36 sv_frame_t mapframe;
36 37
37 QString getLabel() const { return ""; } 38 QString getLabel() const { return ""; }
38 39
39 void toXml(QTextStream &stream, QString indent = "", 40 void toXml(QTextStream &stream, QString indent = "",
40 QString extraAttributes = "") const { 41 QString extraAttributes = "") const {
41 stream << QString("%1<point frame=\"%2\" mapframe=\"%3\" %4/>\n") 42 stream << QString("%1<point frame=\"%2\" mapframe=\"%3\" %4/>\n")
42 .arg(indent).arg(frame).arg(mapframe).arg(extraAttributes); 43 .arg(indent).arg(frame).arg(mapframe).arg(extraAttributes);
43 } 44 }
44 45
45 QString toDelimitedDataString(QString delimiter, 46 QString toDelimitedDataString(QString delimiter,
46 int sampleRate) const { 47 sv_samplerate_t sampleRate) const {
47 QStringList list; 48 QStringList list;
48 list << RealTime::frame2RealTime(frame, sampleRate).toString().c_str(); 49 list << RealTime::frame2RealTime(frame, sampleRate).toString().c_str();
49 list << QString("%1").arg(mapframe); 50 list << QString("%1").arg(mapframe);
50 return list.join(delimiter); 51 return list.join(delimiter);
51 } 52 }
65 }; 66 };
66 67
67 class PathModel : public SparseModel<PathPoint> 68 class PathModel : public SparseModel<PathPoint>
68 { 69 {
69 public: 70 public:
70 PathModel(int sampleRate, int resolution, bool notify = true) : 71 PathModel(sv_samplerate_t sampleRate, int resolution, bool notify = true) :
71 SparseModel<PathPoint>(sampleRate, resolution, notify) { } 72 SparseModel<PathPoint>(sampleRate, resolution, notify) { }
72 73
73 virtual void toXml(QTextStream &out, 74 virtual void toXml(QTextStream &out,
74 QString indent = "", 75 QString indent = "",
75 QString extraAttributes = "") const 76 QString extraAttributes = "") const