summaryrefslogtreecommitdiff
path: root/attic/muse_qt4_evolution/muse/midirc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse_qt4_evolution/muse/midirc.cpp')
-rw-r--r--attic/muse_qt4_evolution/muse/midirc.cpp180
1 files changed, 0 insertions, 180 deletions
diff --git a/attic/muse_qt4_evolution/muse/midirc.cpp b/attic/muse_qt4_evolution/muse/midirc.cpp
deleted file mode 100644
index 14b69d55..00000000
--- a/attic/muse_qt4_evolution/muse/midirc.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//=============================================================================
-// MusE
-// Linux Music Editor
-// $Id:$
-//
-// Copyright (C) 2002-2006 by Werner Schweer and others
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2.
-//
-// 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 for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-//=============================================================================
-
-#include "midirc.h"
-#include "song.h"
-#include "midi.h"
-
-MidiRCList midiRCList;
-
-//---------------------------------------------------------
-// isActive
-//---------------------------------------------------------
-
-bool MidiRCList::isActive(int action)
- {
- for (iMidiRC i = begin(); i != end(); ++i) {
- if (i->action == action)
- return true;
- }
- return false;
- }
-
-//---------------------------------------------------------
-// setAction
-//---------------------------------------------------------
-
-void MidiRCList::setAction(const MidiEvent& e, int action)
- {
- //
- // TODO: check for already used events
- //
- for (iMidiRC i = begin(); i != end(); ++i) {
- if (i->action == action) {
-// printf("replace action %d: ", action);
-// i->event.dump();
- i->event = e;
- return;
- }
- }
- push_back(MidiRC(e, action));
-// printf("add action %d: ", action);
- e.dump();
- }
-
-//---------------------------------------------------------
-// emitAction
-//---------------------------------------------------------
-
-void MidiRCList::emitAction(int action) const
- {
-// printf("emit action %d\n", action);
- switch(action) {
- case RC_STOP:
- song->setStop(true);
- break;
- case RC_PLAY:
- song->setPlay(true);
- break;
- case RC_RECORD:
- song->setRecord(true);
- break;
- case RC_GOTO_LEFT_MARK:
- song->setPos(0, song->lpos(), true, true, true);
- break;
- }
- }
-
-//---------------------------------------------------------
-// doAction
-// emit action associated with event e
-// return true if action found
-//---------------------------------------------------------
-
-bool MidiRCList::doAction(const MidiEvent& e)
- {
-// printf("MidiRCList::doAction ");
-// e.dump();
- for (iMidiRC i = begin(); i != end(); ++i) {
- if ((i->event.type()& 0xf0) == (e.type() & 0xf0)) {
- //
- // for note on events only compare pitch, not velocity
- // ignore note off events (note on with velicity zero
- //
- if ((e.type() == ME_NOTEON)
- && i->event.dataA() == e.dataA()
- && e.dataB() != 0) {
- emitAction(i->action);
- return true;
- }
- //
- // compare controller and controller value
- // TODO: maybe we need a special option to
- // ignore the controller value
- //
- if ((e.type() == ME_CONTROLLER)
- && i->event.dataA() == e.dataA()
- && i->event.dataB() == e.dataB()) {
- emitAction(i->action);
- return true;
- }
- }
- }
- return false;
- }
-
-//---------------------------------------------------------
-// read
-//---------------------------------------------------------
-
-void MidiRCList::read(QDomNode node)
- {
- int action = 0;
- MidiEvent event;
- for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
- QDomElement e = node.toElement();
- if (e.isNull())
- continue;
- if (e.tagName() == "action") {
- action = e.attribute("id", "0").toInt();
- for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
- QDomElement e1 = node.toElement();
- if (e1.isNull())
- continue;
- if (e1.tagName() == "noteOn") {
- event.setType(ME_NOTEON);
- event.setA(e1.attribute("pitch","0").toInt());
- }
- else if (e1.tagName() == "controller") {
- event.setType(ME_CONTROLLER);
- event.setA(e1.attribute("no","0").toInt());
- event.setB(e1.attribute("val","0").toInt());
- }
- else
- printf("MusE:midiRC:action: unknown tag %s\n", e1.tagName().toLatin1().data());
- }
- setAction(event, action);
- }
- else
- printf("MusE:midiRC: unknown tag %s\n", e.tagName().toLatin1().data());
- }
- }
-
-//---------------------------------------------------------
-// write
-//---------------------------------------------------------
-
-void MidiRCList::write(Xml& xml)
- {
- xml.stag("midiRC");
- for (iMidiRC i = begin(); i != end(); ++i) {
- xml.stag(QString("action id=\"%1\"").arg(i->action));
- if (i->event.type() == ME_NOTEON)
- xml.stag(QString("noteOn pitch=\"%1\"").arg(i->event.dataA()));
- else if (i->event.type() == ME_CONTROLLER)
- xml.stag(QString("controller no=\"%1\" val=\"%2\"")
- .arg(i->event.dataA()).arg(i->event.dataB()));
- else
- printf("remote event type %d not supported\n", i->event.type());
- xml.etag("action");
- }
- xml.etag("midiRC");
- }
-