diff options
Diffstat (limited to 'lv2')
| -rw-r--r-- | lv2/Makefile.am | 1 | ||||
| -rw-r--r-- | lv2/input_lv2.cc | 15 | ||||
| -rw-r--r-- | lv2/input_lv2.h | 3 | 
3 files changed, 17 insertions, 2 deletions
| diff --git a/lv2/Makefile.am b/lv2/Makefile.am index 16cbbe4..96d39a2 100644 --- a/lv2/Makefile.am +++ b/lv2/Makefile.am @@ -11,6 +11,7 @@ lv2sources = \  	$(top_srcdir)/src/events.cc \  	$(top_srcdir)/src/instrument.cc \  	$(top_srcdir)/src/instrumentparser.cc \ +	$(top_srcdir)/src/midimapparser.cc \  	$(top_srcdir)/src/midimapper.cc \  	$(top_srcdir)/src/mutex.cc \  	$(top_srcdir)/src/path.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 <midimapparser.h> +  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++; diff --git a/lv2/input_lv2.h b/lv2/input_lv2.h index 9e1fcac..f904237 100644 --- a/lv2/input_lv2.h +++ b/lv2/input_lv2.h @@ -28,6 +28,7 @@  #define __DRUMGIZMO_INPUT_LV2_H__  #include <audioinputengine.h> +#include <midimapper.h>  #include <lv2/lv2plug.in/ns/ext/event/event-helpers.h> @@ -48,6 +49,8 @@ public:    void post();    LV2_Event_Buffer *eventPort; + +  MidiMapper mmap;  };  #endif/*__DRUMGIZMO_INPUT_LV2_H__*/ | 
