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@2
|
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 #include "Layer.h"
|
Chris@0
|
11 #include "View.h"
|
Chris@0
|
12
|
Chris@0
|
13 #include <iostream>
|
Chris@0
|
14
|
Chris@3
|
15 #include "layer/LayerFactory.h" //!!! shouldn't be including this here -- does that suggest we need to move this into layer/ ?
|
Chris@28
|
16 #include "PlayParameterRepository.h"
|
Chris@3
|
17
|
Chris@0
|
18 Layer::Layer(View *w)
|
Chris@0
|
19 {
|
Chris@0
|
20 m_view = w;
|
Chris@0
|
21
|
Chris@0
|
22 // Subclass must call this:
|
Chris@0
|
23 // w->addLayer(this);
|
Chris@0
|
24 }
|
Chris@0
|
25
|
Chris@0
|
26 Layer::~Layer()
|
Chris@0
|
27 {
|
Chris@0
|
28 m_view->removeLayer(this);
|
Chris@0
|
29 }
|
Chris@0
|
30
|
Chris@12
|
31 QString
|
Chris@12
|
32 Layer::getPropertyContainerIconName() const
|
Chris@12
|
33 {
|
Chris@12
|
34 return LayerFactory::instance()->getLayerIconName
|
Chris@12
|
35 (LayerFactory::instance()->getLayerType(this));
|
Chris@12
|
36 }
|
Chris@12
|
37
|
Chris@0
|
38 void
|
Chris@0
|
39 Layer::setObjectName(const QString &name)
|
Chris@0
|
40 {
|
Chris@0
|
41 QObject::setObjectName(name);
|
Chris@0
|
42 emit layerNameChanged();
|
Chris@0
|
43 }
|
Chris@0
|
44
|
Chris@15
|
45 int
|
Chris@15
|
46 Layer::getXForFrame(long frame) const
|
Chris@15
|
47 {
|
Chris@15
|
48 if (m_view) return m_view->getXForFrame(frame);
|
Chris@15
|
49 else return 0;
|
Chris@15
|
50 }
|
Chris@15
|
51
|
Chris@15
|
52 long
|
Chris@15
|
53 Layer::getFrameForX(int x) const
|
Chris@15
|
54 {
|
Chris@15
|
55 if (m_view) return m_view->getFrameForX(x);
|
Chris@15
|
56 else return 0;
|
Chris@15
|
57 }
|
Chris@15
|
58
|
Chris@3
|
59 QString
|
Chris@3
|
60 Layer::toXmlString(QString indent, QString extraAttributes) const
|
Chris@3
|
61 {
|
Chris@3
|
62 QString s;
|
Chris@3
|
63
|
Chris@3
|
64 s += indent;
|
Chris@3
|
65
|
Chris@6
|
66 s += QString("<layer id=\"%2\" type=\"%1\" name=\"%3\" model=\"%4\" %5/>\n")
|
Chris@3
|
67 .arg(LayerFactory::instance()->getLayerTypeName
|
Chris@3
|
68 (LayerFactory::instance()->getLayerType(this)))
|
Chris@4
|
69 .arg(getObjectExportId(this))
|
Chris@3
|
70 .arg(objectName())
|
Chris@4
|
71 .arg(getObjectExportId(getModel()))
|
Chris@3
|
72 .arg(extraAttributes);
|
Chris@3
|
73
|
Chris@3
|
74 return s;
|
Chris@3
|
75 }
|
Chris@0
|
76
|
Chris@28
|
77 PlayParameters *
|
Chris@28
|
78 Layer::getPlayParameters() const
|
Chris@28
|
79 {
|
Chris@28
|
80 const Model *model = getModel();
|
Chris@28
|
81 if (model) {
|
Chris@28
|
82 return PlayParameterRepository::instance()->getPlayParameters(model);
|
Chris@28
|
83 }
|
Chris@28
|
84 return 0;
|
Chris@28
|
85 }
|
Chris@28
|
86
|
Chris@28
|
87
|
Chris@28
|
88
|
Chris@0
|
89 #ifdef INCLUDE_MOCFILES
|
Chris@0
|
90 #include "Layer.moc.cpp"
|
Chris@0
|
91 #endif
|
Chris@0
|
92
|