blob: e9d2f12745c5a1a6a5708ec09a9f5de2b0024e08 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: $
//
// (C) Copyright 2010 Andrew Williams and Christopher Cherrett
//=========================================================
#include "event.h"
#include "song.h"
#include "xml.h"
#include "globaldefs.h"
#include "trackview.h"
#include "track.h"
TrackView::TrackView()
{
}
TrackView::~TrackView()
{
}
void TrackView::setDefaultName()/*{{{*/
{
QString base;
switch(_type) {
case Track::MIDI:
case Track::DRUM:
case Track::WAVE:
base = QString("Track View");
break;
case Track::AUDIO_OUTPUT:
base = QString("Out View");
break;
case Track::AUDIO_GROUP:
base = QString("Group View");
break;
case Track::AUDIO_AUX:
base = QString("Aux View");
break;
case Track::AUDIO_INPUT:
base = QString("Input View");
break;
case Track::AUDIO_SOFTSYNTH:
base = QString("Synth View");
break;
};
base += " ";
for (int i = 1; true; ++i) {
QString n;
n.setNum(i);
QString s = base + n;
TrackView* tv = song->findTrackView(s);
if (tv == 0) {
setViewName(s);
break;
}
}
}/*}}}*/
//---------------------------------------------------------
// addTrack
//---------------------------------------------------------
void TrackView::addTrack(Track* t)/*{{{*/
{
Track::TrackType type = (Track::TrackType) t->type();
if(type == _type)
{
_tracks.push_back(t);
}
}/*}}}*/
void TrackView::removeTrack(Track* t)
{
_tracks.erase(t);
//This needs to fire something so the gui gets updated
}
//---------------------------------------------------------
// TrackView::read
//---------------------------------------------------------
void TrackView::read(Xml& xml)/*{{{*/
{
for (;;) {
Xml::Token token = xml.parse();
const QString& tag = xml.s1();
switch (token) {
case Xml::Error:
case Xml::End:
return;
case Xml::TagStart:
if (tag == "vtrack") {
Track* t = song->findTrack(xml.parse1());
if(t != 0)
{
addTrack(t);
}
}
break;
case Xml::Attribut:
if (tag == "name")
_name = xml.parse1();
else if (tag == "comment")
_comment = xml.parse1();
else if (tag == "selected")
_selected = xml.parseInt();
else if(tag == "type")
_type = (Track::TrackType)xml.parseInt();
break;
case Xml::TagEnd:
break;
default:
break;
}
}
}/*}}}*/
|