Mercurial > hg > svcore
diff data/model/NoteModel.h @ 340:516819f2b97b
* Add Erase tool and mode
* Add icons for Normalize buttons in property boxes, and for Show Peaks
* Add support for velocity in notes -- not yet reflected in display or
editable in the note edit dialog, but they are imported from MIDI,
played, and exported
* Begin work on making pastes align pasted times (subtler than I thought)
author | Chris Cannam |
---|---|
date | Fri, 23 Nov 2007 16:48:23 +0000 |
parents | f14e2f7b24f7 |
children | 700cd3350391 |
line wrap: on
line diff
--- a/data/model/NoteModel.h Thu Nov 22 14:17:19 2007 +0000 +++ b/data/model/NoteModel.h Fri Nov 23 16:48:23 2007 +0000 @@ -32,15 +32,16 @@ struct Note { public: - Note(long _frame) : frame(_frame), value(0.0f), duration(0) { } - Note(long _frame, float _value, size_t _duration, QString _label) : - frame(_frame), value(_value), duration(_duration), label(_label) { } + Note(long _frame) : frame(_frame), value(0.0f), duration(0), level(1.f) { } + Note(long _frame, float _value, size_t _duration, float _level, QString _label) : + frame(_frame), value(_value), duration(_duration), level(_level), label(_label) { } int getDimensions() const { return 3; } long frame; float value; size_t duration; + float level; QString label; QString getLabel() const { return label; } @@ -50,8 +51,8 @@ QString extraAttributes = "") const { stream << - QString("%1<point frame=\"%2\" value=\"%3\" duration=\"%4\" label=\"%5\" %6/>\n") - .arg(indent).arg(frame).arg(value).arg(duration).arg(label).arg(extraAttributes); + QString("%1<point frame=\"%2\" value=\"%3\" duration=\"%4\" level=\"%5\" label=\"%6\" %7/>\n") + .arg(indent).arg(frame).arg(value).arg(duration).arg(level).arg(label).arg(extraAttributes); } QString toDelimitedDataString(QString delimiter, size_t sampleRate) const @@ -59,7 +60,8 @@ QStringList list; list << RealTime::frame2RealTime(frame, sampleRate).toString().c_str(); list << QString("%1").arg(value); - list << QString("%1").arg(duration); + list << RealTime::frame2RealTime(duration, sampleRate).toString().c_str(); + list << QString("%1").arg(level); if (label != "") list << label; return list.join(delimiter); } @@ -70,6 +72,7 @@ if (p1.frame != p2.frame) return p1.frame < p2.frame; if (p1.value != p2.value) return p1.value < p2.value; if (p1.duration != p2.duration) return p1.duration < p2.duration; + if (p1.level != p2.level) return p1.level < p2.level; return p1.label < p2.label; } };