commit a5d1834de4348ccb34beb0122ae1010f4f7ce876
parent 8baa10d61e746de0425fa666007ccc8bf9f4918f
Author: paulnasca <paulnasca>
Date: Wed, 28 Jul 2004 18:45:45 +0000
*** empty log message ***
Diffstat:
9 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -664,5 +664,6 @@
27 Iul 2004 - Corectata o eroare foarte suparatoare care bloca uneori calculatorul
- Adaugat inca un nou parametru la PADsynth la base function
- Nu se mai arata butonul de apply parameters la PADsynth cand nu este necesar
-
+ - Eliminate blocarile de cateva secunde din threadul de sunet in momentul cand se incarca un nou instrument care contine parametrii PADsynth
+
diff --git a/src/Misc/Master.C b/src/Misc/Master.C
@@ -757,6 +757,11 @@ void Master::exportbankasxmldirectory(const char *bankfilename){
+void Master::applyparameters(){
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ part[npart]->applyparameters();
+ };
+};
void Master::add2XML(XMLwrapper *xml){
xml->addpar("volume",Pvolume);
diff --git a/src/Misc/Master.h b/src/Misc/Master.h
@@ -58,6 +58,7 @@ class Master{
//loads all settings from a XML file
//returns 0 for ok or -1 if there is an error
int loadXML(char *filename);
+ void applyparameters();
void getfromXML(XMLwrapper *xml);
diff --git a/src/Misc/Part.C b/src/Misc/Part.C
@@ -1104,7 +1104,11 @@ int Part::loadXMLinstrument(const char *filename){
};
-
+void Part::applyparameters(){
+ for (int n=0;n<NUM_KIT_ITEMS;n++){
+ if ((kit[n].padpars!=NULL)&&(kit[n].Ppadenabled!=0)) kit[n].padpars->applyparameters(true);
+ };
+};
void Part::getfromXMLinstrument(XMLwrapper *xml){
if (xml->enterbranch("INFO")){
@@ -1152,7 +1156,6 @@ void Part::getfromXMLinstrument(XMLwrapper *xml){
kit[i].Ppadenabled=xml->getparbool("pad_enabled",kit[i].Ppadenabled);
if (xml->enterbranch("PAD_SYNTH_PARAMETERS")){
kit[i].padpars->getfromXML(xml);
- if (kit[i].Ppadenabled!=0) kit[i].padpars->applyparameters(false);
xml->exitbranch();
};
diff --git a/src/Misc/Part.h b/src/Misc/Part.h
@@ -70,6 +70,8 @@ class Part{
void defaults();
void defaultsinstrument();
+ void applyparameters();
+
void getfromXML(XMLwrapper *xml);
void getfromXMLinstrument(XMLwrapper *xml);
diff --git a/src/UI/BankUI.fl b/src/UI/BankUI.fl
@@ -83,7 +83,7 @@ label(bank->getnamenumbered(nslot));} {}
decl {BankProcess_ *bp;} {}
}
-class BankUI {open : {public BankProcess_}
+class BankUI {: {public BankProcess_}
} {
Function {make_window()} {} {
Fl_Window bankuiwindow {
@@ -259,6 +259,7 @@ if ((what==1)&&(mode==1)&&(!bank->emptyslot(slot))){//Reads from slot
pthread_mutex_lock(&master->mutex);
bank->loadfromslot(slot,master->part[*npart]);
pthread_mutex_unlock(&master->mutex);
+ master->part[*npart]->applyparameters();
if (master->part[*npart]->disablekitloading==0){
snprintf((char *)master->part[*npart]->Pname,PART_MAX_NAME_LEN
,"%s",bank->getname(slot));
@@ -297,7 +298,8 @@ if (mode==4){//swap
bs[slot]->refresh();
};
};
-if (mode!=4) refreshmainwindow();} {}
+if (mode!=4) refreshmainwindow();} {selected
+ }
}
Function {refreshmainwindow()} {} {
code {bankuiwindow->label(bank->bankfiletitle);
@@ -321,8 +323,7 @@ for (int i=0;i<BANK_SIZE;i++) bs[i]->refresh();} {}
bs[ns]->refresh();
};} {}
}
- Function {rescan_for_banks()} {selected
- } {
+ Function {rescan_for_banks()} {} {
code {banklist->clear();
banklist->add(" ");
bank->rescanforbanks();
diff --git a/src/UI/MasterUI.fl b/src/UI/MasterUI.fl
@@ -398,12 +398,11 @@ if (fl_ask("Exit and leave the unsaved data?")) *exitprogram=1;
mastervolumedial->value(master->Pvolume);
globalfinedetuneslider->value(master->microtonal.Pglobalfinedetune);
microtonalui=new MicrotonalUI(&master->microtonal);
- globalfinedetuneslider->value(master->microtonal.Pglobalfinedetune);
updatesendwindow();
setfilelabel(NULL);
};
-updatepanel();} selected
+updatepanel();}
xywh {20 20 100 20}
}
menuitem {} {
@@ -420,6 +419,7 @@ pthread_mutex_lock(&master->mutex);
//load the data
int result=master->loadXML(filename);
pthread_mutex_unlock(&master->mutex);
+master->applyparameters();
npartcounter->do_callback();
syseffnocounter->do_callback();
@@ -436,7 +436,7 @@ updatepanel();
if (result==-10) fl_alert("Error: Could not load the file\\nbecause it is not a zynaddsubfx parameters file.");
- else if (result<0) fl_alert("Error: Could not load the file.");}
+ else if (result<0) fl_alert("Error: Could not load the file.");} selected
xywh {20 20 100 20}
}
menuitem {} {
@@ -620,7 +620,6 @@ filename=fl_file_chooser("Load:","({*.xiz})",NULL,0);
if (filename==NULL) return;
-
pthread_mutex_lock(&master->mutex);
int npart=(int)npartcounter->value();
@@ -631,6 +630,7 @@ pthread_mutex_lock(&master->mutex);
int result=master->part[npart]->loadXMLinstrument(filename);
pthread_mutex_unlock(&master->mutex);
+master->part[npart]->applyparameters();
npartcounter->do_callback();
updatepanel();
diff --git a/src/UI/PartUI.fl b/src/UI/PartUI.fl
@@ -274,9 +274,9 @@ delete(partkititem);} {}
decl {PartUI_ *partui;} {}
}
-class PartUI {open : {public Fl_Group,PartUI_}
+class PartUI {: {public Fl_Group,PartUI_}
} {
- Function {make_window()} {open private
+ Function {make_window()} {open selected private
} {
Fl_Window partgroup {
private xywh {107 533 385 180} type Double hide
@@ -866,7 +866,7 @@ subsynenabledcheck->value(part->kit[0].Psubenabled);}
}
Fl_Window instrumenteditwindow {
label {Instrument Edit}
- xywh {182 214 395 360} type Double visible
+ xywh {182 214 395 360} type Double hide
} {
Fl_Group {} {
xywh {0 220 395 110} box ENGRAVED_FRAME
@@ -886,7 +886,7 @@ subsynenabledcheck->value(part->kit[0].Psubenabled);}
callback {int x=(int) o->value();
part->kit[0].Ppadenabled=x;
if (x==0) padeditbutton->deactivate();
- else padeditbutton->activate();} selected
+ else padeditbutton->activate();}
tooltip {enable/disable PADsynth} xywh {215 255 80 20} box PLASTIC_UP_BOX down_box DOWN_BOX color 222 selection_color 218 labelfont 1 labelsize 12
code1 {o->value(part->kit[0].Ppadenabled);}
}
diff --git a/src/default.bnk_zyn b/src/default.bnk_zyn
Binary files differ.