From e40fc849149dd97c248866a4a1d026dda5e57b62 Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Mon, 7 Mar 2011 19:01:11 +0000 Subject: clean3 --- .../muse_qt4_evolution/midiplugins/trigg/trigg.cpp | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 attic/muse_qt4_evolution/midiplugins/trigg/trigg.cpp (limited to 'attic/muse_qt4_evolution/midiplugins/trigg/trigg.cpp') diff --git a/attic/muse_qt4_evolution/midiplugins/trigg/trigg.cpp b/attic/muse_qt4_evolution/midiplugins/trigg/trigg.cpp new file mode 100644 index 00000000..fb3703cb --- /dev/null +++ b/attic/muse_qt4_evolution/midiplugins/trigg/trigg.cpp @@ -0,0 +1,131 @@ +//========================================================= +// MusE +// Linux Music Editor +// $Id: filter.cpp,v 1.10 2005/11/06 17:49:34 wschweer Exp $ +// +// filter - simple midi filter +// +// (C) Copyright 2005 Werner Schweer (ws@seh.de) +//========================================================= + +#include "trigggui.h" +#include "trigg.h" +#include "midi.h" +#include "midievent.h" + +//--------------------------------------------------------- +// Trigg +//--------------------------------------------------------- + +Trigg::Trigg(const char* name, const MempiHost* h) + : Mempi(name, h) + { + data.note=30; // allow any events + data.velocity=127; + gui = 0; + } + +//--------------------------------------------------------- +// Trigg +//--------------------------------------------------------- + +Trigg::~Trigg() + { + if (gui) + delete gui; + } + +//--------------------------------------------------------- +// init +//--------------------------------------------------------- + +bool Trigg::init() + { + gui = new TriggGui(this, 0); + gui->setWindowTitle("MusE: "+QString(name())); + gui->show(); + return false; + } + +//--------------------------------------------------------- +// getGeometry +//--------------------------------------------------------- + +void Trigg::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 Trigg::setGeometry(int x, int y, int w, int h) + { + gui->resize(QSize(w, h)); + gui->move(QPoint(x, y)); + } + +//--------------------------------------------------------- +// process +//--------------------------------------------------------- + +void Trigg::process(unsigned , unsigned , MidiEventList* il, MidiEventList* ol) + { + + for (iMidiEvent i = il->begin(); i != il->end(); ++i) { + MidiEvent temp=*i; + if (temp.isNote() || temp.isNoteOff()) + { + // for each event modify note and velocity + printf("a=%d b=%d isNote=%d isNoteOff=%d\n",temp.dataA(),temp.dataB(),temp.isNote(),temp.isNoteOff()); + temp.setA(data.note); + if (!temp.isNoteOff()) + temp.setB(data.velocity); + printf("AFTER a=%d b=%d\n",temp.dataA(),temp.dataB()); + } + ol->insert(temp); + } + } + +void Trigg::getInitData(int* n, const unsigned char** p) const + { + *n = sizeof(data); + *p = (unsigned char*)&data; + printf("::getInitData note=%d vel=%d\n",data.note,data.velocity); + } + +void Trigg::setInitData(int n, const unsigned char* p) + { + memcpy((void*)&data, p, n); + if (gui) + gui->init(); + } + +//--------------------------------------------------------- +// inst +//--------------------------------------------------------- + +static Mempi* instantiate(const char* name, const MempiHost* h) + { + return new Trigg(name, h); + } + +extern "C" { + static MEMPI descriptor = { + "Trigg", + "Any note triggers a specified note with specified velocity", + "1.0", // filter version string + MEMPI_FILTER, // plugin type + MEMPI_MAJOR_VERSION, MEMPI_MINOR_VERSION, + instantiate + }; + + const MEMPI* mempi_descriptor() { return &descriptor; } + } + -- cgit v1.2.3