@prefix atom:    <http://lv2plug.in/ns/ext/atom#> .
@prefix bufsz:   <http://lv2plug.in/ns/ext/buf-size#> .
@prefix doap:    <http://usefulinc.com/ns/doap#> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix lv2:     <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ui:      <http://lv2plug.in/ns/extensions/ui#> .
@prefix urid:    <http://lv2plug.in/ns/ext/urid#> .
@prefix rsz:     <http://lv2plug.in/ns/ext/resize-port#> .
@prefix state:   <http://lv2plug.in/ns/ext/state#> .
@prefix egscope: <http://lv2plug.in/plugins/eg-scope#> .

<http://gareus.org/rgareus#me>
	a foaf:Person ;
	foaf:name "Robin Gareus" ;
	foaf:mbox <mailto:robin@gareus.org> ;
	foaf:homepage <http://gareus.org/> .

<http://lv2plug.in/plugins/eg-scope>
	a doap:Project ;
	doap:maintainer <http://gareus.org/rgareus#me> ;
	doap:name "Example Scope" .

egscope:Mono
	a lv2:Plugin, lv2:AnalyserPlugin ;
	doap:name "Example Scope (Mono)" ;
	lv2:project <http://lv2plug.in/plugins/eg-scope> ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:requiredFeature urid:map ;
	lv2:optionalFeature lv2:hardRTCapable ;
	lv2:extensionData state:interface ;
	ui:ui egscope:ui ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
		# 8192 * sizeof(float) + LV2-Atoms
		rsz:minimumSize 32832;
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 2 ;
		lv2:symbol "in" ;
		lv2:name "In"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 3 ;
		lv2:symbol "out" ;
		lv2:name "Out"
	] .


egscope:Stereo
	a lv2:Plugin, lv2:AnalyserPlugin ;
	doap:name "Example Scope (Stereo)" ;
	lv2:project <http://lv2plug.in/plugins/eg-scope> ;
	doap:license <http://usefulinc.com/doap/licenses/gpl> ;
	lv2:requiredFeature urid:map ;
	lv2:optionalFeature lv2:hardRTCapable ;
	lv2:extensionData state:interface ;
	ui:ui egscope:ui ;
	lv2:port [
		a atom:AtomPort ,
			lv2:InputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 0 ;
		lv2:symbol "control" ;
		lv2:name "Control"
	] , [
		a atom:AtomPort ,
			lv2:OutputPort ;
		atom:bufferType atom:Sequence ;
		lv2:designation lv2:control ;
		lv2:index 1 ;
		lv2:symbol "notify" ;
		lv2:name "Notify" ;
		rsz:minimumSize 65664;
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 2 ;
		lv2:symbol "in0" ;
		lv2:name "InL"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 3 ;
		lv2:symbol "out0" ;
		lv2:name "OutL"
	] , [
		a lv2:AudioPort ,
			lv2:InputPort ;
		lv2:index 4 ;
		lv2:symbol "in1" ;
		lv2:name "InR"
	] , [
		a lv2:AudioPort ,
			lv2:OutputPort ;
		lv2:index 5 ;
		lv2:symbol "out1" ;
		lv2:name "OutR"
	] .


egscope:ui
	a ui:GtkUI ;
	lv2:requiredFeature urid:map ;
	ui:portNotification [
		ui:plugin egscope:Mono ;
		lv2:symbol "notify" ;
		ui:notifyType atom:Blank
	] , [
		ui:plugin egscope:Stereo ;
		lv2:symbol "notify" ;
		ui:notifyType atom:Blank
	] .
