summaryrefslogtreecommitdiff
path: root/attic/muse2-oom/muse2/muse/midievent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse2-oom/muse2/muse/midievent.cpp')
-rw-r--r--attic/muse2-oom/muse2/muse/midievent.cpp176
1 files changed, 0 insertions, 176 deletions
diff --git a/attic/muse2-oom/muse2/muse/midievent.cpp b/attic/muse2-oom/muse2/muse/midievent.cpp
deleted file mode 100644
index ffeca3ff..00000000
--- a/attic/muse2-oom/muse2/muse/midievent.cpp
+++ /dev/null
@@ -1,176 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: midievent.cpp,v 1.7.2.2 2009/05/24 21:43:44 terminator356 Exp $
-//
-// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#include "event.h"
-#include "midievent.h"
-#include "xml.h"
-#include "mpevent.h"
-#include "midictrl.h"
-
-//---------------------------------------------------------
-// MidiEventBase
-//---------------------------------------------------------
-
-MidiEventBase::MidiEventBase(EventType t)
- : EventBase(t)
- {
- a = 0;
- b = 0;
- c = 0;
- }
-
-//---------------------------------------------------------
-// MidiEventBase::mid
-//---------------------------------------------------------
-
-EventBase* MidiEventBase::mid(unsigned b, unsigned e)
- {
- if (tick() < b || tick() >= e)
- return 0;
- return new MidiEventBase(*this);
- }
-
-//---------------------------------------------------------
-// isNoteOff
-//---------------------------------------------------------
-
-bool MidiEventBase::isNoteOff() const
- {
- return (type() == Note && (velo() == 0));
- }
-
-bool MidiEventBase::isNoteOff(const Event& e) const
- {
- return (e.isNoteOff() && (e.pitch() == a));
- }
-
-void MidiEventBase::dump(int n) const
- {
- EventBase::dump(n);
- const char* p;
-
- switch(type()) {
- case Note: p = "Note "; break;
- case Controller: p = "Ctrl "; break;
- case Sysex: p = "Sysex "; break;
- case PAfter: p = "PAfter "; break;
- case CAfter: p = "CAfter "; break;
- case Meta: p = "Meta "; break;
- default: p = "?? "; break;
- }
- for (int i = 0; i < (n+2); ++i)
- putchar(' ');
- printf("<%s> a:0x%x(%d) b:0x%x(%d) c:0x%x(%d)\n",
- p, a, a, b, b, c, c);
- }
-
-//---------------------------------------------------------
-// MidiEventBase::write
-//---------------------------------------------------------
-
-//void MidiEventBase::write(int level, Xml& xml, const Pos& offset) const
-void MidiEventBase::write(int level, Xml& xml, const Pos& offset, bool /*forcePath*/) const
- {
- xml.nput(level++, "<event tick=\"%d\"", tick() + offset.tick());
- switch (type()) {
- case Note:
- xml.nput(" len=\"%d\"", lenTick());
- break;
- default:
- xml.nput(" type=\"%d\"", type());
- break;
- }
-
- // Changed by T356. BUG: *.med does not save meta event types - ID: 2879426
- if (a)
- xml.nput(" a=\"%d\"", a);
- if (b)
- xml.nput(" b=\"%d\"", b);
- if (c)
- xml.nput(" c=\"%d\"", c);
-
- if (edata.dataLen) {
- xml.nput(" datalen=\"%d\">\n", edata.dataLen);
- xml.nput(level, "");
- for (int i = 0; i < edata.dataLen; ++i)
- xml.nput("%02x ", edata.data[i] & 0xff);
- xml.nput("\n");
- xml.tag(level, "/event");
- }
- else {
- //if (a)
- // xml.nput(" a=\"%d\"", a);
- //if (b)
- // xml.nput(" b=\"%d\"", b);
- //if (c)
- // xml.nput(" c=\"%d\"", c);
- xml.nput(" />\n");
- }
- }
-
-//---------------------------------------------------------
-// MidiEventBase::read
-//---------------------------------------------------------
-
-void MidiEventBase::read(Xml& xml)
- {
- setType(Note);
- a = 0;
- b = 0;
- c = 0;
-
- int dataLen = 0;
- 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("Event");
- break;
- case Xml::Text:
- {
- QByteArray ba = tag.toLatin1();
- const char*s = ba.constData();
- edata.data = new unsigned char[dataLen];
- edata.dataLen = dataLen;
- unsigned char* d = edata.data;
- for (int i = 0; i < dataLen; ++i) {
- char* endp;
- *d++ = strtol(s, &endp, 16);
- s = endp;
- }
- }
- break;
- case Xml::Attribut:
- if (tag == "tick")
- setTick(xml.s2().toInt());
- else if (tag == "type")
- setType(EventType(xml.s2().toInt()));
- else if (tag == "len")
- setLenTick(xml.s2().toInt());
- else if (tag == "a")
- a = xml.s2().toInt();
- else if (tag == "b")
- b = xml.s2().toInt();
- else if (tag == "c")
- c = xml.s2().toInt();
- else if (tag == "datalen")
- dataLen = xml.s2().toInt();
- break;
- case Xml::TagEnd:
- if (tag == "event")
- return;
- default:
- break;
- }
- }
- }
-