summaryrefslogtreecommitdiff
path: root/muse2/muse/conf.cpp
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2012-01-06 15:37:19 +0000
committerFlorian Jung <flo@windfisch.org>2012-01-06 15:37:19 +0000
commitbcc4a8edf89457a6e0f15c14970202ca7c05b6e0 (patch)
tree6a2d4dd707475ee9bfc7c9e62307c11c70f4e4f7 /muse2/muse/conf.cpp
parenteec7d9eb4d38a8f7bdbdb9d6301990a8574b3936 (diff)
merged with release_2_0
Diffstat (limited to 'muse2/muse/conf.cpp')
-rw-r--r--muse2/muse/conf.cpp116
1 files changed, 64 insertions, 52 deletions
diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp
index e9ec1396..b1481f60 100644
--- a/muse2/muse/conf.cpp
+++ b/muse2/muse/conf.cpp
@@ -220,7 +220,7 @@ static void readPortChannel(Xml& xml, int midiPort)
// readConfigMidiPort
//---------------------------------------------------------
-static void readConfigMidiPort(Xml& xml, bool skipConfig)
+static void readConfigMidiPort(Xml& xml, bool onlyReadChannelState)
{
int idx = 0;
QString device;
@@ -250,14 +250,14 @@ static void readConfigMidiPort(Xml& xml, bool skipConfig)
switch (token) {
case Xml::TagStart:
- // skipConfig added so it doesn't overwrite midi ports. p4.0.41 Tim.
+ // onlyReadChannelState added so it doesn't overwrite midi ports. p4.0.41 Tim.
// Try to keep the controller information. But, this may need to be moved below.
// Also may want to try to keep sync info, but that's a bit risky, so let's not for now.
if (tag == "channel") {
readPortChannel(xml, idx);
break;
}
- else if (skipConfig){
+ else if (onlyReadChannelState){
xml.skip(tag);
break;
}
@@ -303,7 +303,7 @@ static void readConfigMidiPort(Xml& xml, bool skipConfig)
case Xml::TagEnd:
if (tag == "midiport") {
- if(skipConfig) // p4.0.41
+ if(onlyReadChannelState) // p4.0.41
return;
//if (idx > MIDI_PORTS) {
@@ -495,7 +495,7 @@ static void loadConfigMetronom(Xml& xml)
// readSeqConfiguration
//---------------------------------------------------------
-static void readSeqConfiguration(Xml& xml, bool skipConfig)
+static void readSeqConfiguration(Xml& xml, bool skipMidiPorts)
{
for (;;) {
Xml::Token token = xml.parse();
@@ -507,7 +507,7 @@ static void readSeqConfiguration(Xml& xml, bool skipConfig)
if (tag == "metronom")
loadConfigMetronom(xml);
else if (tag == "midiport")
- readConfigMidiPort(xml, skipConfig);
+ readConfigMidiPort(xml, skipMidiPorts);
else if (tag == "rcStop")
MusEGlobal::rcStopNote = xml.parseInt();
else if (tag == "rcEnable")
@@ -537,8 +537,10 @@ static void readSeqConfiguration(Xml& xml, bool skipConfig)
// readConfiguration
//---------------------------------------------------------
-void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig)
+void readConfiguration(Xml& xml, bool doReadMidiPortConfig, bool doReadGlobalConfig)
{
+ if (doReadGlobalConfig) doReadMidiPortConfig=true;
+
int mixers = 0;
for (;;) {
Xml::Token token = xml.parse();
@@ -557,10 +559,54 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig
midiport configuration and VOLUME.
*/
if (tag == "sequencer") {
- readSeqConfiguration(xml, readOnlySequencer);
+ readSeqConfiguration(xml, !doReadMidiPortConfig);
break;
}
- else if (readOnlySequencer) {
+ else if (tag == "waveTracksVisible")
+ WaveTrack::setVisible((bool)xml.parseInt());
+ else if (tag == "auxTracksVisible")
+ AudioAux::setVisible((bool)xml.parseInt());
+ else if (tag == "groupTracksVisible")
+ AudioGroup::setVisible((bool)xml.parseInt());
+ else if (tag == "midiTracksVisible")
+ MidiTrack::setVisible((bool)xml.parseInt());
+ else if (tag == "inputTracksVisible")
+ AudioInput::setVisible((bool)xml.parseInt());
+ else if (tag == "outputTracksVisible")
+ AudioOutput::setVisible((bool)xml.parseInt());
+ else if (tag == "synthTracksVisible")
+ SynthI::setVisible((bool)xml.parseInt());
+ else if (tag == "bigtimeVisible")
+ MusEGlobal::config.bigTimeVisible = xml.parseInt();
+ else if (tag == "transportVisible")
+ MusEGlobal::config.transportVisible = xml.parseInt();
+ else if (tag == "mixer1Visible")
+ MusEGlobal::config.mixer1Visible = xml.parseInt();
+ else if (tag == "mixer2Visible")
+ MusEGlobal::config.mixer2Visible = xml.parseInt();
+ else if (tag == "markerVisible")
+ // I thought this was obsolete (done by song's toplevel list), but
+ // it's obviously needed. (flo)
+ MusEGlobal::config.markerVisible = xml.parseInt();
+ else if (tag == "arrangerVisible")
+ // same here.
+ MusEGlobal::config.arrangerVisible = xml.parseInt();
+ else if (tag == "geometryTransport")
+ MusEGlobal::config.geometryTransport = readGeometry(xml, tag);
+ else if (tag == "geometryBigTime")
+ MusEGlobal::config.geometryBigTime = readGeometry(xml, tag);
+ else if (tag == "Mixer") {
+ if(mixers == 0)
+ MusEGlobal::config.mixer1.read(xml);
+ else
+ MusEGlobal::config.mixer2.read(xml);
+ ++mixers;
+ }
+ else if (tag == "geometryMain")
+ MusEGlobal::config.geometryMain = readGeometry(xml, tag);
+
+
+ else if (doReadMidiPortConfig==false) {
xml.skip(tag);
break;
}
@@ -585,30 +631,6 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig
MusEGlobal::midiFilterCtrl3 = xml.parseInt();
else if (tag == "midiFilterCtrl4")
MusEGlobal::midiFilterCtrl4 = xml.parseInt();
- else if (tag == "waveTracksVisible")
- WaveTrack::setVisible((bool)xml.parseInt());
- else if (tag == "auxTracksVisible")
- AudioAux::setVisible((bool)xml.parseInt());
- else if (tag == "groupTracksVisible")
- AudioGroup::setVisible((bool)xml.parseInt());
- else if (tag == "midiTracksVisible")
- MidiTrack::setVisible((bool)xml.parseInt());
- else if (tag == "inputTracksVisible")
- AudioInput::setVisible((bool)xml.parseInt());
- else if (tag == "outputTracksVisible") {
- printf("output track set from config!\n");
- AudioOutput::setVisible((bool)xml.parseInt());
- }
- else if (tag == "synthTracksVisible")
- SynthI::setVisible((bool)xml.parseInt());
- else if (tag == "bigtimeVisible")
- MusEGlobal::config.bigTimeVisible = xml.parseInt();
- else if (tag == "transportVisible")
- MusEGlobal::config.transportVisible = xml.parseInt();
- else if (tag == "mixer1Visible")
- MusEGlobal::config.mixer1Visible = xml.parseInt();
- else if (tag == "mixer2Visible")
- MusEGlobal::config.mixer2Visible = xml.parseInt();
else if (tag == "mtctype")
MusEGlobal::mtcType= xml.parseInt();
else if (tag == "sendClockDelay")
@@ -637,19 +659,6 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig
readMidiTransform(xml);
else if (tag == "midiInputTransform")
readMidiInputTransform(xml);
- else if (tag == "geometryTransport")
- MusEGlobal::config.geometryTransport = readGeometry(xml, tag);
- else if (tag == "geometryBigTime")
- MusEGlobal::config.geometryBigTime = readGeometry(xml, tag);
- else if (tag == "Mixer") {
- if(mixers == 0)
- MusEGlobal::config.mixer1.read(xml);
- else
- MusEGlobal::config.mixer2.read(xml);
- ++mixers;
- }
- else if (tag == "geometryMain")
- MusEGlobal::config.geometryMain = readGeometry(xml, tag);
// don't insert else if(...) clauses between
// this line and "Global config stuff begins here".
@@ -977,9 +986,6 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig
// ---- the following only skips obsolete entries ----
else if ((tag == "arranger") || (tag == "geometryPianoroll") || (tag == "geometryDrumedit"))
xml.skip(tag);
- else if (tag == "markerVisible")
- //MusEGlobal::config.markerVisible = xml.parseInt(); //Obsolete (done by song's toplevel list)
- xml.skip(tag);
else if (tag == "mixerVisible")
// MusEGlobal::config.mixerVisible = xml.parseInt(); // Obsolete
xml.skip(tag);
@@ -1032,9 +1038,9 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig
printf("text <%s>\n", xml.s1().toLatin1().constData());
break;
case Xml::Attribut:
- if (readOnlySequencer)
+ if (doReadMidiPortConfig==false)
break;
- if (tag == "version") {
+ else if (tag == "version") {
int major = xml.s2().section('.', 0, 0).toInt();
int minor = xml.s2().section('.', 1, 1).toInt();
xml.setVersion(major, minor);
@@ -1083,7 +1089,7 @@ bool readConfiguration()
else if (skipmode)
break;
else if (tag == "configuration")
- readConfiguration(xml,false, true /* read global config as well */);
+ readConfiguration(xml,true, true /* read global config as well */);
else
xml.unknown("muse config");
break;
@@ -1517,6 +1523,12 @@ void MusE::writeConfiguration(int level, MusECore::Xml& xml) const
if (bigtime)
xml.geometryTag(level, "geometryBigTime", bigtime);
+ // i thought this was obsolete, but it seems to be necessary (flo)
+ xml.intTag(level, "arrangerVisible", viewArrangerAction->isChecked());
+ xml.intTag(level, "markerVisible", viewMarkerAction->isChecked());
+ // but storing the geometry IS obsolete. this is really
+ // done by TopLevel::writeConfiguration
+
xml.intTag(level, "mixer1Visible", viewMixerAAction->isChecked());
xml.intTag(level, "mixer2Visible", viewMixerBAction->isChecked());
if (mixer1)