| 
							- # data file for the Fltk User Interface Designer (fluid)
 - version 1.0110 
 - header_name {.h} 
 - code_name {.cc}
 - decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {} 
 - 
 - decl {//License: GNU GPL version 2 or later} {} 
 - 
 - decl {\#include <stdlib.h>} {public
 - } 
 - 
 - decl {\#include <stdio.h>} {public
 - } 
 - 
 - decl {\#include <string.h>} {public
 - } 
 - 
 - decl {\#include <FL/Fl_Button.H>} {public
 - } 
 - 
 - decl {\#include <FL/Fl_File_Chooser.H>} {public
 - } 
 - 
 - decl {\#include "../Misc/Master.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Part.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Bank.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Config.h"} {public
 - } 
 - 
 - decl {\#include "../Misc/Util.h"} {public
 - } 
 - 
 - class BankProcess_ {} {
 -   Function {process()} {open return_type {virtual void}
 -   } {
 -     code {;} {}
 -   }
 -   decl {Bank *bank;} {public
 -   }
 - } 
 - 
 - class BankSlot {open : {public Fl_Button,BankProcess_}
 - } {
 -   Function {BankSlot(int x,int y, int w, int h, const char *label=0):Fl_Button(x,y,w,h,label)} {open
 -   } {
 -     code {what=NULL;
 - whatslot=NULL;
 - nslot=0;
 - nselected=NULL;} {selected
 -     }
 -   }
 -   Function {handle(int event)} {return_type int
 -   } {
 -     code {if (what==NULL) return(0);
 - if (Fl::event_inside(this)){
 -   *what=0;*whatslot=nslot;
 -   if ((event==FL_RELEASE)&&(Fl::event_button()==1))*what=1;
 -   if ((event==FL_RELEASE)&&(Fl::event_button()==3))*what=2;
 -   if (event==FL_PUSH) highlight=1;
 - }else highlight=0;
 - 
 - int tmp=Fl_Button::handle(event);
 - if ((*what!=0) && Fl::event_inside(this)) (bp->*fnc)();
 - return(tmp);} {}
 -   }
 -   Function {init(int nslot_, int *what_, int *whatslot_,void (BankProcess_:: *fnc_)(void),BankProcess_ *bp_,Bank *bank_,int *nselected_)} {} {
 -     code {nslot=nslot_;
 - what=what_;
 - whatslot=whatslot_;
 - fnc=fnc_;
 - bp=bp_;
 - bank=bank_;
 - nselected=nselected_;
 - box(FL_THIN_UP_BOX);
 - labelfont(0);
 - labelsize(13);
 - align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_CLIP);
 - 
 - highlight=0;
 - refresh();} {}
 -   }
 -   Function {refresh()} {} {
 -     code {if (bank->emptyslot(nslot))
 -     color(46);
 - else if (bank->isPADsynth_used(nslot)) 
 -     color(26);
 - else 
 -     color(51);
 - 
 - 
 - if (*nselected==nslot) 
 -     color(6);
 - 
 - 
 - copy_label(bank->getnamenumbered(nslot).c_str());} {}
 -   }
 -   decl {int *what,*whatslot,nslot,highlight, *nselected;} {}
 -   decl {void (BankProcess_:: *fnc)(void);} {}
 -   decl {BankProcess_ *bp;} {}
 - } 
 - 
 - class BankUI {open : {public BankProcess_}
 - } {
 -   Function {make_window()} {open
 -   } {
 -     Fl_Window bankuiwindow {
 -       label Bank
 -       xywh {492 406 785 575} type Double
 -       code0 {o->label(bank->bankfiletitle.c_str());}
 -       code1 {if (bank->bankfiletitle.empty()) o->label ("Choose a bank from the bank list on the left (or go to settings if to configure the bank location) or choose 'New Bank...' to make a new bank.");} visible
 -     } {
 -       Fl_Button {} {
 -         label Close
 -         callback {bankuiwindow->hide();}
 -         xywh {705 546 70 24} box THIN_UP_BOX
 -       }
 -       Fl_Group {} {
 -         xywh {5 34 772 491} box ENGRAVED_FRAME
 -       } {
 -         Fl_Pack {} {
 -           xywh {10 39 150 481} box BORDER_FRAME
 -           code0 {o->box(FL_NO_BOX);}
 -           code1 {for (int i=0;i<32;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
 -         } {}
 -         Fl_Pack {} {
 -           xywh {163 39 150 481} box BORDER_FRAME
 -           code0 {o->box(FL_NO_BOX);}
 -           code1 {for (int i=32;i<64;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
 -         } {}
 -         Fl_Pack {} {
 -           xywh {316 39 150 481} box BORDER_FRAME
 -           code0 {o->box(FL_NO_BOX);}
 -           code1 {for (int i=64;i<96;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
 -         } {}
 -         Fl_Pack {} {
 -           xywh {469 39 150 481} box BORDER_FRAME
 -           code0 {o->box(FL_NO_BOX);}
 -           code1 {for (int i=96;i<128;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
 -         } {}
 -         Fl_Pack {} {
 -           xywh {622 39 150 481} box BORDER_FRAME
 -           code0 {o->box(FL_NO_BOX);}
 -           code1 {for (int i=128;i<160;i++){bs[i]=new BankSlot (0,0,o->w(),15," ");bs[i]->init(i,&what,&slot,&BankProcess_::process,(BankProcess_ *)this,bank,&nselected);};}
 -         } {}
 -       }
 -       Fl_Group modeselect {
 -         xywh {5 528 425 42} box ENGRAVED_BOX
 -       } {
 -         Fl_Light_Button writebutton {
 -           label WRITE
 -           callback {if (o->value()>0.5) mode=2;
 - removeselection();}
 -           xywh {116 534 99 30} type Radio down_box THIN_DOWN_BOX selection_color 1 labeltype ENGRAVED_LABEL labelfont 1 labelsize 13
 -           code0 {if (bank->locked()) o->deactivate();}
 -         }
 -         Fl_Light_Button readbutton {
 -           label READ
 -           callback {if (o->value()>0.5) mode=1;
 - removeselection();}
 -           xywh {11 534 99 30} type Radio down_box THIN_DOWN_BOX selection_color 101 labeltype ENGRAVED_LABEL labelfont 1 labelsize 13
 -           code0 {o->value(1);}
 -         }
 -         Fl_Light_Button clearbutton {
 -           label CLEAR
 -           callback {if (o->value()>0.5) mode=3;
 - removeselection();}
 -           xywh {221 534 99 30} type Radio down_box THIN_DOWN_BOX selection_color 0 labeltype ENGRAVED_LABEL labelfont 1 labelsize 13
 -           code0 {if (bank->locked()) o->deactivate();}
 -         }
 -         Fl_Light_Button swapbutton {
 -           label SWAP
 -           callback {if (o->value()>0.5) mode=4;
 - removeselection();}
 -           xywh {325 534 99 30} type Radio down_box THIN_DOWN_BOX selection_color 227 labeltype ENGRAVED_LABEL labelfont 1 labelsize 13
 -           code0 {if (bank->locked()) o->deactivate();}
 -         }
 -       }
 -       Fl_Button {} {
 -         label {New Bank...}
 -         callback {const char *dirname;
 - 
 - dirname=fl_input("New empty Bank:");
 - if (dirname==NULL) return;
 - 
 - 
 - int result=bank->newbank(dirname);
 - 
 - if (result!=0) fl_alert("Error: Could not make a new bank (directory)..");
 - 
 - refreshmainwindow();}
 -         xywh {685 5 93 25} labelfont 1 labelsize 11 align 128
 -       }
 -       Fl_Check_Button {} {
 -         label {auto close}
 -         callback {config.cfg.BankUIAutoClose=(int) o->value();}
 -         tooltip {automatically close the bank window if the instrument is loaded} xywh {705 529 60 15} down_box DOWN_BOX labelsize 10
 -         code0 {o->value(config.cfg.BankUIAutoClose);}
 -       }
 -       Fl_Choice banklist {
 -         callback {int n=o->value();
 - std::string dirname=bank->banks[n].dir;
 - if (dirname.empty()) return;
 - 
 - if (bank->loadbank(dirname)==2)
 -        fl_alert("Error: Could not load the bank from the directory\\n%s.",dirname.c_str());
 - for (int i=0;i<BANK_SIZE;i++) bs[i]->refresh();
 - refreshmainwindow();}
 -         xywh {5 8 220 20} down_box BORDER_BOX labelfont 1 align 0 textfont 1 textsize 11
 -       } {}
 -       Fl_Button {} {
 -         label {Refresh bank list}
 -         callback {rescan_for_banks();
 - banklist->value(0);}
 -         tooltip {Refresh the bank list (rescan)} xywh {230 8 105 20} box THIN_UP_BOX color 50 labelsize 11
 -       }
 -       Fl_Check_Button {} {
 -         label {Show PADsynth status}
 -         callback {config.cfg.CheckPADsynth=(int) o->value();
 - refreshmainwindow();}
 -         xywh {435 530 150 15} down_box DOWN_BOX labelsize 11
 -         code0 {o->value(config.cfg.CheckPADsynth);}
 -       }
 -     }
 -   }
 -   Function {BankUI(Master *master_,int *npart_)} {} {
 -     code {fnc=&BankProcess_::process;
 - master=master_;
 - npart=npart_;
 - bank=&master_->bank;
 - what=0;
 - nselected=-1;
 - make_window();
 - mode=1;} {}
 -   }
 -   Function {~BankUI()} {return_type virtual
 -   } {
 -     code {bankuiwindow->hide();
 - delete(bankuiwindow);} {}
 -   }
 -   Function {show()} {} {
 -     code {bankuiwindow->show();
 - simplesetmode(config.cfg.UserInterfaceMode==2);} {}
 -   }
 -   Function {hide()} {} {
 -     code {bankuiwindow->hide();} {}
 -   }
 -   Function {init(Fl_Valuator *cbwig_)} {} {
 -     code {cbwig=cbwig_;
 - rescan_for_banks();} {}
 -   }
 -   Function {process()} {return_type void
 -   } {
 -     code {int slot=this->slot;
 - 
 - if ((what==2)&&(bank->emptyslot(slot)==0)&&(mode!=4)) {//Rename slot
 -     const char *tmp=fl_input("Slot (instrument) name:",bank->getname(slot).c_str());
 -     if (tmp!=NULL) bank->setname(slot,tmp,-1);
 -     bs[slot]->refresh();
 - };
 - 
 - if ((what==1)&&(mode==1)&&(!bank->emptyslot(slot))){//Reads from slot
 -     pthread_mutex_lock(&master->part[*npart]->load_mutex);
 -      bank->loadfromslot(slot,master->part[*npart]);
 -     pthread_mutex_unlock(&master->part[*npart]->load_mutex);
 -     master->part[*npart]->applyparameters();
 -     snprintf((char *)master->part[*npart]->Pname,PART_MAX_NAME_LEN,"%s",bank->getname(slot).c_str());
 -      cbwig->do_callback();
 -      
 -      if (config.cfg.BankUIAutoClose!=0)
 -          bankuiwindow->hide();
 - 
 - };
 - 
 - if ((what==1)&&(mode==2)){//save(write) to slot
 -      if (!bank->emptyslot(slot)){
 -        if (!fl_choice("Overwrite the slot no. %d ?","No","Yes",NULL,slot+1)) goto nooverwriteslot;
 -       };
 -        pthread_mutex_lock(&master->part[*npart]->load_mutex);
 -         bank->savetoslot(slot,master->part[*npart]);
 -        pthread_mutex_unlock(&master->part[*npart]->load_mutex);
 - 
 -        bs[slot]->refresh();
 -        mode=1;readbutton->value(1);writebutton->value(0);
 -        nooverwriteslot:;
 - };
 - 
 - 
 - 
 - if ((what==1)&&(mode==3)&&(!bank->emptyslot(slot))){//Clears the slot
 -       if (fl_choice("Clear the slot no. %d ?","No","Yes",NULL,slot+1)){
 -           bank->clearslot(slot);
 -           bs[slot]->refresh();
 -       };
 - };
 - 
 - if (mode==4){//swap
 -     bool done=false;
 -     if ((what==1)&&(nselected>=0)){
 -          bank->swapslot(nselected,slot);
 -          int ns=nselected;
 -          nselected=-1;
 -          bs[slot]->refresh();
 -          bs[ns]->refresh();
 -          done=true;
 -     };
 -     if (((nselected<0)||(what==2))&&(!done)){
 -         int ns=nselected;
 -         nselected=slot;
 -         if (ns>0) bs[ns]->refresh();
 -         bs[slot]->refresh();
 -     };
 - };
 - if (mode!=4) refreshmainwindow();} {}
 -   }
 -   Function {refreshmainwindow()} {} {
 -     code {bankuiwindow->label(bank->bankfiletitle.c_str());
 - mode=1;readbutton->value(1);writebutton->value(0);clearbutton->value(0);swapbutton->value(0);
 - nselected=-1;
 - if (bank->locked()){
 -     writebutton->deactivate();
 -     clearbutton->deactivate();
 -     swapbutton->deactivate();
 - } else {
 -     writebutton->activate();
 -     clearbutton->activate();
 -     swapbutton->activate();
 - };
 - for (int i=0;i<BANK_SIZE;i++) 
 -    bs[i]->refresh();} {}
 -   }
 -   Function {removeselection()} {} {
 -     code {if (nselected>=0) {
 -    int ns=nselected;
 -    nselected=-1;
 -    bs[ns]->refresh();
 - };} {}
 -   }
 -   Function {rescan_for_banks()} {} {
 -     code {banklist->clear();
 - bank->rescanforbanks();
 - 
 - for (unsigned int i=0;i<bank->banks.size();i++) {
 -      banklist->add(bank->banks[i].name.c_str());
 - }
 - if (banklist->size() == 0)
 -      banklist->add(" ");} {}
 -   }
 -   Function {simplesetmode(bool beginnerui)} {} {
 -     code {readbutton->value(1);
 - mode=1;
 - removeselection();
 - if (beginnerui) modeselect->hide();
 - 	else modeselect->show();} {}
 -   }
 -   decl {BankSlot *bs[BANK_SIZE];} {}
 -   decl {int slot,what;//"what"=what button is pressed} {}
 -   decl {int mode,*npart,nselected;} {}
 -   decl {Master *master;} {}
 -   decl {void (BankProcess_::* fnc)(void);} {}
 -   decl {Fl_Valuator *cbwig;} {public
 -   }
 - } 
 
 
  |