tibia/templates/lv2/data/manifest.ttl.in
Stefano D'Angelo e2d244f4e7 lv2 ui resize
2024-05-10 12:04:04 +02:00

141 lines
3.6 KiB
Turtle

{{~it.tibia.lv2.prefixes :p}}
@prefix {{=p.id}}: <{{=p.uri}}> .
{{~}}
{{=it.tibia.lv2.ttlURI(it.lv2.uri)}}
a lv2:Plugin ;
{{~it.lv2.types :t}}
a {{=it.tibia.lv2.ttlURI(t)}} ;
{{~}}
{{?it.lv2.project}}
lv2:project {{=it.tibia.lv2.ttlURI(it.lv2.project)}} ;
{{?}}
lv2:binary <{{=it.product.bundleName}}@DLL_SUFFIX@> ;
doap:name "{{=it.product.name}}" ;
doap:maintainer [
a foaf:Organization ;
foaf:name "{{=it.company.name}}" ;
foaf:mbox "{{=it.company.email}}" ;
rdfs:seeAlso {{=it.tibia.lv2.ttlURI(it.company.url)}}
] ;
lv2:minorVersion {{=/^([0-9]+)\./.exec(it.lv2.version)[1]}} ;
lv2:microVersion {{=/^[0-9]+\.([0-9]+)/.exec(it.lv2.version)[1]}} ;
{{?it.tibia.lv2.ports.find(p => p.type == "midi")}}
lv2:requiredFeature urid:map ;
lv2:optionalFeature log:log ;
{{?}}
lv2:optionalFeature lv2:hardRTCapable ;
{{?it.lv2.ui}}
ui:ui {{=it.tibia.lv2.ttlURI(it.lv2.ui.uri)}} ;
{{?}}
lv2:port [
{{~it.tibia.lv2.ports :p:i}}
{{?p.isBypass}}
a lv2:ControlPort ,
lv2:InputPort ;
lv2:designation lv2:enabled ;
lv2:name "Enabled" ;
lv2:shortName "Enabled" ;
lv2:symbol "{{=p.symbol}}" ;
lv2:default 1 ;
lv2:minimum 0 ;
lv2:maximum 1 ;
lv2:portProperty lv2:toggled ;
lv2:portProperty lv2:connectionOptional ;
lv2:portProperty lv2:integer ;
lv2:scalePoint [
rdfs:label "Off" ;
rdf:value 0
] , [
rdfs:label "On" ;
rdf:value 1
] ;
{{??p.isLatency}}
a lv2:ControlPort ,
lv2:OutputPort ;
lv2:designation lv2:latency ;
lv2:name "Latency" ;
lv2:shortName "Latency" ;
lv2:symbol "{{=p.symbol}}" ;
lv2:portProperty lv2:connectionOptional ;
lv2:portProperty lv2:integer ;
lv2:portProperty lv2:reportsLatency ;
{{??}}
a {{?p.type == "control"}}lv2:ControlPort{{??p.type == "midi"}}atom:AtomPort{{??}}{{?p.cv}}lv2:CVPort{{??}}lv2:AudioPort{{?}}{{?}} ,
{{?p.direction == "input"}}lv2:InputPort{{??}}lv2:OutputPort{{?}} ;
lv2:name "{{=p.name}}" ;
{{?"shortName" in p}}
lv2:shortName "{{=p.shortName.substring(0, 16)}}" ;
{{?}}
lv2:symbol "{{=p.symbol}}" ;
{{?p.type == "control"}}
lv2:minimum {{=p.minimum.toExponential()}} ;
lv2:maximum {{=p.maximum.toExponential()}} ;
lv2:default {{=p.defaultValue.toExponential()}} ;
{{??p.type == "midi"}}
atom:bufferType atom:Sequence ;
atom:supports midi:MidiEvent ;
{{?}}
{{?p.sidechain}}
lv2:portProperty lv2:isSideChain ;
{{?}}
{{?p.control}}
lv2:designation lv2:control ;
{{?}}
{{?p.toggled}}
lv2:portProperty lv2:toggled ;
{{?}}
{{?p.optional}}
lv2:portProperty lv2:connectionOptional ;
{{?}}
{{?p.integer}}
lv2:portProperty lv2:integer ;
{{?}}
{{?p.map == "logarithmic"}}
lv2:portProperty pprops:logarithmic ;
{{?}}
{{?p.scalePoints}}
lv2:scalePoint [
{{~Object.entries(p.scalePoints) :sp:j}}
rdfs:label "{{=sp[0]}}" ;
rdf:value {{=sp[1].toExponential()}}
{{?j < Object.entries(p.scalePoints).length - 1}}
] , [
{{??}}
] ;
{{?}}
{{~}}
{{?}}
{{?p.list}}
lv2:portProperty lv2:enumeration ;
{{?}}
{{?p.unit && p.unit in it.tibia.lv2.units}}
units:unit {{=it.tibia.lv2.ttlURI(it.tibia.lv2.units[p.unit])}} ;
{{?}}
{{?}}
lv2:index {{=i}}
{{?i < it.tibia.lv2.ports.length - 1}}
] , [
{{??}}
] .
{{?}}
{{~}}
{{?it.lv2.ui}}
{{=it.tibia.lv2.ttlURI(it.lv2.ui.uri)}}
a ui:@UI_TYPE@ ;
ui:binary <{{=it.product.bundleName}}@DLL_SUFFIX@> ;
lv2:extensionData ui:resize ;
{{?!it.product.ui.userResizable}}
lv2:optionalFeature ui:noUserResize ; # doesn't work as lv2:requiredFeature, don't ask me why
{{?!it.product.ui.selfResizable}}
lv2:optionalFeature ui:fixedSize ;
{{?}}
{{?}}
{{?it.product.ui.selfResizable}}
lv2:optionalFeature ui:resize ;
{{?}}
lv2:requiredFeature ui:idleInterface ;
lv2:extensionData ui:idleInterface .
{{?}}