From: werner s. <wsc...@us...> - 2004-09-14 18:18:16
|
Update of /cvsroot/lmuse/muse/muse/instruments In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14585/muse/instruments Modified Files: Makefile.am editinstrument.cpp midictrledit.cpp minstrument.cpp minstrument.h Log Message: minor update Index: Makefile.am =================================================================== RCS file: /cvsroot/lmuse/muse/muse/instruments/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 15 Apr 2004 22:55:06 -0000 1.3 --- Makefile.am 14 Sep 2004 18:17:26 -0000 1.4 *************** *** 1,10 **** include $(top_srcdir)/common.am - if PCH - AM_CXXFLAGS += -include $(top_srcdir)/all.h - endif - noinst_LIBRARIES = libinstruments.a dist_libinstruments_a_SOURCES = \ minstrument.cpp minstrument.h \ --- 1,8 ---- include $(top_srcdir)/common.am noinst_LIBRARIES = libinstruments.a + AM_CXXFLAGS += -include $(top_srcdir)/all.h + dist_libinstruments_a_SOURCES = \ minstrument.cpp minstrument.h \ Index: minstrument.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/instruments/minstrument.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** minstrument.cpp 18 Jun 2004 08:36:44 -0000 1.10 --- minstrument.cpp 14 Sep 2004 18:17:26 -0000 1.11 *************** *** 4,20 **** // $Id$ // ! // (C) Copyright 2000-2003 Werner Schweer (ws...@se...) //========================================================= - #include <stdio.h> - - #include <qpopupmenu.h> - #include <qdir.h> - #include <qfileinfo.h> - #include "minstrument.h" #include "midiport.h" #include "globals.h" - #include "xml.h" #include "event.h" #include "mpevent.h" --- 4,13 ---- // $Id$ // ! // (C) Copyright 2000-2004 Werner Schweer (ws...@se...) //========================================================= #include "minstrument.h" #include "midiport.h" #include "globals.h" #include "event.h" #include "mpevent.h" *************** *** 31,115 **** //--------------------------------------------------------- ! static void readEventList(Xml& xml, EventList* el, const char* name) { ! for (;;) { ! Xml::Token token = xml.parse(); ! const QString& tag = xml.s1(); ! switch (token) { ! case Xml::Error: ! case Xml::End: ! return; ! case Xml::TagStart: ! if (tag == "event") { ! Event e(Note); ! e.read(xml); ! el->add(e); ! } ! else ! xml.unknown("readEventList"); ! break; ! case Xml::TagEnd: ! if (tag == name) ! return; ! default: ! break; } } } //--------------------------------------------------------- ! // read //--------------------------------------------------------- ! static void readIDF(Xml& xml) { ! bool skipmode = true; ! for (;;) { ! Xml::Token token = xml.parse(); ! const QString& tag = xml.s1(); ! switch (token) { ! case Xml::Error: ! case Xml::End: ! return; ! case Xml::TagStart: ! if (skipmode && tag == "muse") ! skipmode = false; ! else if (skipmode) ! break; ! else if (tag == "MidiInstrument") { MidiInstrument* i = new MidiInstrument(); ! i->read(xml); midiInstruments.push_back(i); } ! else ! xml.unknown("muse"); ! break; ! case Xml::Attribut: ! break; ! case Xml::TagEnd: ! if (!skipmode && tag == "muse") { ! return; ! } ! default: ! break; } } ! } ! ! ! //--------------------------------------------------------- ! // loadIDF ! //--------------------------------------------------------- ! ! static void loadIDF(QFileInfo* fi) ! { ! FILE* f = fopen(fi->filePath().ascii(), "r"); ! if (f == 0) ! return; ! if (debugMsg) ! printf("READ IDF %s\n", fi->filePath().latin1()); ! Xml xml(f); ! readIDF(xml); ! fclose(f); } --- 24,86 ---- //--------------------------------------------------------- ! static void readEventList(QDomNode node, EventList* el) { ! while (!node.isNull()) { ! QDomElement e = node.toElement(); ! if (e.tagName() == "event") { ! Event e(Note); ! e.read(node.firstChild()); ! el->add(e); } + node = node.nextSibling(); } } //--------------------------------------------------------- ! // loadIDF //--------------------------------------------------------- ! static void loadIDF(QFileInfo* fi) { ! QFile qf(fi->filePath()); ! if (!qf.open(IO_ReadOnly)) { ! printf("cannot open file %s\n", fi->fileName().latin1()); ! return; ! } ! QDomDocument doc; ! int line, column; ! QString err; ! if (!doc.setContent(&qf, false, &err, &line, &column)) { ! QString col, ln, error; ! col.setNum(column); ! ln.setNum(line); ! error = err + " at line: " + ln + " col: " + col; ! printf("error reading file <%s>:\n %s\n", ! fi->filePath().latin1(), error.latin1()); ! return; ! } ! QDomNode node = doc.documentElement(); ! while (!node.isNull()) { ! QDomElement e = node.toElement(); ! if (e.isNull()) ! continue; ! if (e.tagName() == "muse") { ! node = node.firstChild(); ! QString version = e.attribute(QString("version")); ! while (!node.isNull()) { ! QDomElement e = node.toElement(); ! if (e.tagName() == "MidiInstrument") { MidiInstrument* i = new MidiInstrument(); ! i->read(node.firstChild()); midiInstruments.push_back(i); } ! node = node.nextSibling(); ! } } + else + printf("MusE: %s not supported\n", e.tagName().latin1()); + node = node.nextSibling(); } ! qf.close(); } *************** *** 253,284 **** //--------------------------------------------------------- ! void PatchGroup::read(Xml& xml) { ! for (;;) { ! Xml::Token token = xml.parse(); ! const QString& tag = xml.s1(); ! switch (token) { ! case Xml::Error: ! case Xml::End: ! return; ! case Xml::TagStart: ! if (tag == "Patch") { ! Patch patch; ! patch.read(xml); ! patches.push_back(patch); ! } ! else ! xml.unknown("PatchGroup"); ! break; ! case Xml::Attribut: ! if (tag == "name") ! name = xml.s2(); ! break; ! case Xml::TagEnd: ! if (tag == "PatchGroup") ! return; ! default: ! break; } } } --- 224,240 ---- //--------------------------------------------------------- ! void PatchGroup::read(QDomNode node) { ! while (!node.isNull()) { ! QDomElement e = node.toElement(); ! if (e.tagName() == "Patch") { ! Patch patch; ! patch.read(node); ! patches.push_back(patch); } + else + printf("MusE:PatchGroup(): unknown tag %s int group %s\n", + e.tagName().latin1(), name.latin1()); + node = node.nextSibling(); } } *************** *** 288,329 **** //--------------------------------------------------------- ! void Patch::read(Xml& xml) { ! typ = -1; ! hbank = -1; ! lbank = -1; ! prog = 0; ! drum = false; ! for (;;) { ! Xml::Token token = xml.parse(); ! const QString& tag = xml.s1(); ! switch (token) { ! case Xml::Error: ! case Xml::End: ! return; ! case Xml::TagStart: ! xml.unknown("Patch"); ! break; ! case Xml::Attribut: ! if (tag == "name") ! name = xml.s2(); ! else if (tag == "mode") ! typ = xml.s2().toInt(); ! else if (tag == "hbank") ! hbank = xml.s2().toInt(); ! else if (tag == "lbank") ! lbank = xml.s2().toInt(); ! else if (tag == "prog") ! prog = xml.s2().toInt(); ! else if (tag == "drum") ! drum = xml.s2().toInt(); ! break; ! case Xml::TagEnd: ! if (tag == "Patch") ! return; ! default: ! break; ! } ! } } --- 244,256 ---- //--------------------------------------------------------- ! void Patch::read(QDomNode node) { ! QDomElement e = node.toElement(); ! name = e.attribute(QString("name")); ! typ = e.attribute(QString("mode"), "-1").toInt(); ! hbank = e.attribute(QString("hbank"), "-1").toInt(); ! lbank = e.attribute(QString("lbank"), "-1").toInt(); ! prog = e.attribute(QString("prog"), "0").toInt(); ! drum = e.attribute(QString("drum"), "0").toInt(); } *************** *** 332,338 **** //--------------------------------------------------------- ! void MidiInstrument::readMidiState(Xml& xml) { ! _midiState->read(xml, "midistate", true); } --- 259,265 ---- //--------------------------------------------------------- ! void MidiInstrument::readMidiState(QDomNode node) { ! _midiState->read(node, true); } *************** *** 341,405 **** //--------------------------------------------------------- ! void MidiInstrument::read(Xml& xml) { ! for (;;) { ! Xml::Token token = xml.parse(); ! const QString& tag = xml.s1(); ! switch (token) { ! case Xml::Error: ! case Xml::End: ! return; ! case Xml::TagStart: ! if (tag == "Patch") { ! Patch patch; ! patch.read(xml); ! if (pg.empty()) { ! PatchGroup p; ! p.patches.push_back(patch); ! pg.push_back(p); ! } ! else ! pg[0].patches.push_back(patch); ! } ! else if (tag == "PatchGroup") { ! PatchGroup p; ! p.read(xml); ! pg.push_back(p); ! } ! else if (tag == "Controller") { ! MidiController* mc = new MidiController(); ! mc->read(xml); ! _controller->push_back(mc); ! } ! else if (tag == "Init") ! readEventList(xml, _midiInit, "Init"); ! else if (tag == "Reset") ! readEventList(xml, _midiReset, "Reset"); ! else if (tag == "State") ! readEventList(xml, _midiState, "State"); ! else if (tag == "InitScript") { ! if (_initScript) ! delete _initScript; ! const char* istr = xml.parse1().latin1(); ! int len = strlen(istr) +1; ! if (len > 1) { ! _initScript = new char[len]; ! memcpy(_initScript, istr, len); ! } ! } ! ! else ! xml.unknown("MidiInstrument"); ! break; ! case Xml::Attribut: ! if (tag == "name") ! setIName(xml.s2()); ! break; ! case Xml::TagEnd: ! if (tag == "MidiInstrument") ! return; ! default: ! break; } } } --- 268,317 ---- //--------------------------------------------------------- ! void MidiInstrument::read(QDomNode node) { ! QDomElement e = node.toElement(); ! _name = e.attribute("name"); ! while (!node.isNull()) { ! e = node.toElement(); ! if (e.tagName() == "Patch") { ! Patch patch; ! patch.read(node); ! if (pg.empty()) { ! PatchGroup p; ! p.patches.push_back(patch); ! pg.push_back(p); ! } ! else ! pg[0].patches.push_back(patch); ! } ! else if (e.tagName() == "PatchGroup") { ! PatchGroup p; ! p.name = e.attribute("name"); ! p.read(node.firstChild()); ! pg.push_back(p); ! } ! else if (e.tagName() == "Controller") { ! MidiController* mc = new MidiController(); ! mc->read(node.firstChild()); ! _controller->push_back(mc); } + else if (e.tagName() == "Init") + readEventList(node.firstChild(), _midiInit); + else if (e.tagName() == "Reset") + readEventList(node.firstChild(), _midiReset); + else if (e.tagName() == "State") + readEventList(node.firstChild(), _midiState); + else if (e.tagName() == "InitScript") { + if (_initScript) + delete _initScript; + const char* istr = e.text().latin1(); + int len = strlen(istr) +1; + if (len > 1) { + _initScript = new char[len]; + memcpy(_initScript, istr, len); + } + } + + node = node.nextSibling(); } } Index: minstrument.h =================================================================== RCS file: /cvsroot/lmuse/muse/muse/instruments/minstrument.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** minstrument.h 19 Jan 2004 18:15:55 -0000 1.3 --- minstrument.h 14 Sep 2004 18:17:26 -0000 1.4 *************** *** 11,22 **** #include "globaldefs.h" - #include <list> - #include <vector> - #include <qstring.h> class MidiPort; - class QPopupMenu; class MidiPlayEvent; - class Xml; class EventList; class MidiControllerList; --- 11,17 ---- *************** *** 31,35 **** QString name; bool drum; ! void read(Xml&); }; --- 26,30 ---- QString name; bool drum; ! void read(QDomNode); }; *************** *** 43,47 **** QString name; PatchList patches; ! void read(Xml&); }; --- 38,42 ---- QString name; PatchList patches; ! void read(QDomNode); }; *************** *** 76,80 **** MidiControllerList* controller() const { return _controller; } ! void readMidiState(Xml& xml); virtual bool guiVisible() const { return false; } virtual void showGui(bool) {} --- 71,75 ---- MidiControllerList* controller() const { return _controller; } ! void readMidiState(QDomNode); virtual bool guiVisible() const { return false; } virtual void showGui(bool) {} *************** *** 85,89 **** virtual const char* getPatchName(int,int,MType); virtual void populatePatchPopup(QPopupMenu*, int, MType); ! void read(Xml&); }; --- 80,84 ---- virtual const char* getPatchName(int,int,MType); virtual void populatePatchPopup(QPopupMenu*, int, MType); ! void read(QDomNode); }; Index: editinstrument.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/instruments/editinstrument.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** editinstrument.cpp 1 Jun 2004 14:25:49 -0000 1.2 --- editinstrument.cpp 14 Sep 2004 18:17:26 -0000 1.3 *************** *** 7,12 **** //========================================================= - #include <qlistbox.h> - #include "editinstrument.h" #include "minstrument.h" --- 7,10 ---- Index: midictrledit.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/instruments/midictrledit.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** midictrledit.cpp 27 Oct 2003 18:54:19 -0000 1.1.1.1 --- midictrledit.cpp 14 Sep 2004 18:17:26 -0000 1.2 *************** *** 7,12 **** //========================================================= - #include <stdio.h> - #include "app.h" #include "midiport.h" --- 7,10 ---- *************** *** 18,29 **** #include "globals.h" - #include <qlistview.h> - #include <qlineedit.h> - #include <qlistbox.h> - #include <qcombobox.h> - #include <qspinbox.h> - #include <qpushbutton.h> - #include <qtoolbutton.h> - MidiControllerEditDialog* midiControllerEditDialog; --- 16,19 ---- |