aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv_internal.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-05-30 23:19:28 +0000
committerDavid Robillard <d@drobilla.net>2011-05-30 23:19:28 +0000
commite8103f203c62daf7fb269a35e4fc0c92b7b16fe2 (patch)
treeb087d65fc3ee9ba6d8b656960f3a9d196f07ffdf /src/jalv_internal.h
downloadjalv-e8103f203c62daf7fb269a35e4fc0c92b7b16fe2.tar.gz
jalv-e8103f203c62daf7fb269a35e4fc0c92b7b16fe2.tar.bz2
jalv-e8103f203c62daf7fb269a35e4fc0c92b7b16fe2.zip
Add "Jalv", a stand-alone version of lv2jack that supports plugin UIs via Suil
git-svn-id: http://svn.drobilla.net/lad/trunk/jalv@3344 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/jalv_internal.h')
-rw-r--r--src/jalv_internal.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/jalv_internal.h b/src/jalv_internal.h
new file mode 100644
index 0000000..f4dc6d4
--- /dev/null
+++ b/src/jalv_internal.h
@@ -0,0 +1,64 @@
+/*
+ Copyright 2007-2011 David Robillard <http://drobilla.net>
+
+ 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 JALV_INTERNAL_H
+#define JALV_INTERNAL_H
+
+#include <semaphore.h>
+
+#include <jack/jack.h>
+
+#include "lilv/lilv.h"
+
+#include "suil/suil.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ LilvWorld* world; /**< Lilv World */
+ jack_client_t* jack_client; /**< Jack client */
+ sem_t* done; /**< Exit semaphore */
+ const LilvPlugin* plugin; /**< Plugin class (RDF data) */
+ LilvInstance* instance; /**< Plugin instance (shared library) */
+ uint32_t num_ports; /**< Size of the two following arrays: */
+ struct Port* ports; /**< Port array of size num_ports */
+ LilvNode* input_class; /**< Input port class (URI) */
+ LilvNode* output_class; /**< Output port class (URI) */
+ LilvNode* control_class; /**< Control port class (URI) */
+ LilvNode* audio_class; /**< Audio port class (URI) */
+ LilvNode* event_class; /**< Event port class (URI) */
+ LilvNode* midi_class; /**< MIDI event class (URI) */
+ LilvNode* optional; /**< lv2:connectionOptional port property */
+} Jalv;
+
+void
+jalv_init(int* argc, char*** argv);
+
+LilvNode*
+jalv_native_ui_type(Jalv* jalv);
+
+int
+jalv_open_ui(Jalv* jalv,
+ SuilInstance* instance);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // JALV_INTERNAL_H