aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--atom.c187
-rw-r--r--atom_inspector.c112
-rw-r--r--atom_inspector_ui.c (renamed from atom_ui.c)113
-rw-r--r--manifest.ttl.in10
-rw-r--r--sherlock.c2
-rw-r--r--sherlock.h24
-rw-r--r--sherlock.ttl49
-rw-r--r--sherlock_ui.c4
9 files changed, 185 insertions, 320 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0f1d48..330a3a7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,14 +20,14 @@ set(LIBS_UI ${LIBS_UI} ${ELM_LDFLAGS})
add_library(sherlock MODULE
sherlock.c
- atom.c)
+ atom_inspector.c)
target_link_libraries(sherlock ${LIBS})
set_target_properties(sherlock PROPERTIES PREFIX "")
install(TARGETS sherlock DESTINATION ${DEST})
add_library(sherlock_ui MODULE
sherlock_ui.c
- atom_ui.c)
+ atom_inspector_ui.c)
target_link_libraries(sherlock_ui ${LIBS_UI})
set_target_properties(sherlock_ui PROPERTIES PREFIX "")
install(TARGETS sherlock_ui DESTINATION ${DEST})
diff --git a/atom.c b/atom.c
deleted file mode 100644
index ece7805..0000000
--- a/atom.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)
- *
- * This is free software: you can redistribute it and/or modify
- * it under the terms of the Artistic License 2.0 as published by
- * The Perl Foundation.
- *
- * This source 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
- * Artistic License 2.0 for more details.
- *
- * You should have received a copy of the Artistic License 2.0
- * along the source as a COPYING file. If not, obtain it from
- * http://www.perlfoundation.org/artistic_license_2_0.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <sherlock.h>
-
-typedef struct _handle_t handle_t;
-
-struct _handle_t {
- LV2_URID_Map *map;
- struct {
- LV2_URID event_transfer;
- LV2_URID sherlock_object;
- LV2_URID sherlock_frametime;
- LV2_URID sherlock_event;
- } uris;
-
- const LV2_Atom_Sequence *control_in;
- LV2_Atom_Sequence *control_out;
- LV2_Atom_Sequence *notify;
- LV2_Atom_Forge forge;
-};
-
-static LV2_Handle
-instantiate(const LV2_Descriptor* descriptor, double rate,
- const char *bundle_path, const LV2_Feature *const *features)
-{
- int i;
- handle_t *handle = calloc(1, sizeof(handle_t));
- if(!handle)
- return NULL;
-
- for(i=0; features[i]; i++)
- if(!strcmp(features[i]->URI, LV2_URID__map))
- handle->map = (LV2_URID_Map *)features[i]->data;
-
- if(!handle->map)
- {
- fprintf(stderr, "%s: Host does not support urid:map\n", descriptor->URI);
- free(handle);
- return NULL;
- }
-
- handle->uris.event_transfer = handle->map->map(handle->map->handle,
- LV2_ATOM__eventTransfer);
- handle->uris.sherlock_object = handle->map->map(handle->map->handle,
- SHERLOCK_OBJECT_URI);
- handle->uris.sherlock_frametime = handle->map->map(handle->map->handle,
- SHERLOCK_FRAMETIME_URI);
- handle->uris.sherlock_event = handle->map->map(handle->map->handle,
- SHERLOCK_EVENT_URI);
- lv2_atom_forge_init(&handle->forge, handle->map);
-
- return handle;
-}
-
-static void
-connect_port(LV2_Handle instance, uint32_t port, void *data)
-{
- handle_t *handle = (handle_t *)instance;
-
- switch(port)
- {
- case 0:
- handle->control_in = (const LV2_Atom_Sequence *)data;
- break;
- case 1:
- handle->control_out = (LV2_Atom_Sequence *)data;
- break;
- case 2:
- handle->notify = (LV2_Atom_Sequence *)data;
- break;
- default:
- break;
- }
-}
-
-static void
-activate(LV2_Handle instance)
-{
- handle_t *handle = (handle_t *)instance;
- //nothing
-}
-
-static void
-run(LV2_Handle instance, uint32_t nsamples)
-{
- handle_t *handle = (handle_t *)instance;
-
- // prepare notify atom forge
- LV2_Atom_Forge *forge = &handle->forge;
- LV2_Atom_Forge_Frame frame;
-
- uint32_t capacity = handle->notify->atom.size;
- lv2_atom_forge_set_buffer(forge, (uint8_t *)handle->notify, capacity);
- lv2_atom_forge_sequence_head(forge, &frame, 0);
-
- LV2_Atom_Event *ev = NULL;
- LV2_ATOM_SEQUENCE_FOREACH(handle->control_in, ev)
- {
- LV2_Atom_Forge_Frame obj;
- int64_t frames = ev->time.frames;
- size_t size = ev->body.size;
-
- lv2_atom_forge_frame_time(forge, frames);
- lv2_atom_forge_object(forge, &obj, 0, handle->uris.sherlock_object);
- {
- lv2_atom_forge_key(forge, handle->uris.sherlock_frametime);
- lv2_atom_forge_long(forge, frames);
-
- lv2_atom_forge_key(forge, handle->uris.sherlock_event);
- lv2_atom_forge_raw(forge, &ev->body, size + sizeof(LV2_Atom));
-
- lv2_atom_forge_pad(forge, size);
- }
- lv2_atom_forge_pop(forge, &obj);
- }
-
- lv2_atom_forge_pop(forge, &frame);
-
- //clone to control_out
- capacity = handle->control_out->atom.size;
- lv2_atom_forge_set_buffer(forge, (uint8_t *)handle->control_out, capacity);
- lv2_atom_forge_sequence_head(forge, &frame, 0);
-
- ev = NULL;
- LV2_ATOM_SEQUENCE_FOREACH(handle->control_in, ev)
- {
- LV2_Atom_Forge_Frame obj;
- int64_t frames = ev->time.frames;
- size_t size = ev->body.size;
-
- lv2_atom_forge_frame_time(forge, frames);
- lv2_atom_forge_raw(forge, &ev->body, size + sizeof(LV2_Atom));
- lv2_atom_forge_pad(forge, size);
- }
-
- lv2_atom_forge_pop(forge, &frame);
-}
-
-static void
-deactivate(LV2_Handle instance)
-{
- handle_t *handle = (handle_t *)instance;
- //nothing
-}
-
-static void
-cleanup(LV2_Handle instance)
-{
- handle_t *handle = (handle_t *)instance;
-
- free(handle);
-}
-
-static const void*
-extension_data(const char* uri)
-{
- return NULL;
-}
-
-const LV2_Descriptor atom = {
- .URI = SHERLOCK_ATOM_URI,
- .instantiate = instantiate,
- .connect_port = connect_port,
- .activate = activate,
- .run = run,
- .deactivate = deactivate,
- .cleanup = cleanup,
- .extension_data = extension_data
-};
diff --git a/atom_inspector.c b/atom_inspector.c
new file mode 100644
index 0000000..6430ec1
--- /dev/null
+++ b/atom_inspector.c
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2015 Hanspeter Portner (dev@open-music-kontrollers.ch)
+ *
+ * This is free software: you can redistribute it and/or modify
+ * it under the terms of the Artistic License 2.0 as published by
+ * The Perl Foundation.
+ *
+ * This source 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
+ * Artistic License 2.0 for more details.
+ *
+ * You should have received a copy of the Artistic License 2.0
+ * along the source as a COPYING file. If not, obtain it from
+ * http://www.perlfoundation.org/artistic_license_2_0.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <sherlock.h>
+
+typedef struct _handle_t handle_t;
+
+struct _handle_t {
+ LV2_URID_Map *map;
+ const LV2_Atom_Sequence *control_in;
+};
+
+static LV2_Handle
+instantiate(const LV2_Descriptor* descriptor, double rate,
+ const char *bundle_path, const LV2_Feature *const *features)
+{
+ int i;
+ handle_t *handle = calloc(1, sizeof(handle_t));
+ if(!handle)
+ return NULL;
+
+ for(i=0; features[i]; i++)
+ if(!strcmp(features[i]->URI, LV2_URID__map))
+ handle->map = (LV2_URID_Map *)features[i]->data;
+
+ if(!handle->map)
+ {
+ fprintf(stderr, "%s: Host does not support urid:map\n", descriptor->URI);
+ free(handle);
+ return NULL;
+ }
+
+ return handle;
+}
+
+static void
+connect_port(LV2_Handle instance, uint32_t port, void *data)
+{
+ handle_t *handle = (handle_t *)instance;
+
+ switch(port)
+ {
+ case 0:
+ handle->control_in = (const LV2_Atom_Sequence *)data;
+ break;
+ default:
+ break;
+ }
+}
+
+static void
+activate(LV2_Handle instance)
+{
+ handle_t *handle = (handle_t *)instance;
+ //nothing
+}
+
+static void
+run(LV2_Handle instance, uint32_t nsamples)
+{
+ handle_t *handle = (handle_t *)instance;
+ //nothing
+}
+
+static void
+deactivate(LV2_Handle instance)
+{
+ handle_t *handle = (handle_t *)instance;
+ //nothing
+}
+
+static void
+cleanup(LV2_Handle instance)
+{
+ handle_t *handle = (handle_t *)instance;
+
+ free(handle);
+}
+
+static const void*
+extension_data(const char* uri)
+{
+ return NULL;
+}
+
+const LV2_Descriptor atom_inspector = {
+ .URI = SHERLOCK_ATOM_INSPECTOR_URI,
+ .instantiate = instantiate,
+ .connect_port = connect_port,
+ .activate = activate,
+ .run = run,
+ .deactivate = deactivate,
+ .cleanup = cleanup,
+ .extension_data = extension_data
+};
diff --git a/atom_ui.c b/atom_inspector_ui.c
index 2f42911..59c65ac 100644
--- a/atom_ui.c
+++ b/atom_inspector_ui.c
@@ -19,6 +19,15 @@
#include <Elementary.h>
+// Disable deprecation warnings for Blank and Resource
+#if defined(__clang__)
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+
typedef struct _UI UI;
struct _UI {
@@ -30,10 +39,7 @@ struct _UI {
struct {
LV2_URID midi_MidiEvent;
LV2_URID osc_OscEvent;
- LV2_URID event_transfer;
- LV2_URID sherlock_object;
- LV2_URID sherlock_frametime;
- LV2_URID sherlock_event;
+ LV2_URID atom_transfer;
} uris;
LV2_Atom_Forge forge;
@@ -295,17 +301,8 @@ static char *
_sherlock_item_label_get(void *data, Evas_Object *obj, const char *part)
{
UI *ui = evas_object_data_get(obj, "ui");
- const LV2_Atom_Object *sherlock = data;
-
- const LV2_Atom_Long *frametime = NULL;
- const LV2_Atom *atom = NULL;
- LV2_Atom_Object_Query query [] = {
- { ui->uris.sherlock_frametime, (const LV2_Atom **)&frametime },
- { ui->uris.sherlock_event, &atom },
- LV2_ATOM_OBJECT_QUERY_END
- };
-
- lv2_atom_object_query(sherlock, query);
+ const LV2_Atom_Event *ev = data;
+ const LV2_Atom *atom = &ev->body;
if(!ui)
return NULL;
@@ -387,25 +384,16 @@ static Evas_Object *
_sherlock_item_content_get(void *data, Evas_Object *obj, const char *part)
{
UI *ui = evas_object_data_get(obj, "ui");
- const LV2_Atom_Object *sherlock = data;
+ const LV2_Atom_Event *ev = data;
+ const LV2_Atom *atom = &ev->body;
char buf [512];
- const LV2_Atom_Long *frametime = NULL;
- const LV2_Atom *atom = NULL;
- LV2_Atom_Object_Query query [] = {
- { ui->uris.sherlock_frametime, (const LV2_Atom **)&frametime },
- { ui->uris.sherlock_event, &atom },
- LV2_ATOM_OBJECT_QUERY_END
- };
-
- lv2_atom_object_query(sherlock, query);
-
if(!ui)
return NULL;
if(!strcmp(part, "elm.swallow.icon"))
{
- sprintf(buf, "%04ld", frametime->body);
+ sprintf(buf, "%04ld", ev->time.frames);
Evas_Object *label = elm_label_add(obj);
elm_object_part_text_set(label, "default", buf);
@@ -538,15 +526,8 @@ _prop_expand(UI *ui, const void *data, Evas_Object *obj, Elm_Object_Item *itm)
static void
_sherlock_expand(UI *ui, const void *data, Evas_Object *obj, Elm_Object_Item *itm)
{
- const LV2_Atom_Object *atom_object = data;
-
- const LV2_Atom *atom = NULL;
- LV2_Atom_Object_Query query [] = {
- { ui->uris.sherlock_event, &atom },
- LV2_ATOM_OBJECT_QUERY_END
- };
-
- lv2_atom_object_query(atom_object, query);
+ const LV2_Atom_Event *ev = data;
+ const LV2_Atom *atom = &ev->body;
if(atom)
_atom_expand(ui, atom, obj, itm);
@@ -616,7 +597,7 @@ instantiate(const LV2UI_Descriptor *descriptor, const char *plugin_uri,
//edje_frametime_set(0.04);
- if(strcmp(plugin_uri, SHERLOCK_ATOM_URI))
+ if(strcmp(plugin_uri, SHERLOCK_ATOM_INSPECTOR_URI))
return NULL;
UI *ui = calloc(1, sizeof(UI));
@@ -644,7 +625,7 @@ instantiate(const LV2UI_Descriptor *descriptor, const char *plugin_uri,
ui->unmap = (LV2_URID_Unmap *)features[i]->data;
}
- if(descriptor == &atom_ui)
+ if(descriptor == &atom_inspector_ui)
{
ui->ee = ecore_evas_gl_x11_new(NULL, (Ecore_X_Window)parent, 0, 0,
ui->w, ui->h);
@@ -661,7 +642,7 @@ instantiate(const LV2UI_Descriptor *descriptor, const char *plugin_uri,
evas_object_resize(ui->parent, ui->w, ui->h);
evas_object_show(ui->parent);
}
- else if(descriptor == &atom_eo)
+ else if(descriptor == &atom_inspector_eo)
{
ui->ee = NULL;
ui->parent = (Evas_Object *)parent;
@@ -737,10 +718,7 @@ instantiate(const LV2UI_Descriptor *descriptor, const char *plugin_uri,
ui->uris.midi_MidiEvent = ui->map->map(ui->map->handle, LV2_MIDI__MidiEvent);
ui->uris.osc_OscEvent = ui->map->map(ui->map->handle, LV2_OSC__OscEvent);
- ui->uris.event_transfer = ui->map->map(ui->map->handle, LV2_ATOM__eventTransfer);
- ui->uris.sherlock_object = ui->map->map(ui->map->handle, SHERLOCK_OBJECT_URI);
- ui->uris.sherlock_frametime = ui->map->map(ui->map->handle, SHERLOCK_FRAMETIME_URI);
- ui->uris.sherlock_event = ui->map->map(ui->map->handle, SHERLOCK_EVENT_URI);
+ ui->uris.atom_transfer = ui->map->map(ui->map->handle, LV2_ATOM__atomTransfer);
lv2_atom_forge_init(&ui->forge, ui->map);
@@ -781,35 +759,30 @@ port_event(LV2UI_Handle handle, uint32_t i, uint32_t size, uint32_t urid,
{
UI *ui = handle;
- if( (i == 2) && (urid == ui->uris.event_transfer) )
+ if( (i == 0) && (urid == ui->uris.atom_transfer) )
{
Elm_Object_Item *itm;
- void *ev;
-
- ev = malloc(size);
- memcpy(ev, buf, size);
-
- const LV2_Atom_Object *atom_object = buf;
- const LV2_Atom *atom = NULL;
- LV2_Atom_Object_Query query [] = {
- { ui->uris.sherlock_event, &atom },
- LV2_ATOM_OBJECT_QUERY_END
- };
+ const LV2_Atom_Sequence *seq = buf;
- lv2_atom_object_query(atom_object, query);
+ LV2_ATOM_SEQUENCE_FOREACH(seq, elmnt)
+ {
+ size_t len = sizeof(LV2_Atom_Event) + elmnt->body.size;
+ LV2_Atom_Event *ev = malloc(len);
+ memcpy(ev, elmnt, len);
+
+ /* TODO would be correct
+ const LV2_Atom *atom = &elmnt->body;
+ Elm_Genlist_Item_Type type = _is_expandable(ui, atom->type)
+ ? ELM_GENLIST_ITEM_TREE
+ : ELM_GENLIST_ITEM_NONE;
+ */
+ Elm_Genlist_Item_Type type = ELM_GENLIST_ITEM_TREE; // TODO looks nicer
- /* TODO would be correct
- Elm_Genlist_Item_Type type = _is_expandable(ui, atom->type)
- ? ELM_GENLIST_ITEM_TREE
- : ELM_GENLIST_ITEM_NONE;
- */
- Elm_Genlist_Item_Type type = ELM_GENLIST_ITEM_TREE; // TODO looks nicer
- itm = elm_genlist_item_append(ui->list, ui->itc_sherlock, ev, NULL,
- type, NULL, NULL);
- //elm_genlist_item_show(itm, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
- //elm_genlist_item_bring_in(itm, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ itm = elm_genlist_item_append(ui->list, ui->itc_sherlock, ev, NULL,
+ type, NULL, NULL);
+ }
}
}
@@ -824,16 +797,16 @@ extension_data(const char *uri)
return NULL;
}
-const LV2UI_Descriptor atom_ui = {
- .URI = SHERLOCK_ATOM_UI_URI,
+const LV2UI_Descriptor atom_inspector_ui = {
+ .URI = SHERLOCK_ATOM_INSPECTOR_UI_URI,
.instantiate = instantiate,
.cleanup = cleanup,
.port_event = port_event,
.extension_data = extension_data
};
-const LV2UI_Descriptor atom_eo = {
- .URI = SHERLOCK_ATOM_EO_URI,
+const LV2UI_Descriptor atom_inspector_eo = {
+ .URI = SHERLOCK_ATOM_INSPECTOR_EO_URI,
.instantiate = instantiate,
.cleanup = cleanup,
.port_event = port_event,
diff --git a/manifest.ttl.in b/manifest.ttl.in
index 84485fb..7cfae03 100644
--- a/manifest.ttl.in
+++ b/manifest.ttl.in
@@ -19,19 +19,19 @@
@prefix sherlock: <http://open-music-kontrollers.ch/lv2/sherlock#> .
-sherlock:atom
+sherlock:atom_inspector
a lv2:Plugin ;
lv2:binary <sherlock@LIB_EXT@> ;
- ui:ui sherlock:atom_ui ;
- ui:ui sherlock:atom_eo ;
+ ui:ui sherlock:atom_inspector_ui ;
+ ui:ui sherlock:atom_inspector_eo ;
rdfs:seeAlso <sherlock.ttl> .
-sherlock:atom_ui
+sherlock:atom_inspector_ui
a ui:X11UI ;
ui:binary <sherlock_ui@LIB_EXT@> ;
rdfs:seeAlso <sherlock.ttl> .
-sherlock:atom_eo
+sherlock:atom_inspector_eo
a ui:EoUI ;
ui:binary <sherlock_ui@LIB_EXT@> ;
rdfs:seeAlso <sherlock.ttl> .
diff --git a/sherlock.c b/sherlock.c
index b1e0636..3c6bc69 100644
--- a/sherlock.c
+++ b/sherlock.c
@@ -23,7 +23,7 @@ lv2_descriptor(uint32_t index)
switch(index)
{
case 0:
- return &atom;
+ return &atom_inspector;
default:
return NULL;
}
diff --git a/sherlock.h b/sherlock.h
index c9eb266..5257fd2 100644
--- a/sherlock.h
+++ b/sherlock.h
@@ -21,28 +21,26 @@
#include <stdint.h>
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
-#include "lv2/lv2plug.in/ns/ext/atom/util.h"
#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
#include "lv2/lv2plug.in/ns/ext/midi/midi.h"
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
-#include "lv2/lv2plug.in/ns/ext/state/state.h"
#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"
#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-#define LV2_OSC__OscEvent "http://opensoundcontrol.org#OscEvent"
+#define LV2_OSC__OscEvent "http://opensoundcontrol.org#OscEvent"
-#define SHERLOCK_URI "http://open-music-kontrollers.ch/lv2/sherlock"
+#define SHERLOCK_URI "http://open-music-kontrollers.ch/lv2/sherlock"
-#define SHERLOCK_OBJECT_URI SHERLOCK_URI"#object"
-#define SHERLOCK_EVENT_URI SHERLOCK_URI"#frametime"
-#define SHERLOCK_FRAMETIME_URI SHERLOCK_URI"#event"
+#define SHERLOCK_OBJECT_URI SHERLOCK_URI"#object"
+#define SHERLOCK_EVENT_URI SHERLOCK_URI"#frametime"
+#define SHERLOCK_FRAMETIME_URI SHERLOCK_URI"#event"
-#define SHERLOCK_ATOM_URI SHERLOCK_URI"#atom"
-#define SHERLOCK_ATOM_UI_URI SHERLOCK_URI"#atom_ui"
-#define SHERLOCK_ATOM_EO_URI SHERLOCK_URI"#atom_eo"
+#define SHERLOCK_ATOM_INSPECTOR_URI SHERLOCK_URI"#atom_inspector"
+#define SHERLOCK_ATOM_INSPECTOR_UI_URI SHERLOCK_URI"#atom_inspector_ui"
+#define SHERLOCK_ATOM_INSPECTOR_EO_URI SHERLOCK_URI"#atom_inspector_eo"
-const LV2_Descriptor atom;
-const LV2UI_Descriptor atom_ui;
-const LV2UI_Descriptor atom_eo;
+extern const LV2_Descriptor atom_inspector;
+extern const LV2UI_Descriptor atom_inspector_ui;
+extern const LV2UI_Descriptor atom_inspector_eo;
#endif // _SHERLOCK_LV2_H
diff --git a/sherlock.ttl b/sherlock.ttl
index 4f641a6..1890b30 100644
--- a/sherlock.ttl
+++ b/sherlock.ttl
@@ -44,27 +44,27 @@ proj:sherlock
doap:name "Sherlock Bundle" .
# Atom Inspector UI
-sherlock:atom_ui
+sherlock:atom_inspector_ui
a ui:X11UI ;
ui:portNotification [
- ui:plugin sherlock:atom ;
- lv2:symbol "notify" ;
- ui:protocol atom:eventTransfer ;
+ ui:plugin sherlock:atom_inspector ;
+ lv2:symbol "control_in" ;
+ ui:protocol atom:atomTransfer ;
] ;
lv2:requiredFeature ui:idleInterface ;
lv2:optionalFeature ui:noUserResize ;
lv2:extensionData ui:idleInterface, ui:showInterface .
-sherlock:atom_eo
+sherlock:atom_inspector_eo
a ui:EoUI ;
ui:portNotification [
- ui:plugin sherlock:atom ;
- lv2:symbol "notify" ;
- ui:protocol atom:eventTransfer ;
+ ui:plugin sherlock:atom_inspector ;
+ lv2:symbol "control_in" ;
+ ui:protocol atom:atomTransfer ;
] .
# Atom Inspector Plugin
-sherlock:atom
+sherlock:atom_inspector
a lv2:Plugin,
lv2:AnalyserPlugin ;
doap:name "Sherlock Atom Inspector" ;
@@ -77,39 +77,8 @@ sherlock:atom
a lv2:InputPort ,
atom:AtomPort ;
atom:bufferType atom:Sequence ;
- atom:supports atom:Blank ;
- atom:supports atom:Object ;
- atom:supports time:Position ;
- atom:supports midi:MidiEvent ;
- atom:supports osc:OscEvent ;
- atom:supports chim:Event ;
- atom:supports chim:Dump ;
lv2:designation lv2:control ;
lv2:index 0 ;
lv2:symbol "control_in" ;
lv2:name "Control In" ;
- ] , [
- # output event port
- a lv2:OutputPort ,
- atom:AtomPort ;
- atom:bufferType atom:Sequence ;
- atom:supports atom:Blank ;
- atom:supports atom:Object ;
- atom:supports time:Position ;
- atom:supports midi:MidiEvent ;
- atom:supports osc:OscEvent ;
- atom:supports chim:Event ;
- atom:supports chim:Dump ;
- lv2:designation lv2:control ;
- lv2:index 1 ;
- lv2:symbol "control_out" ;
- lv2:name "Control Out" ;
- ] , [
- # notify output port
- a lv2:OutputPort ,
- atom:AtomPort ;
- atom:bufferType atom:Sequence ;
- lv2:index 2 ;
- lv2:symbol "notify" ;
- lv2:name "Notify" ;
] .
diff --git a/sherlock_ui.c b/sherlock_ui.c
index 6c2f159..3fb8046 100644
--- a/sherlock_ui.c
+++ b/sherlock_ui.c
@@ -23,9 +23,9 @@ lv2ui_descriptor(uint32_t index)
switch(index)
{
case 0:
- return &atom_ui;
+ return &atom_inspector_ui;
case 1:
- return &atom_eo;
+ return &atom_inspector_eo;
default:
return NULL;
}