From 735173b0f47f362896594deab1a3b76ac3f7081f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 8 Feb 2007 03:56:42 +0000 Subject: Circular nodes in FlowCanvas, related necessary redesign work and changes for API update. Beginnings of a Machina GUI. git-svn-id: http://svn.drobilla.net/lad/slv2@290 a436a847-0d15-0410-975c-d299462d15a1 --- data/lv2.ttl | 118 ++++++++++++++++++----------------------------------------- slv2/lv2.h | 24 ++++++------ 2 files changed, 48 insertions(+), 94 deletions(-) diff --git a/data/lv2.ttl b/data/lv2.ttl index 6f02475..7c2d06f 100644 --- a/data/lv2.ttl +++ b/data/lv2.ttl @@ -1,7 +1,7 @@ # RDF Schema for LV2 plugins # *** PROVISIONAL *** # -# Revision 2007-02-06 +# *** PROPOSED Revision 2007-02-07 *** # # This document describes the classes and properties that are defined by the # core LV2 specification. See for more information. @@ -52,7 +52,7 @@ ] , [ a foaf:Person ; foaf:name "Dave Robillard" ; - rdfs:seeAlso + rdfs:seeAlso ]. @@ -82,74 +82,57 @@ To be used by a host a Plugin must have at least the following properties: :Port a rdfs:Class ; rdfs:label "Port" ; rdfs:comment """ -The class that represents an LV2 port +The class which represents an LV2 port. In order for it to be used by a host it must have at least the following properties: - rdf:type (where object is exactly one of - :ControlRateInputPort, :ControlRateOutputPort, - :AudioRateInputPort, :AudioRateOutputPort) - :dataType + rdf:type (with object one of :Port, :InputPort, :OutputPort) + rdf:type (more specific port class, see below) :index :symbol :name + +All LV2 port descriptions MUST have a property rdf:type where the object +is one of :Port :InputPort or :OutputPort. Additionally there MUST be +at least one other rdf:type property which more specifically describes +type of the port (e.g. :AudioPort). + +Hosts that do not support a specific port class MUST NOT instantiate the +plugin, unless that port has the connectionOptional hint set (in which case +the host can simply "connect" that port to NULL). """ . :InputPort a rdfs:Class ; - rdfs:subClassOf :Port . + rdfs:label "Input port" ; + rdfs:subClassOf :Port ; + rdfs:comment """ +Ports of this type will be connected to a pointer to some value, which will +be read by the plugin during their run method. +""" . :OutputPort a rdfs:Class ; - rdfs:subClassOf :Port . - -:ControlRatePort a rdfs:Class ; - rdfs:subClassOf :Port . - -:AudioRatePort a rdfs:Class ; - rdfs:subClassOf :Port . - -:ControlRateInputPort a rdfs:Class ; - rdfs:label "Control-rate input port" ; - rdfs:subClassOf :ControlRatePort ; - rdfs:subClassOf :InputPort ; - rdfs:comment """ -Ports of this type will be connected to a pointer to a single value of the type -defined by the :dataType property. - -Plugins will read values from this pointer during their run method. + rdfs:label "Output port" ; + rdfs:subClassOf :Port ; + rdfs:comment """ +Ports of this type will be connected to a pointer to some value, which will +be written to by the plugin during their run method. """ . -:ControlRateOutputPort a rdfs:Class ; - rdfs:label "Control-rate output port" ; - rdfs:subClassOf :ControlRatePort ; - rdfs:subClassOf :OutputPort ; +:ControlPort a rdfs:Class ; + rdfs:label "Control port" ; + rdfs:subClassOf :Port ; rdfs:comment """ -Ports of this type will be connected to a pointer to a single value of the type -defined by the :dataType property. - -Plugins will write values to this pointer during their run method. +Ports of this type will be connected to a pointer to a single value conforming +to the 32bit IEEE-754 floating point specification. """ . -:AudioRateInputPort a rdfs:Class ; - rdfs:label "Audio-rate input port" ; - rdfs:subClassOf :AudioRatePort ; - rdfs:subClassOf :InputPort ; +:AudioPort a rdfs:Class ; + rdfs:label "Audio port" ; + rdfs:subClassOf :Port ; rdfs:comment """ -Ports of this type will be connected to an array of values of length -SampleCount and of the type defined by the :dataType property. - -Plugins will read values from this array during their run method. -""" . - -:AudioRateOutputPort a rdfs:Class ; - rdfs:label "Audio-rate output port" ; - rdfs:subClassOf :AudioRatePort ; - rdfs:subClassOf :OutputPort ; - rdfs:comment """ -Ports of this type will be connected to an array of values of length -SampleCount and of the type defined by the :dataType property. - -Plugins will write values to this array during their run method. -""" . +Ports of this type will be connected to an array of length SampleCount +conforming to the 32bit IEEE-754 floating point specification, +representing an audio waveform (i.e. suitable for speaker playback). """ . @@ -168,24 +151,6 @@ Plugins will write values to this array during their run method. # Mandatory Port RDF:Properties # ################################# -:DataType a rdfs:Class ; - rdfs:comment "A data type that can be stored in an LV2 port." . - -:dataType a rdf:Property ; - rdfs:domain :Port ; - rdfs:range :DataType ; - rdfs:label "Port Data type" ; - rdfs:comment """ -Relates a Port to the data type(s) it can accept. Hosts that do not support -a specified datatype MUST NOT instantiate the plugin, unless that port has -the connectionOptional hint set (in which case the host can simply "connect" -that port to NULL). - -If multiple datatypes are specified the plugin must have some way to distinguish -the values (any extension that defines a new data-type which wishes to allow -this must deal with this issue somehow). -""" . - :index a rdf:Property ; rdfs:domain :Port ; rdfs:range xsd:nonNegativeInteger ; @@ -275,17 +240,6 @@ values in the range of :float. -############# -# Data Type # -############# - -:float a :DataType ; - rdfs:label "32-bit floating point" ; - rdfs:comment """ -Value conforming to the 32bit IEEE-754 floating point specification.""". - - - ################### ## Host Features ## ################### diff --git a/slv2/lv2.h b/slv2/lv2.h index 84839c4..00b2173 100644 --- a/slv2/lv2.h +++ b/slv2/lv2.h @@ -1,9 +1,9 @@ /* LV2 - LADSPA (Linux Audio Developer's Simple Plugin API) Version 2.0 * *** PROVISIONAL *** * - * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan - * Westerfeld - * Copyright (C) 2006 Steve Harris, Dave Robillard. + * Copyright (C) 2000-2002 Richard W.E. Furse, Paul Barton-Davis, + * Stefan Westerfeld + * Copyright (C) 2006-2007 Steve Harris, Dave Robillard. * * This header is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published @@ -193,10 +193,10 @@ typedef struct _LV2_Descriptor { * Note that instance initialisation should generally occur in * activate() rather than here. If a host calls instantiate, it MUST * call cleanup() at some point in the future. */ - LV2_Handle (*instantiate)(const struct _LV2_Descriptor * Descriptor, - uint32_t SampleRate, - const char * BundlePath, - const LV2_Host_Feature** HostFeatures); + LV2_Handle (*instantiate)(const struct _LV2_Descriptor * Descriptor, + uint32_t SampleRate, + const char * BundlePath, + const LV2_Host_Feature *const * HostFeatures); /** Function pointer that connects a port on a plugin instance to a memory * location where the block of data for the port will be read/written. @@ -228,9 +228,9 @@ typedef struct _LV2_Descriptor { * If the plugin has the property lv2:hardRTCapable then there are * various things that the plugin MUST NOT do within the connect_port() * function (see lv2.ttl). */ - void (*connect_port)(LV2_Handle Instance, - uint32_t Port, - void * DataLocation); + void (*connect_port)(LV2_Handle Instance, + uint32_t Port, + void * DataLocation); /** Function pointer that initialises a plugin instance and activates * it for use. @@ -270,8 +270,8 @@ typedef struct _LV2_Descriptor { * If the plugin has the property lv2:hardRTCapable then there are * various things that the plugin MUST NOT do within the run() * function (see lv2.ttl). */ - void (*run)(LV2_Handle Instance, - uint32_t SampleCount); + void (*run)(LV2_Handle Instance, + uint32_t SampleCount); /** This is the counterpart to activate() (see above). If there is * nothing for deactivate() to do then the plugin writer may provide -- cgit v1.2.1