From 63c4cafd5e29aa81c370d0308b81409c2794d031 Mon Sep 17 00:00:00 2001 From: Stefano D'Angelo Date: Tue, 9 Jan 2024 15:57:43 +0100 Subject: [PATCH] lv2 units and maker data --- templates/lv2/data/manifest.ttl | 9 +++++++++ templates/lv2/tibia-index.js | 31 ++++++++++++++++++++++++++++++- test/product.json | 3 ++- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/templates/lv2/data/manifest.ttl b/templates/lv2/data/manifest.ttl index b489708..94acc96 100644 --- a/templates/lv2/data/manifest.ttl +++ b/templates/lv2/data/manifest.ttl @@ -12,6 +12,12 @@ {{?}} lv2:binary <{{=it.product.bundleName}}.so> ; 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]}} ; lv2:optionalFeature lv2:hardRTCapable ; @@ -65,6 +71,9 @@ {{?}} {{?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}} diff --git a/templates/lv2/tibia-index.js b/templates/lv2/tibia-index.js index b1fae05..548bb51 100644 --- a/templates/lv2/tibia-index.js +++ b/templates/lv2/tibia-index.js @@ -5,9 +5,11 @@ module.exports = function (data, api) { data.tibia.lv2 = { prefixes: [ { id: "doap", uri: "http://usefulinc.com/ns/doap#" }, + { id: "foaf", uri: "http://xmlns.com/foaf/0.1/" }, { id: "lv2", uri: "http://lv2plug.in/ns/lv2core#" }, { id: "rdf", uri: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" }, - { id: "rdfs", uri: "http://www.w3.org/2000/01/rdf-schema#" } + { id: "rdfs", uri: "http://www.w3.org/2000/01/rdf-schema#" }, + { id: "units", uri: "http://lv2plug.in/ns/extensions/units#" } ], ports: [], @@ -48,6 +50,33 @@ module.exports = function (data, api) { data.tibia.lv2.ports.sort((a, b) => a.type != b.type ? (a.type == "audio" ? -1 : 1) : (a.direction != b.direction ? (a.direction == "input" ? -1 : 1) : 0)); + data.tibia.lv2.units = { + "bar": "@units:bar", + "beat": "@units:beat", + "bpm": "@units:bpm", + "cent": "@units:cent", + "cm": "@units:cm", + "coef": "@units:coef", + "db": "@units:db", + "degree": "@units:degree", + "frame": "@units:frame", + "hz": "@units:hz", + "inch": "@units:inch", + "khz": "@units:khz", + "km": "@units:km", + "m": "@units:m", + "mhz": "@units:mhz", + "midiNote": "@units:midiNote", + "mile": "@units:mile", + "min": "@units:min", + "mm": "@units:mm", + "ms": "@units:ms", + "oct": "@units:oct", + "pc": "@units:pc", + "s": "@units:s", + "semitone12TET": "@units:semitone12TET" + }; + api.generateFileFromTemplateFile(`data${sep}manifest.ttl`, `data${sep}manifest.ttl`, data); api.copyFile(`src${sep}lv2.c`, `src${sep}lv2.c`); api.generateFileFromTemplateFile(`src${sep}data.h`, `src${sep}data.h`, data); diff --git a/test/product.json b/test/product.json index c4b6100..1caef84 100644 --- a/test/product.json +++ b/test/product.json @@ -46,7 +46,8 @@ "Max": 12.0, "Min": -60.0 }, - "list": false + "list": false, + "unit": "db" }, { "name": "Bypass",