Mercurial > hg > svcore
comparison data/model/NoteModel.h @ 1040:a1cd5abcb38b cxx11
Introduce and use a samplerate type
| author | Chris Cannam | 
|---|---|
| date | Wed, 04 Mar 2015 12:01:04 +0000 | 
| parents | cc27f35aa75c | 
| children | 57633d605547 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1039:b14064bd1f97 | 1040:a1cd5abcb38b | 
|---|---|
| 60 QString("%1<point frame=\"%2\" value=\"%3\" duration=\"%4\" level=\"%5\" label=\"%6\" %7/>\n") | 60 QString("%1<point frame=\"%2\" value=\"%3\" duration=\"%4\" level=\"%5\" label=\"%6\" %7/>\n") | 
| 61 .arg(indent).arg(frame).arg(value).arg(duration).arg(level) | 61 .arg(indent).arg(frame).arg(value).arg(duration).arg(level) | 
| 62 .arg(XmlExportable::encodeEntities(label)).arg(extraAttributes); | 62 .arg(XmlExportable::encodeEntities(label)).arg(extraAttributes); | 
| 63 } | 63 } | 
| 64 | 64 | 
| 65 QString toDelimitedDataString(QString delimiter, int sampleRate) const | 65 QString toDelimitedDataString(QString delimiter, sv_samplerate_t sampleRate) const | 
| 66 { | 66 { | 
| 67 QStringList list; | 67 QStringList list; | 
| 68 list << RealTime::frame2RealTime(frame, sampleRate).toString().c_str(); | 68 list << RealTime::frame2RealTime(frame, sampleRate).toString().c_str(); | 
| 69 list << QString("%1").arg(value); | 69 list << QString("%1").arg(value); | 
| 70 list << RealTime::frame2RealTime(duration, sampleRate).toString().c_str(); | 70 list << RealTime::frame2RealTime(duration, sampleRate).toString().c_str(); | 
| 96 class NoteModel : public IntervalModel<Note>, public NoteExportable | 96 class NoteModel : public IntervalModel<Note>, public NoteExportable | 
| 97 { | 97 { | 
| 98 Q_OBJECT | 98 Q_OBJECT | 
| 99 | 99 | 
| 100 public: | 100 public: | 
| 101 NoteModel(int sampleRate, int resolution, | 101 NoteModel(sv_samplerate_t sampleRate, int resolution, | 
| 102 bool notifyOnAdd = true) : | 102 bool notifyOnAdd = true) : | 
| 103 IntervalModel<Note>(sampleRate, resolution, notifyOnAdd), | 103 IntervalModel<Note>(sampleRate, resolution, notifyOnAdd), | 
| 104 m_valueQuantization(0) | 104 m_valueQuantization(0) | 
| 105 { | 105 { | 
| 106 PlayParameterRepository::getInstance()->addPlayable(this); | 106 PlayParameterRepository::getInstance()->addPlayable(this); | 
| 107 } | 107 } | 
| 108 | 108 | 
| 109 NoteModel(int sampleRate, int resolution, | 109 NoteModel(sv_samplerate_t sampleRate, int resolution, | 
| 110 float valueMinimum, float valueMaximum, | 110 float valueMinimum, float valueMaximum, | 
| 111 bool notifyOnAdd = true) : | 111 bool notifyOnAdd = true) : | 
| 112 IntervalModel<Note>(sampleRate, resolution, | 112 IntervalModel<Note>(sampleRate, resolution, | 
| 113 valueMinimum, valueMaximum, | 113 valueMinimum, valueMaximum, | 
| 114 notifyOnAdd), | 114 notifyOnAdd), | 
| 232 for (PointList::iterator pli = | 232 for (PointList::iterator pli = | 
| 233 points.begin(); pli != points.end(); ++pli) { | 233 points.begin(); pli != points.end(); ++pli) { | 
| 234 | 234 | 
| 235 sv_frame_t duration = pli->duration; | 235 sv_frame_t duration = pli->duration; | 
| 236 if (duration == 0 || duration == 1) { | 236 if (duration == 0 || duration == 1) { | 
| 237 duration = getSampleRate() / 20; | 237 duration = sv_frame_t(getSampleRate() / 20); | 
| 238 } | 238 } | 
| 239 | 239 | 
| 240 int pitch = int(lrintf(pli->value)); | 240 int pitch = int(lrintf(pli->value)); | 
| 241 | 241 | 
| 242 int velocity = 100; | 242 int velocity = 100; | 
