From: terminator356 <ter...@us...> - 2009-02-10 01:19:03
|
Update of /cvsroot/lmuse/muse/muse/midiedit In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29225/muse/midiedit Modified Files: Tag: REL07 dcanvas.cpp dlist.cpp drumedit.cpp drummap.cpp pianoroll.cpp Log Message: See ChangeLog Index: drummap.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiedit/drummap.cpp,v retrieving revision 1.3.2.2 retrieving revision 1.3.2.3 diff -C2 -d -r1.3.2.2 -r1.3.2.3 *** drummap.cpp 2 Feb 2009 21:38:00 -0000 1.3.2.2 --- drummap.cpp 10 Feb 2009 01:18:57 -0000 1.3.2.3 *************** *** 10,13 **** --- 10,14 ---- #include "drummap.h" #include "xml.h" + #include "song.h" char drumOutmap[DRUM_MAPSIZE]; *************** *** 261,266 **** void resetGMDrumMap() { // Delete all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(false); for(int i = 0; i < DRUM_MAPSIZE; ++i) --- 262,269 ---- void resetGMDrumMap() { + audio->msgIdle(true); // Delete all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(false); ! song->changeAllPortDrumCtrlEvents(false); for(int i = 0; i < DRUM_MAPSIZE; ++i) *************** *** 273,277 **** } // Add all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(true); } --- 276,282 ---- } // Add all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(true); ! song->changeAllPortDrumCtrlEvents(true); ! audio->msgIdle(false); } *************** *** 425,430 **** void readDrumMap(Xml& xml, bool external) { // Delete all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(false); if (external) { --- 430,437 ---- void readDrumMap(Xml& xml, bool external) { + audio->msgIdle(true); // Delete all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(false); ! song->changeAllPortDrumCtrlEvents(false); if (external) { *************** *** 443,451 **** --- 450,462 ---- case Xml::Error: case Xml::End: + audio->msgIdle(false); return; case Xml::TagStart: if (tag == "entry") { if(i >= DRUM_MAPSIZE) + { + audio->msgIdle(false); return; + } readDrummapEntry(xml, external ? &drumMap[i] : 0); ++i; *************** *** 467,472 **** } // Add all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(true); return; } --- 478,485 ---- } // Add all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(true); ! song->changeAllPortDrumCtrlEvents(true); + audio->msgIdle(false); return; } *************** *** 476,480 **** } // Add all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(true); } --- 489,495 ---- } // Add all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(true); ! song->changeAllPortDrumCtrlEvents(true); ! audio->msgIdle(false); } Index: drumedit.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiedit/drumedit.cpp,v retrieving revision 1.22.2.13 retrieving revision 1.22.2.14 diff -C2 -d -r1.22.2.13 -r1.22.2.14 *** drumedit.cpp 2 Feb 2009 21:38:00 -0000 1.22.2.13 --- drumedit.cpp 10 Feb 2009 01:18:57 -0000 1.22.2.14 *************** *** 316,320 **** connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned))); connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned))); ! connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned))); // Added by Tim. p3.2.9 connect(song, SIGNAL(songChanged(int)), SLOT(songChanged1(int))); connect(song, SIGNAL(songChanged(int)), dlist, SLOT(songChanged(int))); --- 316,320 ---- connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned))); connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned))); ! connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned))); connect(song, SIGNAL(songChanged(int)), SLOT(songChanged1(int))); connect(song, SIGNAL(songChanged(int)), dlist, SLOT(songChanged(int))); Index: dcanvas.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiedit/dcanvas.cpp,v retrieving revision 1.16.2.7 retrieving revision 1.16.2.8 diff -C2 -d -r1.16.2.7 -r1.16.2.8 *** dcanvas.cpp 2 Feb 2009 21:38:00 -0000 1.16.2.7 --- dcanvas.cpp 10 Feb 2009 01:18:57 -0000 1.16.2.8 *************** *** 1033,1036 **** --- 1033,1044 ---- } + DrumMap dm = drumMap[spitch]; + drumMap[spitch] = drumMap[dpitch]; + drumMap[dpitch] = dm; + drumInmap[int(drumMap[spitch].enote)] = spitch; + drumOutmap[int(drumMap[int(spitch)].anote)] = spitch; + drumInmap[int(drumMap[int(dpitch)].enote)] = dpitch; + drumOutmap[int(drumMap[int(dpitch)].anote)] = dpitch; + for (std::vector< std::pair<Part*, Event> >::iterator i = add_events.begin(); i != add_events.end(); i++) { std::pair<Part*, Event> pair = *i; *************** *** 1039,1073 **** audio->msgAddEvent(theEvent, thePart, false); } - - /* - for (std::vector< std::pair<Part*, Event*> >::iterator i = spitch_events.begin(); i != spitch_events.end(); i++) { - std::pair<Part*, Event*> pair = *i; - Part* thePart = pair.first; - Event* theEvent = pair.second; - Event newEvent = theEvent->clone(); - MidiPort* mp = &midiPorts[((MidiTrack*)thePart->track())->outPort()]; - // Is it a drum controller event, according to the track port's instrument? - if(newEvent.type() == Controller && mp->drumController(newEvent.dataA())) - newEvent.setA((newEvent.dataA() & ~0xff) | dpitch); - else - newEvent.setPitch(dpitch); - - audio->msgAddEvent(newEvent, thePart, false); - } - - for (std::vector< std::pair<Part*, Event*> >::iterator i = dpitch_events.begin(); i != dpitch_events.end(); i++) { - std::pair<Part*, Event*> pair = *i; - Part* thePart = pair.first; - Event* theEvent = pair.second; - Event newEvent = theEvent->clone(); - MidiPort* mp = &midiPorts[((MidiTrack*)thePart->track())->outPort()]; - // Is it a drum controller event, according to the track port's instrument? - if(newEvent.type() == Controller && mp->drumController(newEvent.dataA())) - newEvent.setA((newEvent.dataA() & ~0xff) | spitch); - else - newEvent.setPitch(spitch); - audio->msgAddEvent(newEvent, thePart, false); - } - */ song->endUndo(SC_EVENT_MODIFIED); --- 1047,1050 ---- Index: dlist.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiedit/Attic/dlist.cpp,v retrieving revision 1.9.2.3 retrieving revision 1.9.2.4 diff -C2 -d -r1.9.2.3 -r1.9.2.4 *** dlist.cpp 2 Feb 2009 21:38:00 -0000 1.9.2.3 --- dlist.cpp 10 Feb 2009 01:18:57 -0000 1.9.2.4 *************** *** 161,164 **** --- 161,165 ---- QPopupMenu* p = midiPortsPopup(this); int n = p->exec(mapToGlobal(QPoint(x, y)), 0); + bool doemit = false; if (n != -1) { if (!changeAll) *************** *** 166,186 **** if(n != t->port) { ! audio->msgRemapPortDrumCtlEvents(getSelectedInstrument(), -1, -1, n); t->port = n; } } else { // Delete all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(false); for (int i = 0; i < DRUM_MAPSIZE; i++) drumMap[i].port = n; - // Add all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(true); } } delete p; ! } //--------------------------------------------------------- --- 167,203 ---- if(n != t->port) { ! audio->msgIdle(true); ! //audio->msgRemapPortDrumCtlEvents(getSelectedInstrument(), -1, -1, n); ! song->remapPortDrumCtrlEvents(getSelectedInstrument(), -1, -1, n); ! audio->msgIdle(false); t->port = n; + doemit = true; } } else { + audio->msgIdle(true); // Delete all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(false); ! song->changeAllPortDrumCtrlEvents(false); for (int i = 0; i < DRUM_MAPSIZE; i++) drumMap[i].port = n; // Add all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(true); ! song->changeAllPortDrumCtrlEvents(true); ! ! audio->msgIdle(false); ! doemit = true; } } delete p; ! if(doemit) ! { ! int instr = getSelectedInstrument(); ! if(instr != -1) ! //emit curDrumInstrumentChanged(instr); ! song->update(SC_DRUMMAP); ! } ! } //--------------------------------------------------------- *************** *** 272,279 **** if(val != dm->anote) { ! audio->msgRemapPortDrumCtlEvents(pitch, val, -1, -1); dm->anote = val; } - emit keyPressed(pitch, shift);//(dm->anote, shift); break; --- 289,299 ---- if(val != dm->anote) { ! audio->msgIdle(true); ! //audio->msgRemapPortDrumCtlEvents(pitch, val, -1, -1); ! song->remapPortDrumCtrlEvents(pitch, val, -1, -1); ! audio->msgIdle(false); dm->anote = val; + song->update(SC_DRUMMAP); } emit keyPressed(pitch, shift);//(dm->anote, shift); break; *************** *** 286,296 **** if (ev->state() & ControlButton) { // Delete all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(false); for (int i = 0; i < DRUM_MAPSIZE; i++) drumMap[i].channel = val; // Add all port controller events. ! audio->msgChangeAllPortDrumCtrlEvents(true); } else --- 306,321 ---- if (ev->state() & ControlButton) { + audio->msgIdle(true); // Delete all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(false); ! song->changeAllPortDrumCtrlEvents(false); for (int i = 0; i < DRUM_MAPSIZE; i++) drumMap[i].channel = val; // Add all port controller events. ! //audio->msgChangeAllPortDrumCtrlEvents(true); ! song->changeAllPortDrumCtrlEvents(true); ! audio->msgIdle(false); ! song->update(SC_DRUMMAP); } else *************** *** 298,303 **** if(val != dm->channel) { ! audio->msgRemapPortDrumCtlEvents(pitch, -1, val, -1); dm->channel = val; } } --- 323,332 ---- if(val != dm->channel) { ! audio->msgIdle(true); ! //audio->msgRemapPortDrumCtlEvents(pitch, -1, val, -1); ! song->remapPortDrumCtrlEvents(pitch, -1, val, -1); ! audio->msgIdle(false); dm->channel = val; + song->update(SC_DRUMMAP); } } *************** *** 485,488 **** --- 514,518 ---- currentlySelected = &drumMap[instr]; emit curDrumInstrumentChanged(instr); + song->update(SC_DRUMMAP); } } *************** *** 647,659 **** int y = ev->y(); unsigned dPitch = y / TH; - DrumMap dm = drumMap[sPitch]; - drumMap[sPitch] = drumMap[dPitch]; - drumMap[dPitch] = dm; setCursor(QCursor(arrowCursor)); - drumInmap[int(drumMap[sPitch].enote)] = sPitch; - drumOutmap[int(drumMap[int(sPitch)].anote)] = sPitch; - drumInmap[int(drumMap[int(dPitch)].enote)] = dPitch; - drumOutmap[int(drumMap[int(dPitch)].anote)] = dPitch; currentlySelected = &drumMap[int(dPitch)]; emit mapChanged(sPitch, dPitch); //Track pitch change done in canvas } --- 677,683 ---- int y = ev->y(); unsigned dPitch = y / TH; setCursor(QCursor(arrowCursor)); currentlySelected = &drumMap[int(dPitch)]; + emit curDrumInstrumentChanged(dPitch); emit mapChanged(sPitch, dPitch); //Track pitch change done in canvas } Index: pianoroll.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/midiedit/pianoroll.cpp,v retrieving revision 1.25.2.8 retrieving revision 1.25.2.9 diff -C2 -d -r1.25.2.8 -r1.25.2.9 *** pianoroll.cpp 26 Jan 2008 07:23:20 -0000 1.25.2.8 --- pianoroll.cpp 10 Feb 2009 01:18:57 -0000 1.25.2.9 *************** *** 263,267 **** connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned))); connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned))); ! connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned))); // Added by Tim. p3.2.9 connect(canvas, SIGNAL(selectionChanged(int, Event&, Part*)), this, SLOT(setSelection(int, Event&, Part*))); --- 263,267 ---- connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned))); connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned))); ! connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned))); connect(canvas, SIGNAL(selectionChanged(int, Event&, Part*)), this, SLOT(setSelection(int, Event&, Part*))); |