diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 | 
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-07 19:01:11 +0000 | 
| commit | e40fc849149dd97c248866a4a1d026dda5e57b62 (patch) | |
| tree | b12b358f3b3a0608001d30403358f8443118ec5f /muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp | |
| parent | 1bd4f2e8d9745cabb667b043171cad22c8577768 (diff) | |
clean3
Diffstat (limited to 'muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp')
| -rw-r--r-- | muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp | 250 | 
1 files changed, 0 insertions, 250 deletions
| diff --git a/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp b/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp deleted file mode 100644 index 7a9b6ed2..00000000 --- a/muse_qt4_evolution/midiplugins/drumglue/drumglue.cpp +++ /dev/null @@ -1,250 +0,0 @@ -//========================================================= -//  MusE -//  Linux Music Editor -// -//    drumglue - filter -// -//  (C) Copyright 2008 Robert Jonsson (rj@spamatica.se) -//  (C) Copyright 2005- Werner Schweer (ws@seh.de) -// Copyright: See COPYING file that comes with this distribution -//========================================================= - -#include "drumgluegui.h" -#include "drumglue.h" -#include "midi.h" -#include "midievent.h" - - - -//--------------------------------------------------------- -//   DrumInstrument - get next index -//     - next output instrument to use -//--------------------------------------------------------- -int DrumInstrument::getNextIndex(int /*velocity*/) -{ -	// for now we simply do a round robin -	// -	// future improvements are to keep track of -	// the time since the last hit and the -	// weight set for each instrument. -	// the incoming velocity should be checked that it's in range -	if (outputInstruments.size() == 0) -		return -1; -	 -	if (lastOutputIndex+1 > outputInstruments.size()-1) -		return 0; -	else -		return lastOutputIndex+1; -} - -//--------------------------------------------------------- -//   DrumInstrument - get velocity -//     - velocity value to use -//--------------------------------------------------------- -int DrumInstrument::getVelocity(int /*index*/, int velocity) -{ -	// for now we just return the same velocity -	// future improvements are to allow for some -	return velocity; -} - - -//--------------------------------------------------------- -//   DrumGlue - constructor -//--------------------------------------------------------- -DrumGlue::DrumGlue(const char* name, const MempiHost* h) -   : Mempi(name, h) -      { -      gui = 0; -      saveData = NULL; -      } - -//--------------------------------------------------------- -//   DrumGlue - destructor -//--------------------------------------------------------- -DrumGlue::~DrumGlue() -      { -      if (gui) -            delete gui; -      if (saveData) -      		delete saveData; -      } - -//--------------------------------------------------------- -//   init -//--------------------------------------------------------- - -bool DrumGlue::init() -      { -      gui = new DrumGlueGui(this, 0); -      gui->setWindowTitle("MusE: "+QString(name())); -      gui->show(); -      return false; -      } - -//--------------------------------------------------------- -//   getGeometry -//--------------------------------------------------------- - -void DrumGlue::getGeometry(int* x, int* y, int* w, int* h) const -      { -      QPoint pos(gui->pos()); -      QSize size(gui->size()); -      *x = pos.x(); -      *y = pos.y(); -      *w = size.width(); -      *h = size.height(); -      } - -//--------------------------------------------------------- -//   setGeometry -//--------------------------------------------------------- - -void DrumGlue::setGeometry(int x, int y, int w, int h) -      { -      gui->resize(QSize(w, h)); -      gui->move(QPoint(x, y)); -      } - -//--------------------------------------------------------- -//   process -//--------------------------------------------------------- - -void DrumGlue::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol) -      { - -      for (iMidiEvent i = il->begin(); i != il->end(); ++i) { -            MidiEvent temp=*i; -            if (temp.isNote() && !temp.isNoteOff()) -                { -					foreach(DrumInstrument *di, drumInstruments) { -						if (temp.dataA() == di->inKey) { -							int inVelocity = temp.dataB(); -							int instrumentIdx = di->getNextIndex(inVelocity); -							if (instrumentIdx==-1) { -								// no instrument defined, yet, skip it -								break; -							} -							int outKey = di->outputInstruments[instrumentIdx]->outKey; -							int outVelocity= di->getVelocity(instrumentIdx, inVelocity); -							printf("inKey=%d outKey =%d outVelocity=%d instrumentIdx=%d\n", di->inKey, outKey, outVelocity, instrumentIdx); -							temp.setA(outKey); -							temp.setB(outVelocity); -							 -							ol->insert(temp);	// note on -							 -							temp.setB(0); -							ol->insert(temp);	// note off -							 -							di->lastOutputIndex = instrumentIdx; -							di->outputTime = temp.time(); -							break; -							} -                    	} -                 } -            if (temp.isNoteOff()) ; // we just throw it away, we will insert noteoffs for each note on -            } -      } - -// -// getInitData - return configuration to MusE -// -void DrumGlue::getInitData(int* n, const unsigned char** p) const -      { -       QString saveStr; -        -       foreach (DrumInstrument *di, drumInstruments) { -       		QString drumline = "DRUM " +di->name + " " + QString("%1").arg(di->inKey) + "\n"; -       		saveStr.append(drumline); -       		foreach (DrumOutputInstrument *doi, di->outputInstruments) { -				QString outputline = "OUTPUT " +  -									QString("%1").arg(doi->outKey) + " " +  -									QString("%1").arg(doi->lowestVelocity) + " " +  -									QString("%1").arg(doi->highestVelocity) + " " +  -									QString("%1").arg(doi->prefer) + " " +  -									QString("%1").arg(doi->preferFast) + "\n"; -				saveStr.append(outputline); -       			 -       		} -       } -        -      *n = saveStr.length(); -       -      if (saveData) -      	delete saveData; -      	 -       -      saveData = new unsigned char[saveStr.length()]; -       -      strncpy((char*)saveData, saveStr.toLatin1().data(), saveStr.length()); -      saveData[saveStr.length()]=0; -      printf("getInitData -\n%s\n",saveData); -       -      *p = saveData; - -      } - -void DrumGlue::setInitData(int n, const unsigned char* p) -      { -      if (saveData) -      		delete saveData; -      saveData = new unsigned char[n+1]; -      		 -      strncpy((char*)saveData,(char*)p,n); -      saveData[n]=0; -       -      QString loadStr = (char*)saveData; -      printf("setInitData -\n%s\n",saveData); -      	 -      QStringList loadList = loadStr.split("\n"); -      	 -      DrumInstrument *currentInstrument=NULL; -      foreach (QString line, loadList) { -      		QStringList splitLine = line.split(" "); -      		if (splitLine[0] == "DRUM") { -      			if (currentInstrument) -      				drumInstruments.append(currentInstrument); -      			 -      			currentInstrument = new DrumInstrument(); -      			currentInstrument->name = splitLine[1]; -      			currentInstrument->inKey = splitLine[2].toInt(); -      		} -      		if (splitLine[0] == "OUTPUT") { -				DrumOutputInstrument *doi = new DrumOutputInstrument; -				doi->outKey = splitLine[1].toInt(); -				doi->lowestVelocity = splitLine[2].toInt(); -				doi->highestVelocity = splitLine[3].toInt(); -				doi->prefer = splitLine[4].toInt(); -				doi->preferFast = splitLine[5].toInt(); -				currentInstrument->outputInstruments.append(doi); -      		} -      } -      if (currentInstrument) -		drumInstruments.append(currentInstrument); -       -      if (gui) -            gui->init(); -      } - -//--------------------------------------------------------- -//   inst -//--------------------------------------------------------- - -static Mempi* instantiate(const char* name, const MempiHost* h) -      { -      return new DrumGlue(name, h); -      } - -extern "C" { -      static MEMPI descriptor = { -            "DrumGlue", -            "Drum instrument mux filter", -            "0.1",                  // filter version string -            MEMPI_FILTER,           // plugin type -            MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, -            instantiate -            }; - -      const MEMPI* mempi_descriptor() { return &descriptor; } -      } - | 
