Mercurial > hg > svgui
comparison layer/FlexiNoteLayer.h @ 1426:e1a08da75427 single-point
Update following FlexiNoteModel removal, using new NoteModel API where flexi was previously used
| author | Chris Cannam | 
|---|---|
| date | Thu, 14 Mar 2019 15:32:58 +0000 | 
| parents | 05d614f6e46d | 
| children | f792a5001d80 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1425:f9e3126d223c | 1426:e1a08da75427 | 
|---|---|
| 14 */ | 14 */ | 
| 15 | 15 | 
| 16 #ifndef SV_FLEXINOTE_LAYER_H | 16 #ifndef SV_FLEXINOTE_LAYER_H | 
| 17 #define SV_FLEXINOTE_LAYER_H | 17 #define SV_FLEXINOTE_LAYER_H | 
| 18 | 18 | 
| 19 #define NOTE_HEIGHT 16 | |
| 20 | |
| 21 #include "SingleColourLayer.h" | 19 #include "SingleColourLayer.h" | 
| 22 #include "VerticalScaleLayer.h" | 20 #include "VerticalScaleLayer.h" | 
| 23 | 21 | 
| 24 #include "data/model/FlexiNoteModel.h" | 22 #include "data/model/NoteModel.h" | 
| 25 | 23 | 
| 26 #include <QObject> | 24 #include <QObject> | 
| 27 #include <QColor> | 25 #include <QColor> | 
| 28 | 26 | 
| 29 class View; | 27 class View; | 
| 82 void splitNotesAt(LayerGeometryProvider *v, sv_frame_t frame); | 80 void splitNotesAt(LayerGeometryProvider *v, sv_frame_t frame); | 
| 83 void snapSelectedNotesToPitchTrack(LayerGeometryProvider *v, Selection s); | 81 void snapSelectedNotesToPitchTrack(LayerGeometryProvider *v, Selection s); | 
| 84 void mergeNotes(LayerGeometryProvider *v, Selection s, bool inclusive); | 82 void mergeNotes(LayerGeometryProvider *v, Selection s, bool inclusive); | 
| 85 | 83 | 
| 86 const Model *getModel() const override { return m_model; } | 84 const Model *getModel() const override { return m_model; } | 
| 87 void setModel(FlexiNoteModel *model); | 85 void setModel(NoteModel *model); | 
| 88 | 86 | 
| 89 PropertyList getProperties() const override; | 87 PropertyList getProperties() const override; | 
| 90 QString getPropertyLabel(const PropertyName &) const override; | 88 QString getPropertyLabel(const PropertyName &) const override; | 
| 91 PropertyType getPropertyType(const PropertyName &) const override; | 89 PropertyType getPropertyType(const PropertyName &) const override; | 
| 92 QString getPropertyGroupName(const PropertyName &) const override; | 90 QString getPropertyGroupName(const PropertyName &) const override; | 
| 171 void getScaleExtents(LayerGeometryProvider *, double &min, double &max, bool &log) const; | 169 void getScaleExtents(LayerGeometryProvider *, double &min, double &max, bool &log) const; | 
| 172 bool shouldConvertMIDIToHz() const; | 170 bool shouldConvertMIDIToHz() const; | 
| 173 | 171 | 
| 174 int getDefaultColourHint(bool dark, bool &impose) override; | 172 int getDefaultColourHint(bool dark, bool &impose) override; | 
| 175 | 173 | 
| 176 FlexiNoteModel::PointList getLocalPoints(LayerGeometryProvider *v, int) const; | 174 EventVector getLocalPoints(LayerGeometryProvider *v, int) const; | 
| 177 | 175 | 
| 178 bool getPointToDrag(LayerGeometryProvider *v, int x, int y, FlexiNoteModel::Point &) const; | 176 bool getPointToDrag(LayerGeometryProvider *v, int x, int y, Event &) const; | 
| 179 bool getNoteToEdit(LayerGeometryProvider *v, int x, int y, FlexiNoteModel::Point &) const; | 177 bool getNoteToEdit(LayerGeometryProvider *v, int x, int y, Event &) const; | 
| 180 void getRelativeMousePosition(LayerGeometryProvider *v, FlexiNoteModel::Point ¬e, int x, int y, bool &closeToLeft, bool &closeToRight, bool &closeToTop, bool &closeToBottom) const; | 178 void getRelativeMousePosition(LayerGeometryProvider *v, Event ¬e, int x, int y, bool &closeToLeft, bool &closeToRight, bool &closeToTop, bool &closeToBottom) const; | 
| 181 SparseTimeValueModel *getAssociatedPitchModel(LayerGeometryProvider *v) const; | 179 SparseTimeValueModel *getAssociatedPitchModel(LayerGeometryProvider *v) const; | 
| 182 bool updateNoteValueFromPitchCurve(LayerGeometryProvider *v, FlexiNoteModel::Point ¬e) const; | 180 bool updateNoteValueFromPitchCurve(LayerGeometryProvider *v, Event ¬e) const; | 
| 183 void splitNotesAt(LayerGeometryProvider *v, sv_frame_t frame, QMouseEvent *e); | 181 void splitNotesAt(LayerGeometryProvider *v, sv_frame_t frame, QMouseEvent *e); | 
| 184 | 182 | 
| 185 FlexiNoteModel *m_model; | 183 NoteModel *m_model; | 
| 186 bool m_editing; | 184 bool m_editing; | 
| 187 bool m_intelligentActions; | 185 bool m_intelligentActions; | 
| 188 int m_dragPointX; | 186 int m_dragPointX; | 
| 189 int m_dragPointY; | 187 int m_dragPointY; | 
| 190 int m_dragStartX; | 188 int m_dragStartX; | 
| 191 int m_dragStartY; | 189 int m_dragStartY; | 
| 192 FlexiNoteModel::Point m_originalPoint; | 190 Event m_originalPoint; | 
| 193 FlexiNoteModel::Point m_editingPoint; | 191 Event m_editingPoint; | 
| 194 sv_frame_t m_greatestLeftNeighbourFrame; | 192 sv_frame_t m_greatestLeftNeighbourFrame; | 
| 195 sv_frame_t m_smallestRightNeighbourFrame; | 193 sv_frame_t m_smallestRightNeighbourFrame; | 
| 196 FlexiNoteModel::EditCommand *m_editingCommand; | 194 NoteModel::EditCommand *m_editingCommand; | 
| 197 VerticalScale m_verticalScale; | 195 VerticalScale m_verticalScale; | 
| 198 EditMode m_editMode; | 196 EditMode m_editMode; | 
| 199 | 197 | 
| 200 typedef std::set<FlexiNoteModel::Point, FlexiNoteModel::Point::Comparator> FlexiNoteSet; | 198 typedef std::set<Event> NoteSet; | 
| 201 FlexiNoteSet m_pendingNoteOns; | 199 NoteSet m_pendingNoteOns; | 
| 202 | 200 | 
| 203 mutable double m_scaleMinimum; | 201 mutable double m_scaleMinimum; | 
| 204 mutable double m_scaleMaximum; | 202 mutable double m_scaleMaximum; | 
| 205 | 203 | 
| 206 bool shouldAutoAlign() const; | 204 bool shouldAutoAlign() const; | 
| 207 | 205 | 
| 208 void finish(FlexiNoteModel::EditCommand *command) { | 206 void finish(NoteModel::EditCommand *command) { | 
| 209 Command *c = command->finish(); | 207 Command *c = command->finish(); | 
| 210 if (c) CommandHistory::getInstance()->addCommand(c, false); | 208 if (c) CommandHistory::getInstance()->addCommand(c, false); | 
| 211 } | 209 } | 
| 212 }; | 210 }; | 
| 213 | 211 | 
