annotate layer/TimeRulerLayer.h @ 33:651e4e868bcc
* Implement play mute, level and pan controls and a layer visibility control
* Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so
that in many cases it can be done inaudibly. Still gets it wrong when
playing in a noncontiguous selection.
* Fix to SV file save for non-2d sparse models
* Fixes to LED button drawing and AudioDial mouse functionality
* Add progress bar for Ogg file import
* Reshuffle PropertyContainer and its subclasses so it can be a QObject
* Add layer dormancy (invisible layer permitted to free its cache space)
* Optimisations to SpectrogramLayer, removing locks when reading/writing
individual pixels in the cache (should be unnecessary there) -- there's
still an issue here as we need a lock when reading from the model in
case the model is replaced, and we don't currently have one
* Several munlock() calls to make it harder to exhaust real memory if
running in an RT mode with mlockall() active
author |
Chris Cannam |
date |
Fri, 17 Feb 2006 18:04:26 +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
|