zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

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:
Msrc/Misc/Master.cpp | 5++---
Msrc/Misc/Master.h | 2+-
Msrc/Misc/Part.cpp | 5++---
Msrc/Misc/Part.h | 2+-
Msrc/UI/MasterUI.fl | 2+-
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);