diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-03-20 08:56:55 +0100 | 
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-03-20 08:56:55 +0100 | 
| commit | 830769798357588cc68e67420a16f20504fa5d77 (patch) | |
| tree | 4e18fc57c9101b863d1b74de1c117bccf35b5fb8 /lv2 | |
| parent | 9486ad42e12884e2b3f40cbd76fba2cf889a416f (diff) | |
Remove obsolete files.
Diffstat (limited to 'lv2')
| -rw-r--r-- | lv2/Makefile.am | 36 | ||||
| -rw-r--r-- | lv2/drumgizmo.ttl | 156 | ||||
| -rw-r--r-- | lv2/input_lv2.cc | 117 | ||||
| -rw-r--r-- | lv2/input_lv2.h | 56 | ||||
| -rw-r--r-- | lv2/lv2.cc | 250 | ||||
| -rw-r--r-- | lv2/lv2_event.h | 281 | ||||
| -rw-r--r-- | lv2/lv2_gui.cc | 237 | ||||
| -rw-r--r-- | lv2/lv2_gui.h | 40 | ||||
| -rw-r--r-- | lv2/lv2_instance.h | 50 | ||||
| -rw-r--r-- | lv2/manifest.ttl | 7 | ||||
| -rw-r--r-- | lv2/output_lv2.cc | 82 | ||||
| -rw-r--r-- | lv2/output_lv2.h | 61 | 
12 files changed, 0 insertions, 1373 deletions
| diff --git a/lv2/Makefile.am b/lv2/Makefile.am deleted file mode 100644 index 09ef24c..0000000 --- a/lv2/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -include $(top_srcdir)/plugingui/Makefile.am.plugingui -include $(top_srcdir)/src/Makefile.am.drumgizmo - -plugindir = $(libdir)/lv2/drumgizmo.lv2 - -if ENABLE_LV2 -plugin_LTLIBRARIES = drumgizmo.la -endif - -plugin_DATA = manifest.ttl drumgizmo.ttl - -EXTRA_DIST = \ -	$(plugin_DATA) \ -	input_lv2.h \ -	output_lv2.h \ -	lv2_event.h \ -	lv2_gui.h \ -	lv2_instance.h - -drumgizmo_la_CXXFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/plugingui \ -	-I$(top_srcdir)/include $(SNDFILE_CXXFLAGS) \ -	$(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) $(LV2_CFLAGS) \ -	$(PLUGIN_GUI_CFLAGS) $(SSEFLAGS) $(ZITA_CPPFLAGS) \ -	-DUSE_THREAD $(SAMPLERATE_CFLAGS) - -drumgizmo_la_SOURCES = \ -	$(DRUMGIZMO_SOURCES) \ -	$(PLUGIN_GUI_SOURCES) \ -	lv2.cc \ -	lv2_gui.cc \ -	input_lv2.cc \ -	output_lv2.cc - -drumgizmo_la_LDFLAGS = -module -avoid-version -drumgizmo_la_LIBADD = $(LV2_LIBS) $(PLUGIN_GUI_LIBS) $(DRUMGIZMO_LIBS) - diff --git a/lv2/drumgizmo.ttl b/lv2/drumgizmo.ttl deleted file mode 100644 index 1854d74..0000000 --- a/lv2/drumgizmo.ttl +++ /dev/null @@ -1,156 +0,0 @@ -# LV2 DrumGizmo Plugin -# Copyright 2011 Bent Bisballe Nyeng <deva@aasimon.org> -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -@prefix doap:   <http://usefulinc.com/ns/doap#> . -@prefix foaf:   <http://xmlns.com/foaf/0.1/> . -@prefix lv2:    <http://lv2plug.in/ns/lv2core#> . -@prefix atom:   <http://lv2plug.in/ns/ext/atom#> . -@prefix uiext:  <http://lv2plug.in/ns/extensions/ui#> . -@prefix state:  <http://lv2plug.in/ns/ext/state#> . -@prefix pprops: <http://lv2plug.in/ns/ext/port-props#> . - -<http://drumgizmo.org/lv2-gui> -    a uiext:external ; -    uiext:binary <drumgizmo.so> . - -<http://drumgizmo.org/lv2> -	a lv2:InstrumentPlugin ; -	doap:name "DrumGizmo" ; -	doap:maintainer [ -		foaf:name "DrumGizmo.org"; -		foaf:homepage <http://www.drumgizmo.org> ; -	] ; -	doap:license <http://usefulinc.com/doap/licenses/gpl> ; -	uiext:ui <http://drumgizmo.org/lv2-gui> ; -	doap:license <http://opensource.org/licenses/gpl-3.0> ; -	lv2:optionalFeature <http://lv2plug.in/ns/ext/uri-map> ; -	lv2:optionalFeature <http://lv2plug.in/ns/ext/event> ; -  lv2:extensionData state:interface ; -	lv2:port [ -    a lv2:InputPort, lv2:ControlPort ; -    lv2:index 0 ; -    lv2:symbol "lv2_freewheel" ; -    lv2:name "Freewheel" ; -    lv2:default 0.0 ; -    lv2:minimum 0.0 ; -    lv2:maximum 1.0 ; -    lv2:designation <http://lv2plug.in/ns/lv2core#freeWheeling> ; -    lv2:portProperty lv2:toggled ; -    lv2:portProperty pprops:hasStrictBounds; -  ] , [ -		a atom:AtomPort , -      lv2:InputPort; -    atom:bufferType atom:Sequence ; -    atom:supports <http://lv2plug.in/ns/ext/midi#MidiEvent> ; -    lv2:index 1 ; -		lv2:symbol "control" ; -		lv2:name "Control" -	] , [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 2 ; -		lv2:symbol "out1" ; -		lv2:name "Out1" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 3 ; -		lv2:symbol "out2" ; -		lv2:name "Out2" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 4 ; -		lv2:symbol "out3" ; -		lv2:name "Out3" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 5 ; -		lv2:symbol "out4" ; -		lv2:name "Out4" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 6 ; -		lv2:symbol "out5" ; -		lv2:name "Out5" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 7 ; -		lv2:symbol "out6" ; -		lv2:name "Out6" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 8 ; -		lv2:symbol "out7" ; -		lv2:name "Out7" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 9 ; -		lv2:symbol "out8" ; -		lv2:name "Out8" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 10 ; -		lv2:symbol "out9" ; -		lv2:name "Out9" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 11 ; -		lv2:symbol "out10" ; -		lv2:name "Out10" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 12 ; -		lv2:symbol "out11" ; -		lv2:name "Out11" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 13 ; -		lv2:symbol "out12" ; -		lv2:name "Out12" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 14 ; -		lv2:symbol "out13" ; -		lv2:name "Out13" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 15 ; -		lv2:symbol "out14" ; -		lv2:name "Out14" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 16 ; -		lv2:symbol "out15" ; -		lv2:name "Out15" -	], [ -		a lv2:AudioPort , -			lv2:OutputPort ; -		lv2:index 17 ; -		lv2:symbol "out16" ; -		lv2:name "Out16" -	] . diff --git a/lv2/input_lv2.cc b/lv2/input_lv2.cc deleted file mode 100644 index aa3ff9d..0000000 --- a/lv2/input_lv2.cc +++ /dev/null @@ -1,117 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            input_lv2.cc - * - *  Wed Jul 13 14:27:02 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include "input_lv2.h" - -#include "lv2/lv2plug.in/ns/ext/atom/util.h" - -#include <midimapparser.h> - -#include <hugin.hpp> - -InputLV2::InputLV2() -{ -  eventPort = NULL; -} - -InputLV2::~InputLV2() -{ -} - -bool InputLV2::init(Instruments &i) -{ -  instruments = &i; -  return true; -} - -void InputLV2::setParm(std::string parm, std::string value) -{ -} - -bool InputLV2::start() -{ -  return true; -} - -void InputLV2::stop() -{ -} - -void InputLV2::pre() -{ -} - -event_t *InputLV2::run(size_t pos, size_t len, size_t *nevents) -{ -  if(eventPort == NULL) { -    *nevents = 0; -    return NULL; -  } - -  event_t *list; -  size_t listsize; - -  list = (event_t *)malloc(sizeof(event_t) * 1000); -  listsize = 0; - -  LV2_Atom_Event* ev = lv2_atom_sequence_begin(&eventPort->body); - -  while(!lv2_atom_sequence_is_end(&eventPort->body, -                                  eventPort->atom.size,  -                                  ev)) { -    uint8_t* const data = (uint8_t*)(ev+1); - -    if ((data[0] & 0xF0) == 0x80) { // note off -      int key = data[1]; -      (void)key; -      DEBUG(lv2input, "Event (off) key:%d\n", key); -    } - -    if ((data[0] & 0xF0) == 0x90) { // note on -      int key = data[1]; -      int velocity = data[2]; -     -      DEBUG(lv2input, "Event key:%d vel:%d\n", key, velocity); -     -      int i = mmap.lookup(key); -      if(velocity && i != -1) { -        list[listsize].type = TYPE_ONSET; -        list[listsize].instrument = i; -        list[listsize].velocity = velocity / 127.0; -        list[listsize].offset = ev->time.frames; -        listsize++; -      } -    } -    ev = lv2_atom_sequence_next(ev); -  } - -  *nevents = listsize; -  return list; -} - -void InputLV2::post() -{ -} diff --git a/lv2/input_lv2.h b/lv2/input_lv2.h deleted file mode 100644 index 44ad7da..0000000 --- a/lv2/input_lv2.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            input_lv2.h - * - *  Wed Jul 13 14:27:02 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#ifndef __DRUMGIZMO_INPUT_LV2_H__ -#define __DRUMGIZMO_INPUT_LV2_H__ - -#include <audioinputenginemidi.h> - -#include <lv2/lv2plug.in/ns/ext/atom/atom.h> - -class InputLV2 : public AudioInputEngineMidi { -public: -  InputLV2(); -  ~InputLV2(); - -  bool init(Instruments &instruments); - -  void setParm(std::string parm, std::string value); - -  bool start(); -  void stop(); - -  void pre(); -  event_t *run(size_t pos, size_t len, size_t *nevents); -  void post(); - -	LV2_Atom_Sequence *eventPort{nullptr}; - -private: -	Instruments *instruments{nullptr}; -}; - -#endif/*__DRUMGIZMO_INPUT_LV2_H__*/ diff --git a/lv2/lv2.cc b/lv2/lv2.cc deleted file mode 100644 index 224fca9..0000000 --- a/lv2/lv2.cc +++ /dev/null @@ -1,250 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            lv2.cc - * - *  Wed Jul 13 13:50:33 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include <lv2/lv2plug.in/ns/lv2core/lv2.h> -#include <lv2/lv2plug.in/ns/ext/atom/atom.h> - -#include <stdlib.h> -#include <string.h> - -#include "lv2_gui.h" -#include "lv2_instance.h" - -#include <hugin.hpp> - -enum { -  FREE_WHEEL_PORT = 0, -  MIDI_PORT, -  AUDIO_PORT_BASE -}; - -#define DRUMGIZMO_URI "http://drumgizmo.org/lv2" -#define NS_DG DRUMGIZMO_URI "/atom#" - -// Stuff to handle DrumGizmo* transmission from instance to GUI. -static LV2_DrumGizmo_Descriptor dg_descriptor; - -static DrumGizmo *dg_get_pci(LV2_Handle instance) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; -  return dglv2->dg; -} - -LV2_State_Status dg_save(LV2_Handle instance, -                         LV2_State_Store_Function store, -                         LV2_State_Handle handle, -                         uint32_t flags, -                         const LV2_Feature *const * features) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; - -  if(!dglv2 || !dglv2->map || !dglv2->map->map) { -    // Missing urid feature? -    return  LV2_STATE_ERR_NO_FEATURE; -  } - -  std::string config = dglv2->dg->configString(); - -  // Backwards compatible fix for errornously stored '\0' byte in < v0.9.8. -  // Remove when we reach v1.0 -  config += "\n"; - -  store(handle, -        dglv2->map->map(dglv2->map->handle, NS_DG "config"), -        config.data(), -        config.length(), -        dglv2->map->map(dglv2->map->handle, LV2_ATOM__Chunk), -        LV2_STATE_IS_POD | LV2_STATE_IS_PORTABLE); - -  return LV2_STATE_SUCCESS; -} - -LV2_State_Status dg_restore(LV2_Handle instance, -                            LV2_State_Retrieve_Function retrieve, -                            LV2_State_Handle handle, -                            uint32_t flags, -                            const LV2_Feature *const * features) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; - -  if(!dglv2 || !dglv2->map || !dglv2->map->map) { -    // Missing urid feature? -    return  LV2_STATE_ERR_NO_FEATURE; -  } - -  size_t size; -  uint32_t type; - -  const char* data = -    (const char*)retrieve(handle, -                          dglv2->map->map(dglv2->map->handle, NS_DG "config"), -                          &size, &type, &flags); - -  DEBUG(lv2, "Config string size: %d, data*: %p\n", (int)size, data); - -  if(data && size) { -    std::string config; - -    // Fix for errornously stored '\0' byte in < v0.9.8. -    // Remove when we reach v1.0 -    if(data[size - 1] == '\0') size--; - -    config.append(data, size); -    dglv2->dg->setConfigString(config); -  } - -  return LV2_STATE_SUCCESS; -} - -static LV2_State_Interface dg_persist = { -  dg_save, -  dg_restore -}; - -LV2_Handle instantiate(const struct _LV2_Descriptor *descriptor, -                       double sample_rate, -                       const char *bundle_path, -                       const LV2_Feature *const *features) -{ -  DGLV2 *dglv2 = new DGLV2; - -  dglv2->free_wheel_port = NULL; // Not assigned -  dglv2->pos = 0; // Start from the beginning - -  dglv2->map = NULL; -  for (int i = 0 ; features[i] ; i++) { -    if (!strcmp(features[i]->URI,  LV2_URID_URI "#map")) { -      dglv2->map = (LV2_URID_Map*)features[i]->data; -    } - } - -  dg_descriptor.get_pci = dg_get_pci; - -  dglv2->in = new InputLV2(); -  dglv2->out = new OutputLV2(); - -  dglv2->buffer = NULL; -  dglv2->buffer_size = 0; - -  dglv2->dg = new DrumGizmo(dglv2->out, dglv2->in); -  dglv2->dg->setSamplerate(sample_rate); - -  return (LV2_Handle)dglv2; -} - -void connect_port(LV2_Handle instance, uint32_t port, void *data_location) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; - -  if(port == FREE_WHEEL_PORT) { -    dglv2->free_wheel_port = (float*)data_location; -  } - -  if(port == MIDI_PORT) { // MIDI in -    dglv2->in->eventPort = (LV2_Atom_Sequence*)data_location; -  } - -  if(port >= AUDIO_PORT_BASE) { // Audio Port -    uint32_t audio_port = port - AUDIO_PORT_BASE; -    dglv2->out->outputPorts[audio_port].samples = (sample_t*)data_location; -    dglv2->out->outputPorts[audio_port].size = 0; -  } -} - -void activate(LV2_Handle instance) -{ -  // We don't really need to do anything here. -  DGLV2 *dglv2 = (DGLV2 *)instance; -  (void)dglv2; -} - -void run(LV2_Handle instance, uint32_t sample_count) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; - -  if(dglv2->free_wheel_port) { -    dglv2->dg->setFreeWheel(*dglv2->free_wheel_port); -  } - -  if(dglv2->buffer_size != sample_count) { -    dglv2->buffer_size = sample_count; -    dglv2->dg->setFrameSize(sample_count); -  } -  dglv2->dg->run(dglv2->pos, dglv2->buffer, sample_count); - -  dglv2->pos += sample_count; -} - -void deactivate(LV2_Handle instance) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; -  dglv2->dg->stop(); -} - -void cleanup(LV2_Handle instance) -{ -  DGLV2 *dglv2 = (DGLV2 *)instance; -  delete dglv2->dg; -  delete dglv2->in; -  delete dglv2->out; -} - -const void* extension_data(const char *uri) -{ -  if(!strcmp(uri, PLUGIN_INSTANCE_URI)) return &dg_descriptor; -  if(!strcmp(uri, LV2_STATE__interface)) return &dg_persist; -  return NULL; -} - -#ifdef __cplusplus -extern "C" { -#endif - -static const LV2_Descriptor descriptor = { -	DRUMGIZMO_URI, -	instantiate, -	connect_port, -  activate, -	run, -  deactivate, -	cleanup, -	extension_data -}; - -LV2_SYMBOL_EXPORT -const LV2_Descriptor* lv2_descriptor(uint32_t index) -{ -	switch (index) { -	case 0: -		return &descriptor; -	default: -		return NULL; -	} -} - -#ifdef __cplusplus -} -#endif diff --git a/lv2/lv2_event.h b/lv2/lv2_event.h deleted file mode 100644 index 2c340ba..0000000 --- a/lv2/lv2_event.h +++ /dev/null @@ -1,281 +0,0 @@ -/* -  LV2 Event Extension -  Copyright 2008-2011 David Robillard <http://drobilla.net> -  Copyright 2006-2007 Lars Luthman <lars.luthman@gmail.com> - -  Permission to use, copy, modify, and/or distribute this software for any -  purpose with or without fee is hereby granted, provided that the above -  copyright notice and this permission notice appear in all copies. - -  THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -*/ - -#ifndef LV2_EVENT_H -#define LV2_EVENT_H - -#define LV2_EVENT_URI "http://lv2plug.in/ns/ext/event" -#define LV2_EVENT_AUDIO_STAMP 0 - -#include <stdint.h> - -/** -   @file event.h -   C API for the LV2 Event extension <http://lv2plug.in/ns/ext/event>. -  -   This extension is a generic transport mechanism for time stamped events -   of any type (e.g. MIDI, OSC, ramps, etc). Each port can transport mixed -   events of any type; the type of events and timestamps are defined by a URI -   which is mapped to an integer by the host for performance reasons. -  -   This extension requires the host to support the LV2 URI Map extension. -   Any host which supports this extension MUST guarantee that any call to -   the LV2 URI Map uri_to_id function with the URI of this extension as the -   'map' argument returns a value within the range of uint16_t. -*/ - -/** -   The best Pulses Per Quarter Note for tempo-based uint32_t timestamps. -   Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisble -   by all integers from 1 through 18 inclusive, and powers of 2 up to 2^12. -*/ -static const uint32_t LV2_EVENT_PPQN = 3136573440U; - -/** -   An LV2 event (header only). -  -   LV2 events are generic time-stamped containers for any type of event. -   The type field defines the format of a given event's contents. -  -   This struct defines the header of an LV2 event. An LV2 event is a single -   chunk of POD (plain old data), usually contained in a flat buffer (see -   LV2_EventBuffer below). Unless a required feature says otherwise, hosts may -   assume a deep copy of an LV2 event can be created safely using a simple: -  -   memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size);  (or equivalent) -*/ -typedef struct { - -	/** -	   The frames portion of timestamp. The units used here can optionally be -	   set for a port (with the lv2ev:timeUnits property), otherwise this is -	   audio frames, corresponding to the sample_count parameter of the LV2 run -	   method (e.g. frame 0 is the first frame for that call to run). -	*/ -	uint32_t frames; - -	/** -	   The sub-frames portion of timestamp. The units used here can optionally -	   be set for a port (with the lv2ev:timeUnits property), otherwise this is -	   1/(2^32) of an audio frame. -	*/ -	uint32_t subframes; - -	/** -	   The type of this event, as a number which represents some URI -	   defining an event type. This value MUST be some value previously -	   returned from a call to the uri_to_id function defined in the LV2 -	   URI map extension (see lv2_uri_map.h). -	   There are special rules which must be followed depending on the type -	   of an event. If the plugin recognizes an event type, the definition -	   of that event type will describe how to interpret the event, and -	   any required behaviour. Otherwise, if the type is 0, this event is a -	   non-POD event and lv2_event_unref MUST be called if the event is -	   'dropped' (see above). Even if the plugin does not understand an event, -	   it may pass the event through to an output by simply copying (and NOT -	   calling lv2_event_unref). These rules are designed to allow for generic -	   event handling plugins and large non-POD events, but with minimal hassle -	   on simple plugins that "don't care" about these more advanced features. -	*/ -	uint16_t type; - -	/** -	   The size of the data portion of this event in bytes, which immediately -	   follows. The header size (12 bytes) is not included in this value. -	*/ -	uint16_t size; - -	/* size bytes of data follow here */ - -} LV2_Event; - - -/** -   A buffer of LV2 events (header only). -  -   Like events (which this contains) an event buffer is a single chunk of POD: -   the entire buffer (including contents) can be copied with a single memcpy. -   The first contained event begins sizeof(LV2_EventBuffer) bytes after the -   start of this struct. -  -   After this header, the buffer contains an event header (defined by struct -   LV2_Event), followed by that event's contents (padded to 64 bits), followed -   by another header, etc: -  -   |       |       |       |       |       |       | -   | | | | | | | | | | | | | | | | | | | | | | | | | -   |FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ... -*/ -typedef struct { - -	/** -	   The contents of the event buffer. This may or may not reside in the -	   same block of memory as this header, plugins must not assume either. -	   The host guarantees this points to at least capacity bytes of allocated -	   memory (though only size bytes of that are valid events). -	*/ -	uint8_t* data; - -	/** -	   The size of this event header in bytes (including everything). -	  -	   This is to allow for extending this header in the future without -	   breaking binary compatibility. Whenever this header is copied, -	   it MUST be done using this field (and NOT the sizeof this struct). -	*/ -	uint16_t header_size; - -	/** -	   The type of the time stamps for events in this buffer. -	   As a special exception, '0' always means audio frames and subframes -	   (1/UINT32_MAX'th of a frame) in the sample rate passed to instantiate. - -	   INPUTS: The host must set this field to the numeric ID of some URI -	   defining the meaning of the frames/subframes fields of contained events -	   (obtained by the LV2 URI Map uri_to_id function with the URI of this -	   extension as the 'map' argument, see lv2_uri_map.h).  The host must -	   never pass a plugin a buffer which uses a stamp type the plugin does not -	   'understand'. The value of this field must never change, except when -	   connect_port is called on the input port, at which time the host MUST -	   have set the stamp_type field to the value that will be used for all -	   subsequent run calls. -	    -	   OUTPUTS: The plugin may set this to any value that has been returned -	   from uri_to_id with the URI of this extension for a 'map' argument. -	   When connected to a buffer with connect_port, output ports MUST set this -	   field to the type of time stamp they will be writing. On any call to -	   connect_port on an event input port, the plugin may change this field on -	   any output port, it is the responsibility of the host to check if any of -	   these values have changed and act accordingly. -	*/ -	uint16_t stamp_type; - -	/** -	   The number of events in this buffer. - -	   INPUTS: The host must set this field to the number of events contained -	   in the data buffer before calling run(). The plugin must not change -	   this field. - -	   OUTPUTS: The plugin must set this field to the number of events it has -	   written to the buffer before returning from run(). Any initial value -	   should be ignored by the plugin. -	*/ -	uint32_t event_count; - -	/** -	   The size of the data buffer in bytes. -	   This is set by the host and must not be changed by the plugin. -	   The host is allowed to change this between run() calls. -	*/ -	uint32_t capacity; - -	/** -	   The size of the initial portion of the data buffer containing data. - -	   INPUTS: The host must set this field to the number of bytes used -	   by all events it has written to the buffer (including headers) -	   before calling the plugin's run(). -	   The plugin must not change this field. - -	   OUTPUTS: The plugin must set this field to the number of bytes -	   used by all events it has written to the buffer (including headers) -	   before returning from run(). -	   Any initial value should be ignored by the plugin. -	*/ -	uint32_t size; - -} LV2_Event_Buffer; - - -/** -   Opaque pointer to host data. -*/ -typedef void* LV2_Event_Callback_Data; - - -/** -   Non-POD events feature. -  -   To support this feature the host must pass an LV2_Feature struct to the -   plugin's instantiate method with URI "http://lv2plug.in/ns/ext/event" -   and data pointed to an instance of this struct.  Note this feature -   is not mandatory to support the event extension. -*/ -typedef struct { - -	/** -	   Opaque pointer to host data. -	  -	   The plugin MUST pass this to any call to functions in this struct. -	   Otherwise, it must not be interpreted in any way. -	*/ -	LV2_Event_Callback_Data callback_data; - -	/** -	   Take a reference to a non-POD event. -	  -	   If a plugin receives an event with type 0, it means the event is a -	   pointer to some object in memory and not a flat sequence of bytes -	   in the buffer. When receiving a non-POD event, the plugin already -	   has an implicit reference to the event. If the event is stored AND -	   passed to an output, lv2_event_ref MUST be called on that event. -	   If the event is only stored OR passed through, this is not necessary -	   (as the plugin already has 1 implicit reference). -	  -	   @param event An event received at an input that will not be copied to -	   an output or stored in any way. -	    -	   @param context The calling context. Like event types, this is a mapped -	   URI, see lv2_context.h. Simple plugin with just a run() method should -	   pass 0 here (the ID of the 'standard' LV2 run context). The host -	   guarantees that this function is realtime safe iff @a context is -	   realtime safe. -	  -	   PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS. -	*/ -	uint32_t (*lv2_event_ref)(LV2_Event_Callback_Data callback_data, -	                          LV2_Event*              event); - -	/** -	   Drop a reference to a non-POD event. -	  -	   If a plugin receives an event with type 0, it means the event is a -	   pointer to some object in memory and not a flat sequence of bytes -	   in the buffer. If the plugin does not pass the event through to -	   an output or store it internally somehow, it MUST call this function -	   on the event (more information on using non-POD events below). -	  -	   @param event An event received at an input that will not be copied to an -	   output or stored in any way. -	    -	   @param context The calling context. Like event types, this is a mapped -	   URI, see lv2_context.h. Simple plugin with just a run() method should -	   pass 0 here (the ID of the 'standard' LV2 run context). The host -	   guarantees that this function is realtime safe iff @a context is -	   realtime safe. -	  -	   PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS. -	*/ -	uint32_t (*lv2_event_unref)(LV2_Event_Callback_Data callback_data, -	                            LV2_Event*              event); - -} LV2_Event_Feature; - - -#endif /* LV2_EVENT_H */ diff --git a/lv2/lv2_gui.cc b/lv2/lv2_gui.cc deleted file mode 100644 index f683c8c..0000000 --- a/lv2/lv2_gui.cc +++ /dev/null @@ -1,237 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            lv2.cc - * - *  Wed Jul 13 13:50:33 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include "lv2_gui.h" - -#include <stdio.h> -#include <string.h> - -#include <lv2/lv2plug.in/ns/ext/instance-access/instance-access.h> -#include <lv2/lv2plug.in/ns/extensions/ui/ui.h> - -#include "lv2_instance.h" - -// From: http://codesearch.google.com/#50sg5qT6WNE/src/lv2_ui_dssi.c -// git://repo.or.cz/nekobee.git/src/lv2_ui_dssi.c - -#define DRUMGIZMO_UI_URI "http://drumgizmo.org/lv2-gui" - -#include <plugingui.h> - -/** - * When LV2_EXTERNAL_UI_URI UI is instantiated, the returned - * LV2UI_Widget handle must be cast to pointer to struct lv2_external_ui. - * UI is created in invisible state. - */ -struct lv2_external_ui -{ -  /** -   * Host calls this function regulary. UI library implementing the -   * callback may do IPC or redraw the UI. -   * -   * @param _this_ the UI context -   */ -  void (* run)(struct lv2_external_ui * _this_); - -  /** -   * Host calls this function to make the plugin UI visible. -   * -   * @param _this_ the UI context -   */ -  void (* show)(struct lv2_external_ui * _this_); - -  /** -   * Host calls this function to make the plugin UI invisible again. -   * -   * @param _this_ the UI context -   */ -  void (* hide)(struct lv2_external_ui * _this_); -}; - -/** UI extension suitable for out-of-process UIs */ -#define LV2_EXTERNAL_UI_URI "http://lv2plug.in/ns/extensions/ui#external" - -/** - * On UI instantiation, host must supply LV2_EXTERNAL_UI_URI - * feature. LV2_Feature::data must be pointer to struct lv2_external_ui_host. */ -struct lv2_external_ui_host -{ -  /** -   * Callback that plugin UI will call -   * when UI (GUI window) is closed by user. -   * This callback wil; be called during execution of lv2_external_ui::run() -   * (i.e. not from background thread). -   * -   * After this callback is called, UI is defunct. Host must call -   * LV2UI_Descriptor::cleanup(). If host wants to make the UI visible -   * again UI must be reinstantiated. -   * -   * @param controller Host context associated with plugin UI, as -   * supplied to LV2UI_Descriptor::instantiate() -   */ -  void (* ui_closed)(LV2UI_Controller controller); - -  /** -   * Optional (may be NULL) "user friendly" identifier which the UI -   * may display to allow a user to easily associate this particular -   * UI instance with the correct plugin instance as it is represented -   * by the host (e.g. "track 1" or "channel 4"). -   * -   * If supplied by host, the string will be referenced only during -   * LV2UI_Descriptor::instantiate() -   */ -  const char * plugin_human_id; -}; - -struct DG_GUI { -  struct lv2_external_ui virt; - -  LV2_Handle instance_handle; -  LV2_Extension_Data_Feature *data_access; -  DrumGizmo *instance; -  LV2UI_Controller controller; - -  GUI::PluginGUI *gui; -  struct lv2_external_ui_host *ui_host_ptr; -}; - -static void ui_run(struct lv2_external_ui * _this_) -{ -  struct DG_GUI *dggui = (struct DG_GUI *)_this_; -  dggui->gui->processEvents(); -} - -static void ui_show(struct lv2_external_ui * _this_) -{ -  struct DG_GUI *dggui = (struct DG_GUI *)_this_; -  dggui->gui->show(); -} - -static void ui_hide(struct lv2_external_ui * _this_) -{ -  struct DG_GUI *dggui = (struct DG_GUI *)_this_; -  if(dggui->gui) dggui->gui->hide(); -} - -static void closeHandler(void *ptr) -{ -  struct DG_GUI *gui = (struct DG_GUI *)ptr; - -  if(gui->ui_host_ptr && gui->ui_host_ptr->ui_closed) { -    gui->ui_host_ptr->ui_closed(gui->controller); -  } - -  delete gui->gui; -  gui->gui = NULL; -} - -static LV2UI_Handle ui_instantiate(const struct _LV2UI_Descriptor * descriptor, -                                   const char * plugin_uri, -                                   const char * bundle_path, -                                   LV2UI_Write_Function write_function, -                                   LV2UI_Controller controller, -                                   LV2UI_Widget * widget, -                                   const LV2_Feature * const * features) -{ -  printf("ui_instantiate\n"); - -  struct DG_GUI* pt = new struct DG_GUI; - -  pt->ui_host_ptr = NULL; -  pt->controller = controller; - -  while (*features != NULL) { -    std::string uri = (*features)->URI; -    void *data = (*features)->data; - -    printf("DGUI: feature: %s\n", uri.c_str()); - -    if(uri == LV2_INSTANCE_ACCESS_URI) { -      pt->instance_handle = data; -    } - -    if(uri == LV2_DATA_ACCESS_URI) { -      pt->data_access = (LV2_Extension_Data_Feature *)data; -    } - -    if(uri == LV2_EXTERNAL_UI_URI) { -      pt->ui_host_ptr = (struct lv2_external_ui_host *)data; -    } -    features++; -  } - -  LV2_DrumGizmo_Descriptor *dgd = -    (LV2_DrumGizmo_Descriptor *)(*pt->data_access->data_access)(PLUGIN_INSTANCE_URI); - -  pt->instance = dgd->get_pci(pt->instance_handle); -  pt->virt.run = ui_run; -  pt->virt.show = ui_show; -  pt->virt.hide = ui_hide; -  pt->gui = new GUI::PluginGUI(); -  pt->gui->setWindowClosedCallback(closeHandler, pt); - -  *widget = (LV2UI_Widget)pt; - -  return pt; -} - -static void ui_cleanup(LV2UI_Handle ui) -{ -  struct DG_GUI* pt = (struct DG_GUI*)ui; -  delete pt->gui; -  pt->gui = NULL; -  delete pt; -} - -static void ui_port_event(LV2UI_Handle ui, -                          uint32_t port_index, -                          uint32_t buffer_size, -                          uint32_t format, -                          const void * buffer) -{ -} - -#ifdef __cplusplus -extern "C" { -#endif - -static LV2UI_Descriptor descriptor = { -  DRUMGIZMO_UI_URI, -  ui_instantiate, -  ui_cleanup, -  ui_port_event, -  NULL -}; - -const LV2UI_Descriptor *lv2ui_descriptor(uint32_t index) -{ -  if(index == 0) return &descriptor; -  return NULL; -} - -#ifdef __cplusplus -} -#endif diff --git a/lv2/lv2_gui.h b/lv2/lv2_gui.h deleted file mode 100644 index a929da3..0000000 --- a/lv2/lv2_gui.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            lv2_gui.h - * - *  Fri Oct 21 10:48:53 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#ifndef __DRUMGIZMO_LV2_GUI_H__ -#define __DRUMGIZMO_LV2_GUI_H__ - -#include <lv2/lv2plug.in/ns/lv2core/lv2.h> -#include <lv2/lv2plug.in/ns/ext/data-access/data-access.h> - -#define PLUGIN_INSTANCE_URI "http://drumgizmo.org/ns/drumgizmo-plugin-instance" - -class DrumGizmo; -struct LV2_DrumGizmo_Descriptor { -  DrumGizmo *(*get_pci)(LV2_Handle instance); -}; - -#endif/*__DRUMGIZMO_LV2_GUI_H__*/ diff --git a/lv2/lv2_instance.h b/lv2/lv2_instance.h deleted file mode 100644 index d1abb9a..0000000 --- a/lv2/lv2_instance.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            lv2_instance.h - * - *  Sun Nov 20 15:27:41 CET 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#ifndef __DRUMGIZMO_LV2_INSTANCE_H__ -#define __DRUMGIZMO_LV2_INSTANCE_H__ - -#include <lv2/lv2plug.in/ns/lv2core/lv2.h> -#include <lv2/lv2plug.in/ns/ext/state/state.h> -#include <lv2/lv2plug.in/ns/ext/urid/urid.h> - -#include "input_lv2.h" -#include "output_lv2.h" - -#include <drumgizmo.h> - -typedef struct { -  InputLV2 *in; -  OutputLV2 *out; -  DrumGizmo *dg; -  sample_t *buffer; -  size_t buffer_size; -  LV2_URID_Map* map; -  float* free_wheel_port; -  size_t pos; -} DGLV2; - -#endif/*__DRUMGIZMO_LV2_INSTANCE_H__*/ diff --git a/lv2/manifest.ttl b/lv2/manifest.ttl deleted file mode 100644 index 65a8953..0000000 --- a/lv2/manifest.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix lv2: <http://lv2plug.in/ns/lv2core#> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . - -<http://drumgizmo.org/lv2> -	a lv2:Plugin ; -	lv2:binary <drumgizmo.so> ; -	rdfs:seeAlso <drumgizmo.ttl> . diff --git a/lv2/output_lv2.cc b/lv2/output_lv2.cc deleted file mode 100644 index fdd795b..0000000 --- a/lv2/output_lv2.cc +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            output_lv2.cc - * - *  Wed Jul 13 14:27:06 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#include "output_lv2.h" - -#include <string.h> - -OutputLV2::OutputLV2() -{ -  for(size_t i = 0; i < NUM_OUTPUTS; i++) { -    outputPorts[i].size = 0; -    outputPorts[i].samples = NULL; -  } -} - -OutputLV2::~OutputLV2() -{ -} - -bool OutputLV2::init(Channels channels) -{ -  return true; -} - -void OutputLV2::setParm(std::string parm, std::string value) -{ -} - -bool OutputLV2::start() -{ -  return true; -} - -void OutputLV2::stop() -{ -} - -void OutputLV2::pre(size_t nsamples) -{ -} - -void OutputLV2::run(int ch, sample_t *samples, size_t nsamples) -{ -  if(ch < NUM_OUTPUTS) { -    if(outputPorts[ch].samples) { -      memcpy(outputPorts[ch].samples, samples, nsamples * sizeof(sample_t)); -    } -  } -} - -void OutputLV2::post(size_t nsamples) -{ -} - -sample_t *OutputLV2::getBuffer(int ch) -{ -  if(ch < NUM_OUTPUTS) return outputPorts[ch].samples; -  return NULL; -} diff --git a/lv2/output_lv2.h b/lv2/output_lv2.h deleted file mode 100644 index 88b8a4b..0000000 --- a/lv2/output_lv2.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - *            output_lv2.h - * - *  Wed Jul 13 14:27:06 CEST 2011 - *  Copyright 2011 Bent Bisballe Nyeng - *  deva@aasimon.org - ****************************************************************************/ - -/* - *  This file is part of DrumGizmo. - * - *  DrumGizmo is free software; you can redistribute it and/or modify - *  it under the terms of the GNU General Public License as published by - *  the Free Software Foundation; either version 3 of the License, or - *  (at your option) any later version. - * - *  DrumGizmo is distributed in the hope that it will be useful, - *  but WITHOUT ANY WARRANTY; without even the implied warranty of - *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *  GNU General Public License for more details. - * - *  You should have received a copy of the GNU General Public License - *  along with DrumGizmo; if not, write to the Free Software - *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. - */ -#ifndef __DRUMGIZMO_OUTPUT_LV2_H__ -#define __DRUMGIZMO_OUTPUT_LV2_H__ - -#include <audiooutputengine.h> - -#define NUM_OUTPUTS 64 - -class OutputPort { -public: -  size_t size; -  sample_t *samples; -}; - -class OutputLV2 : public AudioOutputEngine { -public: -  OutputLV2(); -  ~OutputLV2(); - -  bool init(Channels channels); - -  void setParm(std::string parm, std::string value); - -  bool start(); -  void stop(); - -  void pre(size_t nsamples); -  void run(int ch, sample_t *samples, size_t nsamples); -  void post(size_t nsamples); - -  sample_t *getBuffer(int c); - -  OutputPort outputPorts[NUM_OUTPUTS]; -}; - -#endif/*__DRUMGIZMO_OUTPUT_LV2_H__*/ | 
