From 6611e83df0ed5b9bed42ff8cd549da0b5df11df2 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Tue, 9 Aug 2011 11:39:30 +0200 Subject: Use midimapper in LV2 plugin. --- lv2/input_lv2.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'lv2/input_lv2.cc') diff --git a/lv2/input_lv2.cc b/lv2/input_lv2.cc index d670505..3092347 100644 --- a/lv2/input_lv2.cc +++ b/lv2/input_lv2.cc @@ -26,6 +26,8 @@ */ #include "input_lv2.h" +#include + InputLV2::InputLV2() { eventPort = NULL; @@ -37,6 +39,14 @@ InputLV2::~InputLV2() bool InputLV2::init(Instruments &instruments) { + MidiMapParser p("/home/deva/docs/c/drumgizmo/kits/test/midimap.xml"); + if(p.parse()) {/*return false;*/} + mmap.midimap = p.midimap; + + for(size_t i = 0; i < instruments.size(); i++) { + mmap.instrmap[instruments[i].name()] = i; + } + return true; } @@ -80,9 +90,10 @@ event_t *InputLV2::run(size_t pos, size_t len, size_t *nevents) //printf("Event key:%d vel:%d\n", key, velocity); - if(velocity) { + int i = mmap.lookup(key); + if(velocity && i != -1) { list[listsize].type = TYPE_ONSET; - list[listsize].instrument = key; + list[listsize].instrument = i; list[listsize].velocity = velocity / 127.0; list[listsize].offset = ev->frames; listsize++; -- cgit v1.2.3