commit 8ddc11c692e6537d9f9d29f71a65e9d5a1ecf667
parent 095081b5a4fd7fdf8ef7c5be6c41f58d60934d76
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Mon, 10 May 2010 15:53:47 -0400
BUG: Fixing lockup on Master loading
Fixing bug when loading .xmz files with padsynth components
(Apparently master->mutex was getting locked twice)
Diffstat:
5 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/Misc/Master.cpp b/src/Misc/Master.cpp
@@ -551,11 +551,10 @@ vuData Master::getVuData()
return tmp;
}
-void Master::applyparameters()
+void Master::applyparameters(bool lockmutex)
{
for(int npart = 0; npart < NUM_MIDI_PARTS; npart++)
- part[npart]->applyparameters();
- ;
+ part[npart]->applyparameters(lockmutex);
}
void Master::add2XML(XMLwrapper *xml)
diff --git a/src/Misc/Master.h b/src/Misc/Master.h
@@ -68,7 +68,7 @@ class Master
/**loads all settings from a XML file
* @return 0 for ok or -1 if there is an error*/
int loadXML(const char *filename);
- void applyparameters();
+ void applyparameters(bool lockmutex = true);
void getfromXML(XMLwrapper *xml);
diff --git a/src/Misc/Part.cpp b/src/Misc/Part.cpp
@@ -1249,12 +1249,11 @@ int Part::loadXMLinstrument(const char *filename)
}
-void Part::applyparameters()
+void Part::applyparameters(bool lockmutex)
{
for(int n = 0; n < NUM_KIT_ITEMS; n++)
if((kit[n].padpars != NULL) && (kit[n].Ppadenabled != 0))
- kit[n].padpars->applyparameters(true);
- ;
+ kit[n].padpars->applyparameters(lockmutex);
}
void Part::getfromXMLinstrument(XMLwrapper *xml)
diff --git a/src/Misc/Part.h b/src/Misc/Part.h
@@ -80,7 +80,7 @@ class Part
void defaults();
void defaultsinstrument();
- void applyparameters();
+ void applyparameters(bool lockmutex = true);
void getfromXML(XMLwrapper *xml);
void getfromXMLinstrument(XMLwrapper *xml);
diff --git a/src/UI/MasterUI.fl b/src/UI/MasterUI.fl
@@ -1750,7 +1750,7 @@ pthread_mutex_lock(&master->mutex);
//load the data
int result=master->loadXML(filename);
-master->applyparameters();
+master->applyparameters(false);
pthread_mutex_unlock(&master->mutex);
npartcounter->value(1);