diff options
author | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 |
commit | e40fc849149dd97c248866a4a1d026dda5e57b62 (patch) | |
tree | b12b358f3b3a0608001d30403358f8443118ec5f /muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C | |
parent | 1bd4f2e8d9745cabb667b043171cad22c8577768 (diff) |
clean3
Diffstat (limited to 'muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C')
-rw-r--r-- | muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C b/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C deleted file mode 100644 index 8bbb2bec..00000000 --- a/muse_qt4_evolution/synti/zynaddsubfx/Params/PresetsStore.C +++ /dev/null @@ -1,181 +0,0 @@ -/* - ZynAddSubFX - a software synthesizer - - PresetsStore.C - Presets and Clipboard store - Copyright (C) 2002-2005 Nasca Octavian Paul - Author: Nasca Octavian Paul - - This program is free software; you can redistribute it and/or modify - it under the terms of version 2 of the GNU General Public License - as published by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License (version 2) for more details. - - You should have received a copy of the GNU General Public License (version 2) - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -*/ -#include <stdlib.h> -#include <string.h> -#include <dirent.h> -#include <sys/stat.h> - -#include "PresetsStore.h" -#include "../Misc/Util.h" - -PresetsStore presetsstore; - -PresetsStore::PresetsStore(){ - clipboard.data=NULL; - clipboard.type[0]=0; - - for (int i=0;i<MAX_PRESETS;i++){ - presets[i].file=NULL; - presets[i].name=NULL; - }; - -}; - -PresetsStore::~PresetsStore(){ - if (clipboard.data!=NULL) delete (clipboard.data); - clearpresets(); -}; - -//Clipboard management - -void PresetsStore::copyclipboard(XMLwrapper *xml,char *type){ - strcpy(clipboard.type,type); - if (clipboard.data!=NULL) delete (clipboard.data); - clipboard.data=xml->getXMLdata(); -}; - -bool PresetsStore::pasteclipboard(XMLwrapper *xml){ - if (clipboard.data!=NULL) xml->putXMLdata(clipboard.data); - else return(false); - return(true); -}; - -bool PresetsStore::checkclipboardtype(char *type){ - //makes LFO's compatible - if ((strstr(type,"Plfo")!=NULL)&&(strstr(clipboard.type,"Plfo")!=NULL)) return(true); - return(strcmp(type,clipboard.type)==0); -}; - -//Presets management -void PresetsStore::clearpresets(){ - for (int i=0;i<MAX_PRESETS;i++){ - if (presets[i].file!=NULL) { - delete(presets[i].file); - presets[i].file=NULL; - }; - if (presets[i].name!=NULL) { - delete(presets[i].name); - presets[i].name=NULL; - }; - }; - -}; - -//a helper function that compares 2 presets[] -int Presets_compar(const void *a,const void *b){ - struct PresetsStore::presetstruct *p1= (PresetsStore::presetstruct *)a; - struct PresetsStore::presetstruct *p2= (PresetsStore::presetstruct *)b; - if (((p1->name)==NULL)||((p2->name)==NULL)) return(0); - - return(strcasecmp(p1->name,p2->name)<0); -}; - - -void PresetsStore::rescanforpresets(char *type){ - clearpresets(); - int presetk=0; - char ftype[MAX_STRING_SIZE]; - snprintf(ftype,MAX_STRING_SIZE,".%s.xpz",type); - - for (int i=0;i<MAX_BANK_ROOT_DIRS;i++){ - if (config.cfg.presetsDirList[i]==NULL) continue; - char *dirname=config.cfg.presetsDirList[i]; - DIR *dir=opendir(dirname); - if (dir==NULL) continue; - struct dirent *fn; - while((fn=readdir(dir))){ - const char *filename=fn->d_name; - if (strstr(filename,ftype)==NULL) continue; - - - presets[presetk].file=new char [MAX_STRING_SIZE]; - presets[presetk].name=new char [MAX_STRING_SIZE]; - char tmpc=dirname[strlen(dirname)-1]; - char *tmps="/"; - if ((tmpc=='/')||(tmpc=='\\')) tmps=""; - snprintf(presets[presetk].file,MAX_STRING_SIZE,"%s%s%s",dirname,tmps,filename); - snprintf(presets[presetk].name,MAX_STRING_SIZE,"%s",filename); - - char *tmp=strstr(presets[presetk].name,ftype); - if (tmp!=NULL) tmp[0]='\0'; - presetk++; if (presetk>=MAX_PRESETS) return; - }; - - closedir(dir); - }; - - //sort the presets - for (int j=0;j<MAX_PRESETS-1;j++){ - for (int i=j+1;i<MAX_PRESETS;i++){ - if (Presets_compar(&presets[i],&presets[j])) { - presetstruct tmp=presets[i]; - presets[i]=presets[j]; - presets[j]=tmp; - }; - }; - }; -}; - -void PresetsStore::copypreset(XMLwrapper *xml,char *type, const char *name){ - char filename[MAX_STRING_SIZE],tmpfilename[MAX_STRING_SIZE]; - - if (config.cfg.presetsDirList[0]==NULL) return; - - snprintf(tmpfilename,MAX_STRING_SIZE,"%s",name); - - //make the filenames legal - for (int i=0;i<(int) strlen(tmpfilename);i++) { - char c=tmpfilename[i]; - if ((c>='0')&&(c<='9')) continue; - if ((c>='A')&&(c<='Z')) continue; - if ((c>='a')&&(c<='z')) continue; - if ((c=='-')||(c==' ')) continue; - tmpfilename[i]='_'; - }; - - char *dirname=config.cfg.presetsDirList[0]; - char tmpc=dirname[strlen(dirname)-1]; - char *tmps="/"; - if ((tmpc=='/')||(tmpc=='\\')) tmps=""; - - snprintf(filename,MAX_STRING_SIZE,"%s%s%s.%s.xpz",dirname,tmps,name,type); - - xml->saveXMLfile(filename); -}; - -bool PresetsStore::pastepreset(XMLwrapper *xml, int npreset){ - npreset--; - if (npreset>=MAX_PRESETS) return(false); - char *filename=presets[npreset].file; - if (filename==NULL) return(false); - bool result=(xml->loadXMLfile(filename)>=0); - return(result); -}; - -void PresetsStore::deletepreset(int npreset){ - npreset--; - if (npreset>=MAX_PRESETS) return; - char *filename=presets[npreset].file; - if (filename==NULL) return; - remove(filename); -}; - |