commit 687b66d44af5a1caa02e99b082ff70771cdd7aec
parent 8f6e2367c828b9389b9a688b34b8156b891d3464
Author: paulnasca <paulnasca>
Date: Tue, 3 Feb 2004 20:37:59 +0000
*** empty log message ***
Diffstat:
5 files changed, 90 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -520,3 +520,5 @@
- Inceput sa adaug suportul XML
02 Feb 2003 - Corectata o eroare care facea ca numele la instrumentele din bank sa fie aratate gresit (nu era pus un \0 )
- Continuat suportul de XML
+03 Feb 2003 - Continuat de scris suportul XML - inceput sa salvezi cativa parametrii
+
diff --git a/src/Misc/Master.C b/src/Misc/Master.C
@@ -22,7 +22,6 @@
*/
#include "Master.h"
-#include "XMLwrapper.h"
#include <stdio.h>
@@ -136,7 +135,7 @@ void Master::NoteOff(unsigned char chan,unsigned char note){
};
/*
- * Internal Note Off
+ * Internal Note Off
*/
void Master::noteoff(unsigned char chan,unsigned char note){
int npart;
@@ -181,7 +180,7 @@ void Master::setcontroller(unsigned char chan,unsigned int type,int par){
};
};
- } else {//other controllers
+ } else {//other controllers
for (int npart=0;npart<NUM_MIDI_PARTS;npart++){//Send the controller to all part assigned to the channel
if ((chan==part[npart]->Prcvchn) && (part[npart]->Penabled!=0))
part[npart]->SetController(type,par);
@@ -226,7 +225,7 @@ void Master::AudioOut(REALTYPE *outl,REALTYPE *outr){
if (again<=0) break;
};
//test end
-
+
//Swaps the Left channel with Right Channel (if it is asked for)
if (swaplr!=0){
@@ -684,7 +683,7 @@ void Master::saveloadbuf(Buffer *buf){
};
};
-
+
if (buf->getmode()!=0) {
unsigned char tmp=0xff;
buf->rwbyte(&tmp);
@@ -693,6 +692,21 @@ void Master::saveloadbuf(Buffer *buf){
+void Master::add2XML(XMLwrapper *xml){
+ //parameters
+ xml->addpar("volume",Pvolume);
+ xml->addpar("keyshift",Pkeyshift);
+ xml->addparbool("NRPNreceive",ctl.NRPN.receive);
+
+ //Save all parts
+
+ for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+ xml->beginbranch("PART","npart",npart);
+ part[npart]->add2XML(xml);
+ xml->endbranch();
+ };
+};
+
int Master::saveXML(char *filename){
@@ -700,10 +714,11 @@ int Master::saveXML(char *filename){
XMLwrapper *xml;
xml=new XMLwrapper();
-
-
-
-
+
+ xml->beginbranch("MASTER");
+ add2XML(xml);
+ xml->endbranch();
+
xml->saveXMLfile(filename,0);
delete (xml);
return(0);
diff --git a/src/Misc/Master.h b/src/Misc/Master.h
@@ -34,6 +34,7 @@
#include "Bank.h"
#include "Dump.h"
#include "../Seq/Sequencer.h"
+#include "XMLwrapper.h"
extern Dump dump;
class Master{
@@ -45,6 +46,9 @@ class Master{
//saves all settings to a XML file
//returns 0 for ok, 1 if there is a existing file or -1 if there is an error
int saveXML(char *filename);
+
+ //this adds the parameters to the XML data
+ void add2XML(XMLwrapper *xml);
//Midi IN
void NoteOn(unsigned char chan,unsigned char note,unsigned char velocity);
diff --git a/src/Misc/Part.C b/src/Misc/Part.C
@@ -910,6 +910,61 @@ void Part::saveloadbuf(Buffer *buf,int instrumentonly){
};
+/*
+ unsigned char Pkitmode;//if the kitmode is enabled
+ unsigned char Pdrummode;//if all keys are mapped and the system is 12tET (used for drums)
+
+*/
+
+void Part::add2XMLinstrument(XMLwrapper *xml){
+ xml->addparstr("name",(char *)Pname);
+ xml->addpar("kitmode",Pkitmode);
+ xml->addparbool("drummode",Pdrummode);
+
+};
+
+
+void Part::add2XML(XMLwrapper *xml){
+ //parameters
+ xml->addparbool("enabled",Penabled);
+ if (Penabled==0) return;
+
+ xml->addpar("volume",Pvolume);
+ xml->addpar("panning",Ppanning);
+
+ xml->addpar("minkey",Pminkey);
+ xml->addpar("maxkey",Pmaxkey);
+ xml->addpar("keyshift",Pkeyshift);
+ xml->addpar("rcvchn",Prcvchn);
+
+ xml->addpar("velsns",Pvelsns);
+ xml->addpar("veloffs",Pveloffs);
+
+ xml->addpar("noteon",Pnoteon);
+ xml->addparbool("polymode",Ppolymode);
+ xml->addpar("keylimit",Pkeylimit);
+// xml->addpar("",P);
+
+
+
+
+ xml->beginbranch("INSTRUMENT");
+ add2XMLinstrument(xml);
+ xml->endbranch();
+
+
+
+// xml->addpar("volume",Pvolume);
+// xml->addpar("keyshift",Pkeyshift);
+
+// for (int npart=0;npart<NUM_MIDI_PARTS;npart++){
+// xml->addpart(npart);
+
+
+
+// xml->endbranch();
+// };
+};
diff --git a/src/Misc/Part.h b/src/Misc/Part.h
@@ -34,6 +34,7 @@
#include "../Misc/Microtonal.h"
#include "../DSP/FFTwrapper.h"
#include "../Effects/EffectMgr.h"
+#include "XMLwrapper.h"
class Part{
@@ -55,6 +56,9 @@ class Part{
void saveloadbuf(Buffer *buf,int instrumentonly);
//instrumentonly: 0 - save all, 1 - save only instrumnet, 2 - save only instrument without the name(used in bank)
+ void add2XML(XMLwrapper *xml);
+ void add2XMLinstrument(XMLwrapper *xml);
+
void saveloadbufkititem(Buffer *buf,unsigned char item,int saveitem0);
void swapcopyitem(int item1,int item2,int mode);
@@ -79,10 +83,10 @@ class Part{
void setkititemstatus(int kititem,int Penabled_);
unsigned char Penabled;//if the part is enabled
+ unsigned char Pvolume;//part volume
unsigned char Pminkey;//the minimum key that the part receives noteon messages
unsigned char Pmaxkey;//the maximum key that the part receives noteon messages
unsigned char *Pname; //name of the instrument
- unsigned char Pvolume;//part volume
void setPvolume(char Pvolume);
unsigned char Pkeyshift;//Part keyshift
unsigned char Prcvchn;//from what midi channel it receive commnads