annotate layer/TimeRulerLayer.h @ 25:dcdb21b62dbb
* Refactor sparse models. Previously the 1D and time-value models duplicated
a lot of code; now there is a base class (SparseModel) templated on the
stored point type, and the subclasses define point types with the necessary
characteristics.
* Add NoteModel, a new SparseModel subclass.
* Reorganise local feature description display. Instead of asking the layer
to draw its own, just query it for a textual description and draw that in
Pane. Greatly simplifies this part of the layer code.
* Add local feature descriptions to colour 3D plot and waveform layers.
* Add pitch in MIDI-pitch-and-cents to spectrogram layer.
* Give AudioGenerator its own mutex to shorten lock times in CallbackPlaySource.
* Minor adjustments to layers menu &c
author |
Chris Cannam |
date |
Thu, 02 Feb 2006 16:10:19 +0000 |
parents |
0183ebb725ca |
children |
ad214997dddb |
rev |
line source |
Chris@0
|
1 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 A waveform viewer and audio annotation editor.
|
Chris@5
|
5 Chris Cannam, Queen Mary University of London, 2005-2006
|
Chris@0
|
6
|
Chris@0
|
7 This is experimental software. Not for distribution.
|
Chris@0
|
8 */
|
Chris@0
|
9
|
Chris@0
|
10 #ifndef _TIME_RULER_H_
|
Chris@0
|
11 #define _TIME_RULER_H_
|
Chris@0
|
12
|
Chris@0
|
13 #include "base/Layer.h"
|
Chris@0
|
14
|
Chris@0
|
15 #include <QRect>
|
Chris@0
|
16 #include <QColor>
|
Chris@0
|
17
|
Chris@0
|
18 class View;
|
Chris@0
|
19 class Model;
|
Chris@0
|
20 class QPainter;
|
Chris@0
|
21
|
Chris@0
|
22 class TimeRulerLayer : public Layer
|
Chris@0
|
23 {
|
Chris@0
|
24 Q_OBJECT
|
Chris@0
|
25
|
Chris@0
|
26 public:
|
Chris@0
|
27 TimeRulerLayer(View *w);
|
Chris@0
|
28
|
Chris@0
|
29 virtual void paint(QPainter &paint, QRect rect) const;
|
Chris@0
|
30
|
Chris@0
|
31 void setModel(Model *);
|
Chris@0
|
32 virtual const Model *getModel() const { return m_model; }
|
Chris@0
|
33
|
Chris@0
|
34 void setBaseColour(QColor);
|
Chris@0
|
35 QColor getBaseColour() const { return m_colour; }
|
Chris@0
|
36
|
Chris@0
|
37 enum LabelHeight { LabelTop, LabelMiddle, LabelBottom };
|
Chris@0
|
38 void setLabelHeight(LabelHeight h) { m_labelHeight = h; }
|
Chris@0
|
39 LabelHeight getLabelHeight() const { return m_labelHeight; }
|
Chris@0
|
40
|
Chris@0
|
41 virtual PropertyList getProperties() const;
|
Chris@0
|
42 virtual PropertyType getPropertyType(const PropertyName &) const;
|
Chris@0
|
43 virtual int getPropertyRangeAndValue(const PropertyName &,
|
Chris@0
|
44 int *min, int *max) const;
|
Chris@0
|
45 virtual QString getPropertyValueLabel(const PropertyName &,
|
Chris@0
|
46 int value) const;
|
Chris@0
|
47 virtual void setProperty(const PropertyName &, int value);
|
Chris@0
|
48
|
Chris@6
|
49 virtual QString toXmlString(QString indent = "",
|
Chris@6
|
50 QString extraAttributes = "") const;
|
Chris@6
|
51
|
Chris@11
|
52 void setProperties(const QXmlAttributes &attributes);
|
Chris@11
|
53
|
Chris@0
|
54 protected:
|
Chris@0
|
55 Model *m_model;
|
Chris@0
|
56 QColor m_colour;
|
Chris@0
|
57 LabelHeight m_labelHeight;
|
Chris@0
|
58 };
|
Chris@0
|
59
|
Chris@0
|
60 #endif
|