aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-format3
-rw-r--r--.clang-tidy29
-rw-r--r--.gitignore8
-rw-r--r--.gitlab-ci.yml164
-rw-r--r--.reuse/dep572
-rw-r--r--COPYING18
-rw-r--r--INSTALL.md7
-rw-r--r--LICENSES/0BSD.txt12
-rw-r--r--LICENSES/Apache-2.0.txt201
-rw-r--r--LICENSES/CC-BY-1.0.txt221
-rw-r--r--LICENSES/CC-BY-4.0.txt395
l---------LICENSES/ISC.txt1
-rw-r--r--LICENSES/MIT.txt17
-rw-r--r--LICENSES/W3C-19980720.txt45
-rw-r--r--LICENSES/W3C-20150513.txt40
-rw-r--r--NEWS277
-rw-r--r--README.md17
-rw-r--r--doc/c/doxy-style.css4
-rw-r--r--doc/c/meson.build6
-rw-r--r--doc/c/reference.doxygen.in58
-rw-r--r--doc/index.html.in1
-rw-r--r--doc/ns/ext/meson.build3
-rw-r--r--doc/ns/extensions/meson.build3
-rw-r--r--doc/ns/meson.build11
-rw-r--r--doc/style/meson.build7
-rw-r--r--include/lv2/atom/atom.h31
-rw-r--r--include/lv2/atom/forge.h39
-rw-r--r--include/lv2/atom/util.h68
-rw-r--r--include/lv2/buf-size/buf-size.h23
-rw-r--r--include/lv2/core/attributes.h19
-rw-r--r--include/lv2/core/lv2.h41
-rw-r--r--include/lv2/core/lv2_util.h30
-rw-r--r--include/lv2/data-access/data-access.h23
-rw-r--r--include/lv2/dynmanifest/dynmanifest.h28
-rw-r--r--include/lv2/event/event-helpers.h23
-rw-r--r--include/lv2/event/event.h25
-rw-r--r--include/lv2/instance-access/instance-access.h23
-rw-r--r--include/lv2/log/log.h23
-rw-r--r--include/lv2/log/logger.h31
-rw-r--r--include/lv2/midi/midi.h27
-rw-r--r--include/lv2/morph/morph.h23
-rw-r--r--include/lv2/options/options.h33
-rw-r--r--include/lv2/parameters/parameters.h23
-rw-r--r--include/lv2/patch/patch.h23
-rw-r--r--include/lv2/port-groups/port-groups.h23
-rw-r--r--include/lv2/port-props/port-props.h23
-rw-r--r--include/lv2/presets/presets.h23
-rw-r--r--include/lv2/resize-port/resize-port.h23
-rw-r--r--include/lv2/state/state.h31
-rw-r--r--include/lv2/time/time.h23
-rw-r--r--include/lv2/ui/ui.h26
-rw-r--r--include/lv2/units/units.h23
-rw-r--r--include/lv2/uri-map/uri-map.h23
-rw-r--r--include/lv2/urid/urid.h25
-rw-r--r--include/lv2/worker/worker.h23
-rw-r--r--lv2/atom.lv2/atom.meta.ttl103
-rw-r--r--lv2/atom.lv2/atom.ttl1
-rw-r--r--lv2/atom.lv2/manifest.ttl1
-rw-r--r--lv2/buf-size.lv2/buf-size.meta.ttl35
-rw-r--r--lv2/buf-size.lv2/buf-size.ttl1
-rw-r--r--lv2/buf-size.lv2/manifest.ttl1
-rw-r--r--lv2/core.lv2/lv2core.meta.ttl131
-rw-r--r--lv2/core.lv2/lv2core.ttl1
-rw-r--r--lv2/core.lv2/manifest.ttl1
-rw-r--r--lv2/core.lv2/meta.ttl230
-rw-r--r--lv2/core.lv2/people.ttl1
-rw-r--r--lv2/data-access.lv2/data-access.meta.ttl13
-rw-r--r--lv2/data-access.lv2/data-access.ttl1
-rw-r--r--lv2/data-access.lv2/manifest.ttl1
-rw-r--r--lv2/dynmanifest.lv2/dynmanifest.meta.ttl23
-rw-r--r--lv2/dynmanifest.lv2/dynmanifest.ttl1
-rw-r--r--lv2/dynmanifest.lv2/manifest.ttl1
-rw-r--r--lv2/event.lv2/event.meta.ttl59
-rw-r--r--lv2/event.lv2/event.ttl1
-rw-r--r--lv2/event.lv2/manifest.ttl1
-rw-r--r--lv2/instance-access.lv2/instance-access.meta.ttl13
-rw-r--r--lv2/instance-access.lv2/instance-access.ttl1
-rw-r--r--lv2/instance-access.lv2/manifest.ttl1
-rw-r--r--lv2/log.lv2/log.meta.ttl43
-rw-r--r--lv2/log.lv2/log.ttl1
-rw-r--r--lv2/log.lv2/manifest.ttl1
-rw-r--r--lv2/midi.lv2/manifest.ttl1
-rw-r--r--lv2/midi.lv2/midi.meta.ttl43
-rw-r--r--lv2/midi.lv2/midi.ttl1
-rw-r--r--lv2/morph.lv2/manifest.ttl1
-rw-r--r--lv2/morph.lv2/morph.meta.ttl13
-rw-r--r--lv2/morph.lv2/morph.ttl1
-rw-r--r--lv2/options.lv2/manifest.ttl1
-rw-r--r--lv2/options.lv2/options.meta.ttl33
-rw-r--r--lv2/options.lv2/options.ttl1
-rw-r--r--lv2/parameters.lv2/manifest.ttl1
-rw-r--r--lv2/parameters.lv2/parameters.meta.ttl37
-rw-r--r--lv2/parameters.lv2/parameters.ttl1
-rw-r--r--lv2/patch.lv2/manifest.ttl1
-rw-r--r--lv2/patch.lv2/patch.meta.ttl83
-rw-r--r--lv2/patch.lv2/patch.ttl1
-rw-r--r--lv2/port-groups.lv2/manifest.ttl1
-rw-r--r--lv2/port-groups.lv2/port-groups.meta.ttl37
-rw-r--r--lv2/port-groups.lv2/port-groups.ttl1
-rw-r--r--lv2/port-props.lv2/manifest.ttl1
-rw-r--r--lv2/port-props.lv2/port-props.meta.ttl23
-rw-r--r--lv2/port-props.lv2/port-props.ttl1
-rw-r--r--lv2/presets.lv2/manifest.ttl1
-rw-r--r--lv2/presets.lv2/presets.meta.ttl25
-rw-r--r--lv2/presets.lv2/presets.ttl1
-rw-r--r--lv2/resize-port.lv2/manifest.ttl1
-rw-r--r--lv2/resize-port.lv2/resize-port.meta.ttl13
-rw-r--r--lv2/resize-port.lv2/resize-port.ttl1
-rw-r--r--lv2/state.lv2/manifest.ttl1
-rw-r--r--lv2/state.lv2/state.meta.ttl85
-rw-r--r--lv2/state.lv2/state.ttl1
-rw-r--r--lv2/time.lv2/manifest.ttl1
-rw-r--r--lv2/time.lv2/time.meta.ttl43
-rw-r--r--lv2/time.lv2/time.ttl1
-rw-r--r--lv2/ui.lv2/manifest.ttl1
-rw-r--r--lv2/ui.lv2/ui.meta.ttl109
-rw-r--r--lv2/ui.lv2/ui.ttl1
-rw-r--r--lv2/units.lv2/manifest.ttl1
-rw-r--r--lv2/units.lv2/units.meta.ttl49
-rw-r--r--lv2/units.lv2/units.ttl1
-rw-r--r--lv2/uri-map.lv2/manifest.ttl1
-rw-r--r--lv2/uri-map.lv2/uri-map.meta.ttl13
-rw-r--r--lv2/uri-map.lv2/uri-map.ttl1
-rw-r--r--lv2/urid.lv2/manifest.ttl1
-rw-r--r--lv2/urid.lv2/urid.meta.ttl23
-rw-r--r--lv2/urid.lv2/urid.ttl1
-rw-r--r--lv2/worker.lv2/manifest.ttl1
-rw-r--r--lv2/worker.lv2/worker.meta.ttl23
-rw-r--r--lv2/worker.lv2/worker.ttl1
-rw-r--r--lv2specgen/DTD/xhtml-rdfa-1.dtd1
-rwxr-xr-xlv2specgen/lv2docgen.py17
-rwxr-xr-xlv2specgen/lv2specgen.py114
-rw-r--r--lv2specgen/meson.build7
-rw-r--r--lv2specgen/template.html9
-rw-r--r--meson.build95
-rw-r--r--meson/library/meson.build30
-rw-r--r--meson/suppressions/meson.build67
-rw-r--r--meson/warnings/meson.build256
-rw-r--r--meson_options.txt11
-rw-r--r--plugins/.clang-tidy14
-rw-r--r--plugins/eg-amp.lv2/amp.c19
-rw-r--r--plugins/eg-amp.lv2/meson.build4
-rw-r--r--plugins/eg-fifths.lv2/fifths.c18
-rw-r--r--plugins/eg-fifths.lv2/meson.build4
-rw-r--r--plugins/eg-fifths.lv2/uris.h20
-rw-r--r--plugins/eg-metro.lv2/meson.build4
-rw-r--r--plugins/eg-metro.lv2/metro.c18
-rw-r--r--plugins/eg-midigate.lv2/meson.build4
-rw-r--r--plugins/eg-midigate.lv2/midigate.c17
-rw-r--r--plugins/eg-params.lv2/meson.build4
-rw-r--r--plugins/eg-params.lv2/params.c18
-rw-r--r--plugins/eg-params.lv2/state_map.h20
-rw-r--r--plugins/eg-sampler.lv2/atom_sink.h17
-rw-r--r--plugins/eg-sampler.lv2/meson.build44
-rw-r--r--plugins/eg-sampler.lv2/peaks.h22
-rw-r--r--plugins/eg-sampler.lv2/sampler.c24
-rw-r--r--plugins/eg-sampler.lv2/sampler_ui.c18
-rw-r--r--plugins/eg-sampler.lv2/uris.h18
-rw-r--r--plugins/eg-scope.lv2/examploscope.c19
-rw-r--r--plugins/eg-scope.lv2/examploscope_ui.c17
-rw-r--r--plugins/eg-scope.lv2/meson.build25
-rw-r--r--plugins/eg-scope.lv2/uris.h17
-rw-r--r--plugins/meson.build6
-rw-r--r--schemas.lv2/README.txt (renamed from schemas.lv2/README)0
-rw-r--r--schemas.lv2/dcs.ttl67
-rw-r--r--schemas.lv2/dcterms.ttl1
-rw-r--r--schemas.lv2/doap.ttl1
-rw-r--r--schemas.lv2/foaf.ttl1
-rw-r--r--schemas.lv2/manifest.ttl5
-rw-r--r--schemas.lv2/meson.build3
-rw-r--r--schemas.lv2/owl.ttl1
-rw-r--r--schemas.lv2/rdf.ttl1
-rw-r--r--schemas.lv2/rdfs.ttl1
-rw-r--r--schemas.lv2/xsd.ttl31
-rwxr-xr-xscripts/lv2_build_index.py51
-rwxr-xr-xscripts/lv2_check_specification.py4
-rwxr-xr-xscripts/lv2_write_news.py258
-rw-r--r--scripts/meson.build3
-rw-r--r--test/.clang-tidy21
-rw-r--r--test/atom_test_utils.c17
-rw-r--r--test/cpp/.clang-tidy26
-rw-r--r--test/cpp/test_build.cpp (renamed from test/test_build.cpp)17
-rw-r--r--test/headers/.clang-tidy22
-rw-r--r--test/headers/meson.build68
-rw-r--r--test/headers/test_headers.c42
-rw-r--r--test/meson.build196
-rw-r--r--test/test_atom.c27
-rw-r--r--test/test_build.c17
-rw-r--r--test/test_forge_overflow.c17
-rwxr-xr-xutil/lv2_validate.in4
-rw-r--r--util/meson.build2
191 files changed, 2215 insertions, 3480 deletions
diff --git a/.clang-format b/.clang-format
index 2ded658..8ee2675 100644
--- a/.clang-format
+++ b/.clang-format
@@ -1,3 +1,6 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
---
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
diff --git a/.clang-tidy b/.clang-tidy
index 342cf5a..5dc550b 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -1,27 +1,24 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
Checks: >
*,
- -*-else-after-return,
-*-magic-numbers,
- -*-uppercase-literal-suffix,
-altera-*,
+ -bugprone-assignment-in-if-condition,
-bugprone-easily-swappable-parameters,
-bugprone-macro-parentheses,
- -bugprone-suspicious-include,
- -bugprone-suspicious-string-compare,
- -cert-err33-c,
- -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
- -clang-diagnostic-empty-translation-unit,
-clang-diagnostic-unused-function,
-clang-diagnostic-unused-macros,
- -hicpp-signed-bitwise,
- -llvm-header-guard,
- -llvmlibc-*,
- -misc-unused-parameters,
- -modernize-redundant-void-arg,
- -modernize-use-trailing-return-type,
+ -llvmlibc-restrict-system-libc-headers,
+ -modernize-macro-to-enum,
-performance-no-int-to-ptr,
- -readability-function-cognitive-complexity,
-readability-identifier-length,
-WarningsAsErrors: '*'
-HeaderFilterRegex: '.*'
+CheckOptions:
+ - key: hicpp-uppercase-literal-suffix.NewSuffixes
+ value: L;U;f
+ - key: readability-uppercase-literal-suffix.NewSuffixes
+ value: L;U;f
FormatStyle: file
+HeaderFilterRegex: 'lv2/.*\.h'
+WarningsAsErrors: '*'
diff --git a/.gitignore b/.gitignore
index b532cce..bb24764 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,15 @@
+# Copyright 2016-2021 David Robillard <d@drobilla.net>
+# Copyright 2016 Robin Gareus <robin@gareus.org>
+# SPDX-License-Identifier: 0BSD OR ISC
+
# generated files and folders
/build
*.pyc
-NEWS
# misc editor/tools
*.swp
cscope.*
tags
+
+# cached files when used as a meson subproject
+.meson-subproject-wrap-hash.txt
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 92ff3ef..f4f6be7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,163 +1,139 @@
-arm32_dbg:
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-arm32_rel:
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-
-arm64_dbg:
- image: lv2plugin/debian-arm64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-arm64_rel:
- image: lv2plugin/debian-arm64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
+# Copyright 2018-2023 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
-x32_dbg:
- image: lv2plugin/debian-x32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-x32_rel:
- image: lv2plugin/debian-x32
+default:
+ image: lv2plugin/debian-x64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dwerror=true
- ninja -C build test
-
-x64_dbg:
- image: lv2plugin/debian-x64
+dev:
+ image: lv2plugin/debian-x64-big
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Db_coverage=true
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Db_coverage=true -Dlint=true
- ninja -C build test
- ninja -C build coverage-html
+ - meson configure -Dbuildtype=release -Db_coverage=false build
+ - ninja -C build test
coverage: '/ *lines\.*: \d+\.\d+.*/'
artifacts:
paths:
- build/meson-logs/coveragereport
-x64_rel:
+static:
image: lv2plugin/debian-x64
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Ddefault_library=static -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-x64_static:
- image: lv2plugin/debian-x64
- script:
- - meson setup build -Ddefault_library=static -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-
-x64_sanitize:
+sanitize:
image: lv2plugin/debian-x64-clang
script:
- - meson setup build -Db_lundef=false -Dbuildtype=plain -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Db_lundef=false -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
variables:
CC: "clang"
CFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
LDFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+# Linux Distributions
-freebsd_dbg:
- tags: [freebsd,meson]
+fedora:
+ image: lv2plugin/fedora-big
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dbuildtype=plain -Dwarning_level=3 -Ddocs=enabled -Dwerror=true
- ninja -C build test
+ variables:
+ CFLAGS: -O2 -D_FORTIFY_SOURCE=2
+ artifacts:
+ paths:
+ - build/doc
-freebsd_rel:
- tags: [freebsd,meson]
+# Linux Platforms
+
+arm32:
+ image: lv2plugin/debian-arm32
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-mingw32_dbg:
- image: lv2plugin/debian-mingw32
+arm64:
+ image: lv2plugin/debian-arm64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mingw32_rel:
+mingw32:
image: lv2plugin/debian-mingw32
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-
-mingw64_dbg:
- image: lv2plugin/debian-mingw64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mingw64_rel:
+mingw64:
image: lv2plugin/debian-mingw64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-mac_dbg:
- tags: [macos]
+wasm:
+ image: lv2plugin/debian-wasm
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mac_rel:
- tags: [macos]
+x32:
+ image: lv2plugin/debian-x32
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+# Non-Linux/Docker rows (not hosted)
-win_dbg:
- tags: [windows,meson]
+freebsd:
+ tags: [freebsd,meson]
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-win_rel:
- tags: [windows,meson]
- script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-wasm_dbg:
- image: lv2plugin/debian-wasm
+mac:
+ tags: [macos]
script:
- - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-wasm_rel:
- image: lv2plugin/debian-wasm
+win:
+ tags: [windows,meson]
script:
- - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+# Documentation
pages:
stage: deploy
script:
- mkdir -p public
- mv build/meson-logs/coveragereport/ public/coverage
- dependencies:
- - x64_dbg
+ needs:
+ - dev
artifacts:
paths:
- public
diff --git a/.reuse/dep5 b/.reuse/dep5
new file mode 100644
index 0000000..78cd3aa
--- /dev/null
+++ b/.reuse/dep5
@@ -0,0 +1,72 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: lv2
+Upstream-Contact: David Robillard <d@drobilla.net>
+Source: https://gitlab.com/lv2/lv2
+
+Files: .stylelintrc.json doc/htaccess.in
+Copyright: 2011-2022 David Robillard <d@drobilla.net>
+Comment: Contributed to the Commons as a tool configuration
+License: 0BSD OR ISC
+
+Files: NEWS
+Copyright: 2011-2022 David Robillard <d@drobilla.net>
+Comment: Contributed to the Commons as a representation of simple facts
+License: 0BSD OR ISC
+
+Files: **/manifest.ttl
+Copyright: Copyright 2015 David Robillard <d@drobilla.net>
+Comment: Contributed to the Commons as a representation of simple facts
+License: 0BSD OR ISC
+
+Files: doc/c/mainpage.md doc/*.css doc/c/layout.xml doc/c/reference.doxygen.in
+Copyright: Copyright 2020-2022 David Robillard <d@drobilla.net>
+License: ISC
+
+Files: **/README.txt doc/index.html.in doc/c/*.html lv2specgen/template.html resources/logo/*
+Copyright: Copyright 2010-2022 David Robillard <d@drobilla.net>
+License: ISC
+
+Files: plugins/eg-sampler.lv2/click.wav
+Copyright: Copyright 2012 David Robillard <d@drobilla.net>
+License: ISC
+
+Files: lv2/**/*.ttl plugins/**/*.ttl plugins/**/*.ttl.in schemas.lv2/xsd.ttl
+Copyright: Copyright 2011-2022 David Robillard <d@drobilla.net>
+Copyright: Copyright 2013 Robin Gareus <robin@gareus.org>
+Copyright: Copyright 2006 Steve Harris <steve@plugin.org.uk>
+License: ISC
+
+Files: lv2specgen/DTD/*
+Copyright: Copyright 1994-2001 World Wide Web Consortium
+Comment: DTDs from the W3C for documentation validation tests
+License: W3C-19980720
+
+Files: schemas.lv2/xsd.ttl
+Copyright: Copyright 2015-2021 David Robillard <d@drobilla.net>
+License: 0BSD OR ISC
+
+Files: schemas.lv2/doap.ttl
+Copyright: Copyright 2004-2016 Edd Dumbill <edd@usefulinc.com>
+Copyright: Copyright 2016-2017 Edd Wilder-James <edd@ewj.me>
+License: Apache-2.0
+
+Files: schemas.lv2/foaf.ttl
+Copyright: Copyright 2000-2014 Dan Brickley <danbri@danbri.org>
+Copyright: Copyright 2000-2014 Libby Miller <libby@nicecupoftea.org>
+License: CC-BY-1.0
+
+Files: schemas.lv2/rdf.ttl
+Copyright: Copyright 1997-1999 W3C
+License: W3C-20150513
+
+Files: schemas.lv2/rdfs.ttl
+Copyright: Copyright 2004-2014 W3C
+License: W3C-20150513
+
+Files: schemas.lv2/owl.ttl
+Copyright: Copyright 2006 W3C
+License: W3C-20150513
+
+Files: schemas.lv2/dcterms.ttl
+Copyright: Copyright 1995-2022 DCMI
+License: CC-BY-4.0
diff --git a/COPYING b/COPYING
index 4d59452..14ef505 100644
--- a/COPYING
+++ b/COPYING
@@ -1,16 +1,14 @@
Copyright 2006-2012 Steve Harris, David Robillard.
-
-Based on LADSPA, Copyright 2000-2002 Richard W.E. Furse,
-Paul Barton-Davis, Stefan Westerfeld.
+Copyright 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan Westerfeld.
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.
+THE 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.
diff --git a/INSTALL.md b/INSTALL.md
index 400391f..0f6e2bd 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,3 +1,6 @@
+<!-- Copyright 2011-2022 David Robillard <d@drobilla.net> -->
+<!-- SPDX-License-Identifier: ISC -->
+
Installation Instructions
=========================
@@ -41,6 +44,10 @@ Options can be set by passing C-style "define" options to `configure`:
meson configure -Dc_args="-march=native" -Dprefix="/opt/mypackage/"
+Note that some options, such as `strict` and `werror` are for
+developer/maintainer use only. Please don't file issues about anything that
+happens when they are enabled.
+
Building
--------
diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt
new file mode 100644
index 0000000..b3e8cfd
--- /dev/null
+++ b/LICENSES/0BSD.txt
@@ -0,0 +1,12 @@
+Copyright 2011-2022 David Robillard <d@drobilla.net>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE 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.
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/LICENSES/CC-BY-1.0.txt b/LICENSES/CC-BY-1.0.txt
new file mode 100644
index 0000000..5081bc9
--- /dev/null
+++ b/LICENSES/CC-BY-1.0.txt
@@ -0,0 +1,221 @@
+Creative Commons Attribution 1.0
+
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL
+ SERVICES. DISTRIBUTION OF THIS DRAFT LICENSE DOES NOT CREATE AN
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN
+ "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION
+ PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
+COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
+COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
+AUTHORIZED UNDER THIS LICENSE IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
+BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS
+CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
+CONDITIONS.
+
+1. Definitions
+
+ a. "Collective Work" means a work, such as a periodical issue, anthology or
+ encyclopedia, in which the Work in its entirety in unmodified form, along
+ with a number of other contributions, constituting separate and
+ independent works in themselves, are assembled into a collective whole. A
+ work that constitutes a Collective Work will not be considered a
+ Derivative Work (as defined below) for the purposes of this License.
+
+ b. "Derivative Work" means a work based upon the Work or upon the Work and
+ other pre-existing works, such as a translation, musical arrangement,
+ dramatization, fictionalization, motion picture version, sound recording,
+ art reproduction, abridgment, condensation, or any other form in which
+ the Work may be recast, transformed, or adapted, except that a work that
+ constitutes a Collective Work will not be considered a Derivative Work
+ for the purpose of this License.
+
+ c. "Licensor" means the individual or entity that offers the Work under the
+ terms of this License.
+
+ d. "Original Author" means the individual or entity who created the Work.
+
+ e. "Work" means the copyrightable work of authorship offered under the terms
+ of this License.
+
+ f. "You" means an individual or entity exercising rights under this License
+ who has not previously violated the terms of this License with respect to
+ the Work, or who has received express permission from the Licensor to
+ exercise rights under this License despite a previous violation.
+
+2. Fair Use Rights
+
+Nothing in this license is intended to reduce, limit, or restrict any rights
+arising from fair use, first sale or other limitations on the exclusive rights
+of the copyright owner under copyright law or other applicable laws.
+
+3. License Grant
+
+Subject to the terms and conditions of this License, Licensor hereby grants You
+a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the
+applicable copyright) license to exercise the rights in the Work as stated
+below:
+
+ a. to reproduce the Work, to incorporate the Work into one or more Collective
+ Works, and to reproduce the Work as incorporated in the Collective Works;
+
+ b. to create and reproduce Derivative Works;
+
+ c. to distribute copies or phonorecords of, display publicly, perform
+ publicly, and perform publicly by means of a digital audio transmission
+ the Work including as incorporated in Collective Works;
+
+ d. to distribute copies or phonorecords of, display publicly, perform
+ publicly, and perform publicly by means of a digital audio transmission
+ Derivative Works;
+
+The above rights may be exercised in all media and formats whether now known or
+hereafter devised. The above rights include the right to make such
+modifications as are technically necessary to exercise the rights in other
+media and formats. All rights not expressly granted by Licensor are hereby
+reserved.
+
+4. Restrictions
+
+The license granted in Section 3 above is expressly made subject to and limited
+by the following restrictions:
+
+ a. You may distribute, publicly display, publicly perform, or publicly
+ digitally perform the Work only under the terms of this License, and You
+ must include a copy of, or the Uniform Resource Identifier for, this
+ License with every copy or phonorecord of the Work You distribute,
+ publicly display, publicly perform, or publicly digitally perform. You may
+ not offer or impose any terms on the Work that alter or restrict the terms
+ of this License or the recipients' exercise of the rights granted
+ hereunder. You may not sublicense the Work. You must keep intact all
+ notices that refer to this License and to the disclaimer of
+ warranties. You may not distribute, publicly display, publicly perform, or
+ publicly digitally perform the Work with any technological measures that
+ control access or use of the Work in a manner inconsistent with the terms
+ of this License Agreement. The above applies to the Work as incorporated
+ in a Collective Work, but this does not require the Collective Work apart
+ from the Work itself to be made subject to the terms of this License. If
+ You create a Collective Work, upon notice from any Licensor You must, to
+ the extent practicable, remove from the Collective Work any reference to
+ such Licensor or the Original Author, as requested. If You create a
+ Derivative Work, upon notice from any Licensor You must, to the extent
+ practicable, remove from the Derivative Work any reference to such
+ Licensor or the Original Author, as requested.
+
+ b. If you distribute, publicly display, publicly perform, or publicly
+ digitally perform the Work or any Derivative Works or Collective Works,
+ You must keep intact all copyright notices for the Work and give the
+ Original Author credit reasonable to the medium or means You are utilizing
+ by conveying the name (or pseudonym if applicable) of the Original Author
+ if supplied; the title of the Work if supplied; in the case of a
+ Derivative Work, a credit identifying the use of the Work in the
+ Derivative Work (e.g., "French translation of the Work by Original
+ Author," or "Screenplay based on original Work by Original Author"). Such
+ credit may be implemented in any reasonable manner; provided, however,
+ that in the case of a Derivative Work or Collective Work, at a minimum
+ such credit will appear where any other comparable authorship credit
+ appears and in a manner at least as prominent as such other comparable
+ authorship credit.
+
+5. Representations, Warranties and Disclaimer
+
+ a. By offering the Work for public release under this License, Licensor
+ represents and warrants that, to the best of Licensor's knowledge after
+ reasonable inquiry:
+
+ i. Licensor has secured all rights in the Work necessary to grant the
+ license rights hereunder and to permit the lawful exercise of the
+ rights granted hereunder without You having any obligation to pay
+ any royalties, compulsory license fees, residuals or any other
+ payments;
+
+ ii. The Work does not infringe the copyright, trademark, publicity
+ rights, common law rights or any other right of any third party or
+ constitute defamation, invasion of privacy or other tortious injury
+ to any third party.
+
+ b. EXCEPT AS EXPRESSLY STATED IN THIS LICENSE OR OTHERWISE AGREED IN WRITING
+ OR REQUIRED BY APPLICABLE LAW, THE WORK IS LICENSED ON AN "AS IS" BASIS,
+ WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+ WITHOUT LIMITATION, ANY WARRANTIES REGARDING THE CONTENTS OR ACCURACY OF
+ THE WORK.
+
+6. Limitation on Liability
+
+EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, AND EXCEPT FOR DAMAGES ARISING
+FROM LIABILITY TO A THIRD PARTY RESULTING FROM BREACH OF THE WARRANTIES IN
+SECTION 5, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
+ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING
+OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+ a. This License and the rights granted hereunder will terminate automatically
+ upon any breach by You of the terms of this License. Individuals or
+ entities who have received Derivative Works or Collective Works from You
+ under this License, however, will not have their licenses terminated
+ provided such individuals or entities remain in full compliance with those
+ licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of
+ this License.
+
+ b. Subject to the above terms and conditions, the license granted here is
+ perpetual (for the duration of the applicable copyright in the
+ Work). Notwithstanding the above, Licensor reserves the right to release
+ the Work under different license terms or to stop distributing the Work at
+ any time; provided, however that any such election will not serve to
+ withdraw this License (or any other license that has been, or is required
+ to be, granted under the terms of this License), and this License will
+ continue in full force and effect unless terminated as stated above.
+
+8. Miscellaneous
+
+ a. Each time You distribute or publicly digitally perform the Work or a
+ Collective Work, the Licensor offers to the recipient a license to the
+ Work on the same terms and conditions as the license granted to You under
+ this License.
+
+ b. Each time You distribute or publicly digitally perform a Derivative Work,
+ Licensor offers to the recipient a license to the original Work on the
+ same terms and conditions as the license granted to You under this
+ License.
+
+ c. If any provision of this License is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this License, and without further action by the
+ parties to this agreement, such provision shall be reformed to the minimum
+ extent necessary to make such provision valid and enforceable.
+
+ d. No term or provision of this License shall be deemed waived and no breach
+ consented to unless such waiver or consent shall be in writing and signed
+ by the party to be charged with such waiver or consent.
+
+ e. This License constitutes the entire agreement between the parties with
+ respect to the Work licensed here. There are no understandings, agreements
+ or representations with respect to the Work not specified here. Licensor
+ shall not be bound by any additional provisions that may appear in any
+ communication from You. This License may not be modified without the
+ mutual written agreement of the Licensor and You.
+
+Creative Commons is not a party to this License, and makes no warranty
+whatsoever in connection with the Work. Creative Commons will not be liable to
+You or any party on any legal theory for any damages whatsoever, including
+without limitation any general, special, incidental or consequential damages
+arising in connection to this license. Notwithstanding the foregoing two (2)
+sentences, if Creative Commons has expressly identified itself as the Licensor
+hereunder, it shall have all rights and obligations of Licensor.
+
+Except for the limited purpose of indicating to the public that the Work is
+licensed under the CCPL, neither party will use the trademark "Creative
+Commons" or any related trademark or logo of Creative Commons without the prior
+written consent of Creative Commons. Any permitted use will be in compliance
+with Creative Commons' then-current trademark usage guidelines, as may be
+published on its website or otherwise made available upon request from time to
+time.
+
+Creative Commons may be contacted at http://creativecommons.org/.
diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt
new file mode 100644
index 0000000..10fabd9
--- /dev/null
+++ b/LICENSES/CC-BY-4.0.txt
@@ -0,0 +1,395 @@
+Attribution 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution 4.0 International Public License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution 4.0 International Public License ("Public License"). To the
+extent this Public License may be interpreted as a contract, You are
+granted the Licensed Rights in consideration of Your acceptance of
+these terms and conditions, and the Licensor grants You such rights in
+consideration of benefits the Licensor receives from making the
+Licensed Material available under these terms and conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ d. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ f. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ g. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ h. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ i. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ j. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ k. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ 4. If You Share Adapted Material You produce, the Adapter's
+ License You apply must not prevent recipients of the Adapted
+ Material from complying with this Public License.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material; and
+
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public licenses.
+Notwithstanding, Creative Commons may elect to apply one of its public
+licenses to material it publishes and in those instances will be
+considered the “Licensor.” The text of the Creative Commons public
+licenses is dedicated to the public domain under the CC0 Public Domain
+Dedication. Except for the limited purpose of indicating that material
+is shared under a Creative Commons public license or as otherwise
+permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the public
+licenses.
+
+Creative Commons may be contacted at creativecommons.org.
diff --git a/LICENSES/ISC.txt b/LICENSES/ISC.txt
new file mode 120000
index 0000000..012065c
--- /dev/null
+++ b/LICENSES/ISC.txt
@@ -0,0 +1 @@
+../COPYING \ No newline at end of file
diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt
new file mode 100644
index 0000000..f85e365
--- /dev/null
+++ b/LICENSES/MIT.txt
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/LICENSES/W3C-19980720.txt b/LICENSES/W3C-19980720.txt
new file mode 100644
index 0000000..a1cda7e
--- /dev/null
+++ b/LICENSES/W3C-19980720.txt
@@ -0,0 +1,45 @@
+W3C SOFTWARE NOTICE AND LICENSE
+
+Copyright (c) 1994-2002 World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de Recherche en Informatique et en Automatique,
+Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related items) is being
+provided by the copyright holders under the following license. By obtaining,
+using and/or copying this work, you (the licensee) agree that you have read,
+understood, and will comply with the following terms and conditions:
+
+Permission to use, copy, modify, and distribute this software and its
+documentation, with or without modification,  for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications, that you make:
+
+ 1. The full text of this NOTICE in a location viewable to users of the
+ redistributed or derivative work.
+
+ 2. Any pre-existing intellectual property disclaimers, notices, or terms and
+ conditions. If none exist, a short notice of the following form (hypertext
+ is preferred, text is permitted) should be used within the body of any
+ redistributed or derivative code: "Copyright © [$date-of-software] World
+ Wide Web Consortium, (Massachusetts Institute of Technology, Institut
+ National de Recherche en Informatique et en Automatique, Keio
+ University). All Rights Reserved. http://www.w3.org/Consortium/Legal/"
+
+ 3. Notice of any changes or modifications to the W3C files, including the
+ date changes were made. (We recommend you provide URIs to the location
+ from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
+NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
+THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
+PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to the software without specific, written prior
+permission. Title to copyright in this software and any associated
+documentation will at all times remain with copyright holders.
diff --git a/LICENSES/W3C-20150513.txt b/LICENSES/W3C-20150513.txt
new file mode 100644
index 0000000..f58c363
--- /dev/null
+++ b/LICENSES/W3C-20150513.txt
@@ -0,0 +1,40 @@
+This work is being provided by the copyright holders under the following
+license.
+
+License
+
+By obtaining and/or copying this work, you (the licensee) agree that you have
+read, understood, and will comply with the following terms and conditions.
+
+Permission to copy, modify, and distribute this work, with or without
+modification, for any purpose and without fee or royalty is hereby granted,
+provided that you include the following on ALL copies of the work or portions
+thereof, including modifications:
+
+ * The full text of this NOTICE in a location viewable to users of the
+ redistributed or derivative work.
+
+ * Any pre-existing intellectual property disclaimers, notices, or terms and
+ conditions. If none exist, the W3C Software and Document Short Notice
+ should be included.
+
+ * Notice of any changes or modifications, through a copyright statement on
+ the new code or document such as "This software or document includes
+ material copied from or derived from [title and URI of the W3C
+ document]. Copyright (c) [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
+
+Disclaimers
+
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE
+SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+
+The name and trademarks of copyright holders may NOT be used in advertising or
+publicity pertaining to the work without specific, written prior
+permission. Title to copyright in this work will at all times remain with
+copyright holders.
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..d75a2ae
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,277 @@
+lv2 (1.18.11) unstable; urgency=medium
+
+ * Allow LV2_SYMBOL_EXPORT to be overridden
+ * Fix pylint warning in test script
+ * Override pkg-config dependency within meson
+ * Remove troublesome lv2_atom_assert_double_fits_in_64_bits
+
+ -- David Robillard <d@drobilla.net> Thu, 15 Dec 2022 17:15:58 +0000
+
+lv2 (1.18.10) stable; urgency=medium
+
+ * Fix includedir in pkg-config file
+ * Fix missing example plugin UI binaries
+ * Only install lv2specgen when required Python modules are found
+ * Replace change history data with a plain text NEWS file
+
+ -- David Robillard <d@drobilla.net> Fri, 09 Sep 2022 17:26:51 +0000
+
+lv2 (1.18.8) stable; urgency=medium
+
+ * Fix documentation build with Python 3.7
+ * Fix documentation build with meson 0.56.2
+ * Fix lv2.h missing from installation
+ * eg-midigate: Fix output timing
+ * eg-sampler: Add resampling via libsamplerate
+ * eg-sampler: Fix potentially corrupt notification events
+ * lv2core: Fix inconsistent plugin class labels
+ * lv2specgen: Fix installed data paths
+
+ -- David Robillard <d@drobilla.net> Fri, 12 Aug 2022 00:00:00 +0000
+
+lv2 (1.18.6) stable; urgency=medium
+
+ * Add dark mode style for documentation
+ * Clean up and modernize Python support code
+ * Fix or avoid new compiler and tool warnings
+ * Rearrange source tree to be directly usable by dependants
+ * Remove archaic properties from foaf vocabulary
+ * Replace canonical dcs ontology with a minimal version for LV2
+ * Separate API headers from data
+ * Switch to Meson build system
+
+ -- David Robillard <d@drobilla.net> Thu, 07 Jul 2022 00:00:00 +0000
+
+lv2 (1.18.4) stable; urgency=medium
+
+ * Fix build issues with newer toolchains
+ * Fix spelling errors
+ * atom: Fix spelling errors
+ * event: Fix spelling errors
+ * lv2core: Fix spelling errors
+ * patch: Fix spelling errors
+ * patch: Fix type and range of patch:value
+ * patch: Make the type of patch:wildcard more precise
+ * state: Fix spelling errors
+ * ui: Deprecate ui:resize
+ * ui: Fix spelling errors
+
+ -- David Robillard <d@drobilla.net> Thu, 26 May 2022 00:00:00 +0000
+
+lv2 (1.18.2) stable; urgency=medium
+
+ * Various code cleanups and infrastructure improvements
+ * eg-sampler: Save and restore gain parameter value
+ * state: Fix state:StateChanged URI in metadata and documentation
+
+ -- David Robillard <d@drobilla.net> Thu, 07 Jan 2021 00:00:00 +0000
+
+lv2 (1.18.0) stable; urgency=medium
+
+ * Improve documentation
+ * Separate extended documentation from primary data
+ * lv2core: Add lv2:Markdown datatype
+ * lv2core: Deprecate lv2:reportsLatency
+ * patch: Fix incorrect type of patch:sequenceNumber
+ * port-groups: Remove incorrect type of pg:letterCode
+ * port-groups: Replace broken links with detailed channel descriptions
+ * state: Add state:freePath feature
+ * ui: Add ui:requestValue feature
+ * ui: Add ui:scaleFactor, ui:foregroundColor, and ui:backgroundColor
+ * ui: Deprecate ui:binary
+ * worker: Improve documentation
+
+ -- David Robillard <d@drobilla.net> Sun, 26 Apr 2020 00:00:00 +0000
+
+lv2 (1.16.0) stable; urgency=medium
+
+ * Add core/attributes.h utility header
+ * Add lv2_validate utility
+ * Aggressively deprecate uri-map and event extensions
+ * Install headers to simpler paths
+ * Simplify use of lv2specgen
+ * Upgrade build system and fix building with Python 3.7
+ * atom: Add lv2_atom_object_get_typed()
+ * eg-midigate: Respond to "all notes off" MIDI message
+ * eg-sampler: Add waveform display to UI
+ * lv2core: Add lv2:MIDIPlugin class
+ * lv2core: Rework port restrictions so that presets can be validated
+ * midi: Fix incorrect range of midi:chunk
+ * options: Relax range of opts:requiredOption and opts:supportedOption
+ * patch: Add patch:accept property
+ * patch: Add patch:context property
+ * state: Add state:StateChanged for notification events
+ * time: Clarify time:beat origin
+ * units: Fix outdated port description in documentation
+ * units: Remove overly restrictive domain from units:unit
+
+ -- David Robillard <d@drobilla.net> Sun, 03 Feb 2019 00:00:00 +0000
+
+lv2 (1.14.0) stable; urgency=medium
+
+ * buf-size: Add bufsz:coarseBlockLength feature
+ * buf-size: Add bufsz:nominalBlockLength option
+ * eg-sampler: Fix handling of state file paths
+ * eg-sampler: Support thread-safe state restoration
+ * eg-scope: Don't feed back UI state updates
+ * log: Add lv2_log_logger_set_map()
+ * lv2core: Add lv2:enabled designation
+ * lv2core: Add lv2_util.h with lv2_features_data() and lv2_features_query()
+ * state: Add LV2_STATE_ERR_NO_SPACE status flag
+ * state: Add state:threadSafeRestore feature
+ * time: Define LV2_TIME_PREFIX
+ * ui: Add missing property labels
+ * ui: Improve documentation
+
+ -- David Robillard <d@drobilla.net> Mon, 19 Sep 2016 00:00:00 +0000
+
+lv2 (1.12.0) stable; urgency=medium
+
+ * Fix merging of version histories in specification documentation
+ * Improve API documentation
+ * Simplify property restrictions by removing redundancy
+ * eg-sampler: Add gain parameter
+ * eg-sampler: Support patch:Get, and request initial state from UI
+ * lv2core: Add extern C and visibility attribute to LV2_SYMBOL_EXPORT
+ * lv2core: Add lv2:isSideChain port property
+ * lv2core: Relax domain of lv2:minimum lv2:maximum and lv2:default
+ * parameters: Add range to parameters so hosts know how to control them
+ * patch: Add patch:Copy method
+ * patch: Define patch:Get with no subject to implicitly apply to receiver
+ * units: Add lv2:Parameter to domain of units:unit
+ * units: Fix non-existent port type in examples
+
+ -- David Robillard <d@drobilla.net> Tue, 07 Apr 2015 00:00:00 +0000
+
+lv2 (1.10.0) stable; urgency=medium
+
+ * Fix -Wconversion warnings in headers
+ * Upgrade to waf 1.7.16
+ * atom: Add lv2_atom_forge_is_object_type() and lv2_atom_forge_is_blank()
+ * atom: Add lv2_atom_forge_key() for terser object writing
+ * atom: Add lv2_atom_sequence_clear() and lv2_atom_sequence_append_event()
+ * atom: Deprecate Blank and Resource in favour of just Object
+ * event: Minor documentation improvements
+ * lv2core: Clarify lv2_descriptor() and lv2_lib_descriptor() documentation
+ * lv2specgen: Display deprecated warning on classes marked owl:deprecated
+ * patch: Add patch:sequenceNumber for associating replies with requests
+ * ui: Add show interface so UIs can gracefully degrade to separate windows
+ * ui: Fix identifier typos in documentation
+
+ -- David Robillard <d@drobilla.net> Fri, 08 Aug 2014 00:00:00 +0000
+
+lv2 (1.8.0) stable; urgency=medium
+
+ * Add scope example plugin from Robin Gareus
+ * Install lv2specgen for use by other projects
+ * atom: Make lv2_atom_*_is_end() arguments const
+ * log: Add missing include string.h to logger.h for memset
+ * lv2core: Add lv2:prototype for property inheritance
+ * lv2specgen: Fix links to externally defined terms
+ * ui: Fix LV2_UI_INVALID_PORT_INDEX identifier in documentation
+
+ -- David Robillard <d@drobilla.net> Sat, 04 Jan 2014 00:00:00 +0000
+
+lv2 (1.6.0) stable; urgency=medium
+
+ * Fix lv2specgen usage from command line
+ * Fix port indices of metronome example
+ * Upgrade to waf 1.7.11
+ * atom: Fix crash in forge.h when pushing atoms to a full buffer
+ * ui: Add idle interface for native UIs and foreign toolkits
+ * ui: Add ui:updateRate property
+
+ -- David Robillard <d@drobilla.net> Fri, 09 Aug 2013 00:00:00 +0000
+
+lv2 (1.4.0) stable; urgency=medium
+
+ * Add metronome example plugin to demonstrate sample accurate tempo sync
+ * Generate book-style HTML documentation from example plugins
+ * atom: Fix lv2_atom_sequence_end()
+ * atom: Improve atom documentation
+ * atom: Remove atom:stringType in favour of the more general owl:onDatatype
+ * buf-size: Fix typo in bufsz:sequenceSize label
+ * event: Fix incorrect return type in lv2_event_get()
+ * log: Add logger convenience API
+ * lv2core: Add lv2:EnvelopePlugin class
+ * lv2core: Add lv2:control for designating primary control ports
+ * lv2core: Make lv2:Parameter rdfs:subClassOf rdf:Property
+ * lv2core: Reserve minor version 0 for unstable development plugins
+ * lv2core: Set range of lv2:designation to lv2:Designation
+ * options: Set the range of opts:requiredOption and opts:supportedOption
+ * patch: Add patch:readable and patch:writable properties
+ * patch: Make patch:Set a compact message for setting one property
+ * state: Add state:loadDefaultState feature
+ * ui: Fix incorrect linker flag in ui:makeSONameResident documentation
+
+ -- David Robillard <d@drobilla.net> Sun, 17 Feb 2013 00:00:00 +0000
+
+lv2 (1.2.0) stable; urgency=medium
+
+ * Move all project metadata for extensions to separate files to save memory
+ * Use stricter datatype definitions conformant with XSD and OWL
+ * atom: Add LV2_ATOM_CONTENTS_CONST and LV2_ATOM_BODY_CONST
+ * atom: Add lv2_atom_object_body_get()
+ * atom: Fix implicit conversions in forge.h that are invalid in C++11
+ * atom: Fix lv2_atom_object_next() on 32-bit platforms
+ * atom: Fix outdated documentation in forge.h
+ * atom: Use consistent label style
+ * buf-size: Initial release
+ * dynmanifest: Use consistent label style
+ * event: Make event iterator gracefully handle optional ports
+ * event: Remove asserts from event-helper.h
+ * event: Use consistent label style
+ * event: Use more precise domain and range for EventPort properties
+ * lv2core: Use consistent label style
+ * midi: Add C definitions for message types and standard controllers
+ * midi: Add midi:HexByte datatype for status bytes and masks
+ * midi: Add midi:binding and midi:channel predicates
+ * midi: Fix definition of SystemExclusive status byte
+ * midi: Remove non-standard midi:Tick message type
+ * midi: Use consistent label style
+ * morph: Initial release
+ * options: Initial release
+ * parameters: Add param:sampleRate
+ * parameters: Add parameters.h of URI defines for convenience
+ * parameters: Use consistent label style
+ * port-groups: Use consistent label style
+ * port-props: Use consistent label style
+ * presets: Add preset banks
+ * presets: Use consistent label style
+ * state: Use consistent label style
+ * time: Use consistent label style
+ * ui: Add missing LV2_SYMBOL_EXPORT declaration for lv2ui_descriptor
+ * ui: Add types for WindowsUI, CocoaUI, and Gtk3UI
+ * ui: Use consistent label style
+ * units: Remove units:name in favour of rdfs:label
+ * units: Use consistent label style
+ * urid: Fix typo in urid:unmap documentation
+
+ -- David Robillard <d@drobilla.net> Sun, 14 Oct 2012 00:00:00 +0000
+
+lv2 (1.0.0) stable; urgency=medium
+
+ * Initial release as a unified project
+ * atom: Initial release
+ * data-access: Initial unified release
+ * dynmanifest: Initial unified release
+ * event: Initial unified release
+ * instance-access: Initial unified release
+ * log: Initial release
+ * lv2core: Initial unified release
+ * midi: Initial unified release
+ * parameters: Initial release
+ * patch: Initial release
+ * port-groups: Initial release
+ * port-props: Initial release
+ * presets: Initial unified release
+ * resize-port: Initial release
+ * state: Initial release
+ * time: Initial release
+ * ui: Initial unified release
+ * units: Initial unified release
+ * uri-map: Initial unified release
+ * urid: Initial unified release
+ * worker: Initial release
+
+ -- David Robillard <d@drobilla.net> Mon, 16 Apr 2012 00:00:00 +0000
diff --git a/README.md b/README.md
index 5f4c438..bbc7b63 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+<!-- Copyright 2010-2022 David Robillard <d@drobilla.net> -->
+<!-- SPDX-License-Identifier: ISC -->
+
LV2
===
@@ -15,15 +18,11 @@ Installation
See the [installation instructions](INSTALL.md) for details on how to
configure, build, and install LV2 with meson.
-By default, everything is installed within the `prefix` with a UNIX-style
-hierarchy, and LV2 bundles are installed in the "lv2" subdirectory of the
-`libdir`. The bundle installation directory can be overridden with the
-`lv2dir` option. For example, standard system-wide values for various
-operating systems are:
-
- meson configure -Dlv2dir=/Library/Audio/Plug-Ins/LV2
- meson configure -Dlv2dir=/boot/common/add-ons/lv2
- meson configure -Dlv2dir=C:/Program Files/Common/LV2
+By default, on UNIX-like systems, everything is installed within the `prefix`,
+and LV2 bundles are installed in the "lv2" subdirectory of the `libdir`. On
+other systems, bundles are installed by default to the standard location for
+plugins on the system. The bundle installation directory can be overridden
+with the `lv2dir` option.
The [specification bundles](lv2) are run-time dependencies of LV2 applications.
Programs expect their data to be available somewhere in `LV2_PATH`. See
diff --git a/doc/c/doxy-style.css b/doc/c/doxy-style.css
index b44675e..6f15ee4 100644
--- a/doc/c/doxy-style.css
+++ b/doc/c/doxy-style.css
@@ -208,6 +208,10 @@ dl.el {
font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
}
+.ttc {
+ display: none;
+}
+
pre.fragment {
border: 1px solid #C4C4C4;
background-color: #F9F9F9;
diff --git a/doc/c/meson.build b/doc/c/meson.build
index 3ce7fdc..da88b86 100644
--- a/doc/c/meson.build
+++ b/doc/c/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
lv2_source_doc = meson.current_source_dir()
@@ -11,7 +11,7 @@ if doxygen.found()
'LV2_SRCDIR': lv2_source_root,
'LV2_BUILDDIR': lv2_build_root,
'LV2_VERSION': meson.project_version(),
- }
+ },
)
reference_doxygen = configure_file(
@@ -25,7 +25,7 @@ if doxygen.found()
command: [doxygen, '@INPUT@'],
input: reference_doxygen,
install: true,
- install_dir: lv2_docdir,
+ install_dir: lv2_docdir / 'c',
output: ['html', 'tags'],
)
diff --git a/doc/c/reference.doxygen.in b/doc/c/reference.doxygen.in
index 0b87d49..333fe1c 100644
--- a/doc/c/reference.doxygen.in
+++ b/doc/c/reference.doxygen.in
@@ -805,6 +805,7 @@ INPUT = @LV2_SRCDIR@/doc/c/mainpage.md \
@LV2_SRCDIR@/include/lv2/atom/util.h \
@LV2_SRCDIR@/include/lv2/buf-size/buf-size.h \
@LV2_SRCDIR@/include/lv2/core/lv2.h \
+ @LV2_SRCDIR@/include/lv2/core/lv2_util.h \
@LV2_SRCDIR@/include/lv2/data-access/data-access.h \
@LV2_SRCDIR@/include/lv2/dynmanifest/dynmanifest.h \
@LV2_SRCDIR@/include/lv2/event/event-helpers.h \
@@ -1206,15 +1207,6 @@ HTML_COLORSTYLE_SAT = 30
HTML_COLORSTYLE_GAMMA = 100
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = NO
-
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
# are dynamically created via JavaScript. If disabled, the navigation index will
@@ -1502,17 +1494,6 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
-# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT = YES
-
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# https://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
@@ -1822,14 +1803,6 @@ LATEX_HIDE_INDICES = NO
LATEX_BIB_STYLE = plain
-# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_TIMESTAMP = NO
-
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -2185,23 +2158,6 @@ HAVE_DOT = NO
DOT_NUM_THREADS = 0
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME =
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE = 10
-
# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
@@ -2417,18 +2373,6 @@ DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT = NO
-
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
diff --git a/doc/index.html.in b/doc/index.html.in
index 6f3e0f9..3be99f4 100644
--- a/doc/index.html.in
+++ b/doc/index.html.in
@@ -19,7 +19,6 @@
<div id="metabox">
<table id="meta">
<tr><th>Version</th><td>@LV2_VERSION@</td></tr>
- <tr><th>Date</th><td>@DATE@</td></tr>
<tr><th>Discuss</th>
<td>
<a href="mailto:devel@lists.lv2plug.in">devel@lists.lv2plug.in</a>
diff --git a/doc/ns/ext/meson.build b/doc/ns/ext/meson.build
index f6ad06b..bf6431b 100644
--- a/doc/ns/ext/meson.build
+++ b/doc/ns/ext/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
config = configuration_data({'BASE': '/ns/ext'})
@@ -45,6 +45,7 @@ if build_docs
command: lv2specgen_command_prefix + [
'--docdir=../../c/html',
'--style-uri=../../style/style.css',
+ ] + [
'@INPUT@',
'@OUTPUT@',
],
diff --git a/doc/ns/extensions/meson.build b/doc/ns/extensions/meson.build
index 5a25184..837f736 100644
--- a/doc/ns/extensions/meson.build
+++ b/doc/ns/extensions/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
config = configuration_data({'BASE': '/ns/extensions'})
@@ -26,6 +26,7 @@ if build_docs
command: lv2specgen_command_prefix + [
'--docdir=../../c/html',
'--style-uri=../../style/style.css',
+ ] + [
'@INPUT@',
'@OUTPUT@',
],
diff --git a/doc/ns/meson.build b/doc/ns/meson.build
index aa41464..126a100 100644
--- a/doc/ns/meson.build
+++ b/doc/ns/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
config = configuration_data({'BASE': '/ns'})
@@ -24,6 +24,7 @@ if build_docs
command: lv2specgen_command_prefix + [
'--docdir=../c/html',
'--style-uri=../style/style.css',
+ ] + [
'@INPUT@',
'@OUTPUT@',
],
@@ -55,12 +56,14 @@ subdir('extensions')
# Index #
#########
-lv2_build_index = find_program(lv2_source_root / 'scripts' / 'lv2_build_index.py')
+lv2_build_index = find_program(
+ lv2_source_root / 'scripts' / 'lv2_build_index.py',
+)
lv2_build_index_command = [
lv2_build_index,
- '--lv2-version', meson.project_version(),
- '--lv2-source-root', lv2_source_root,
+ ['--lv2-version', meson.project_version()],
+ ['--lv2-source-root', lv2_source_root],
]
if get_option('online_docs')
diff --git a/doc/style/meson.build b/doc/style/meson.build
index 7ae9a04..39e9242 100644
--- a/doc/style/meson.build
+++ b/doc/style/meson.build
@@ -1,10 +1,7 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
-style_files = files(
- 'pygments.css',
- 'style.css'
-)
+style_files = files('pygments.css', 'style.css')
foreach file : style_files
configure_file(
diff --git a/include/lv2/atom/atom.h b/include/lv2/atom/atom.h
index b090c1e..ca607d3 100644
--- a/include/lv2/atom/atom.h
+++ b/include/lv2/atom/atom.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2008-2016 David Robillard <d@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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_ATOM_H
-#define LV2_ATOM_H
+#ifndef LV2_ATOM_ATOM_H
+#define LV2_ATOM_ATOM_H
/**
@defgroup atom Atom
@@ -75,12 +62,6 @@
extern "C" {
#endif
-/** @cond */
-/** This expression will fail to compile if double does not fit in 64 bits. */
-typedef char lv2_atom_assert_double_fits_in_64_bits
- [((sizeof(double) <= sizeof(uint64_t)) * 2) - 1];
-/** @endcond */
-
/**
Return a pointer to the contents of an Atom. The "contents" of an atom
is the data past the complete type-specific header.
@@ -234,7 +215,7 @@ typedef struct {
| Event 1 (size 6) | Event 2
| | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
- |FRAMES |TYPE |SIZE |DATADATADATAPAD|FRAMES |...
+ |FRAMES |SIZE |TYPE |DATADATADATAPAD|FRAMES |...
</pre>
*/
typedef struct {
@@ -257,4 +238,4 @@ typedef struct {
@}
*/
-#endif /* LV2_ATOM_H */
+#endif // LV2_ATOM_ATOM_H
diff --git a/include/lv2/atom/forge.h b/include/lv2/atom/forge.h
index 280bd53..f894a5a 100644
--- a/include/lv2/atom/forge.h
+++ b/include/lv2/atom/forge.h
@@ -1,18 +1,5 @@
-/*
- Copyright 2008-2016 David Robillard <d@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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
/**
@file forge.h An API for constructing LV2 atoms.
@@ -160,6 +147,7 @@ lv2_atom_forge_init(LV2_Atom_Forge* forge, LV2_URID_Map* map)
static inline LV2_Atom*
lv2_atom_forge_deref(LV2_Atom_Forge* forge, LV2_Atom_Forge_Ref ref)
{
+ // NOLINTNEXTLINE(performance-no-int-to-ptr)
return forge->buf ? (LV2_Atom*)ref : forge->deref(forge->handle, ref);
}
@@ -318,7 +306,7 @@ lv2_atom_forge_pad(LV2_Atom_Forge* forge, uint32_t written)
static inline LV2_Atom_Forge_Ref
lv2_atom_forge_write(LV2_Atom_Forge* forge, const void* data, uint32_t size)
{
- LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size);
+ const LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size);
if (out) {
lv2_atom_forge_pad(forge, size);
}
@@ -329,11 +317,18 @@ lv2_atom_forge_write(LV2_Atom_Forge* forge, const void* data, uint32_t size)
static inline LV2_Atom_Forge_Ref
lv2_atom_forge_string_body(LV2_Atom_Forge* forge, const char* str, uint32_t len)
{
- LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, str, len);
- if (out && (out = lv2_atom_forge_raw(forge, "", 1))) {
- lv2_atom_forge_pad(forge, len + 1);
+ const LV2_Atom_Forge_Ref s = lv2_atom_forge_raw(forge, str, len);
+ if (!s) {
+ return s;
}
- return out;
+
+ const LV2_Atom_Forge_Ref t = lv2_atom_forge_raw(forge, "", 1);
+ if (!t) {
+ return t;
+ }
+
+ lv2_atom_forge_pad(forge, len + 1U);
+ return t;
}
/**
@@ -500,7 +495,7 @@ lv2_atom_forge_vector(LV2_Atom_Forge* forge,
{(uint32_t)sizeof(LV2_Atom_Vector_Body) + n_elems * child_size,
forge->Vector},
{child_size, child_type}};
- LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a));
+ const LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a));
if (out) {
lv2_atom_forge_write(forge, elems, child_size * n_elems);
}
@@ -680,4 +675,4 @@ LV2_RESTORE_WARNINGS
@}
*/
-#endif /* LV2_ATOM_FORGE_H */
+#endif // LV2_ATOM_FORGE_H
diff --git a/include/lv2/atom/util.h b/include/lv2/atom/util.h
index 16d2c00..a2369da 100644
--- a/include/lv2/atom/util.h
+++ b/include/lv2/atom/util.h
@@ -1,18 +1,5 @@
-/*
- Copyright 2008-2015 David Robillard <d@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.
-*/
+// Copyright 2008-2015 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#ifndef LV2_ATOM_UTIL_H
#define LV2_ATOM_UTIL_H
@@ -26,7 +13,7 @@
*/
/**
- @defgroup util Utilities
+ @defgroup atom_util Utilities
@ingroup atom
Utilities for working with atoms.
@@ -41,6 +28,8 @@
#include <stdint.h>
#include <string.h>
+// NOLINTBEGIN(bugprone-macro-parentheses)
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -49,7 +38,9 @@ extern "C" {
static inline uint32_t
lv2_atom_pad_size(uint32_t size)
{
- return (size + 7U) & (~7U);
+ static const uint32_t mask = 7U;
+
+ return (size + mask) & ~mask;
}
/** Return the total size of `atom`, including the header. */
@@ -125,14 +116,14 @@ lv2_atom_sequence_next(const LV2_Atom_Event* i)
@endcode
*/
#define LV2_ATOM_SEQUENCE_FOREACH(seq, iter) \
- for (LV2_Atom_Event * iter = lv2_atom_sequence_begin(&(seq)->body); \
+ for (LV2_Atom_Event* iter = lv2_atom_sequence_begin(&(seq)->body); \
!lv2_atom_sequence_is_end(&(seq)->body, (seq)->atom.size, (iter)); \
(iter) = lv2_atom_sequence_next(iter))
/** Like LV2_ATOM_SEQUENCE_FOREACH but for a headerless sequence body. */
-#define LV2_ATOM_SEQUENCE_BODY_FOREACH(body, size, iter) \
- for (LV2_Atom_Event * iter = lv2_atom_sequence_begin(body); \
- !lv2_atom_sequence_is_end(body, size, (iter)); \
+#define LV2_ATOM_SEQUENCE_BODY_FOREACH(body, size, iter) \
+ for (LV2_Atom_Event* iter = lv2_atom_sequence_begin(body); \
+ !lv2_atom_sequence_is_end(body, size, (iter)); \
(iter) = lv2_atom_sequence_next(iter))
/**
@@ -223,15 +214,14 @@ lv2_atom_tuple_next(const LV2_Atom* i)
}
@endcode
*/
-#define LV2_ATOM_TUPLE_FOREACH(tuple, iter) \
- for (LV2_Atom * iter = lv2_atom_tuple_begin(tuple); \
- !lv2_atom_tuple_is_end( \
- LV2_ATOM_BODY(tuple), (tuple)->atom.size, (iter)); \
+#define LV2_ATOM_TUPLE_FOREACH(tuple, iter) \
+ for (LV2_Atom* iter = lv2_atom_tuple_begin(tuple); !lv2_atom_tuple_is_end( \
+ LV2_ATOM_BODY(tuple), (tuple)->atom.size, (iter)); \
(iter) = lv2_atom_tuple_next(iter))
/** Like LV2_ATOM_TUPLE_FOREACH but for a headerless tuple body. */
#define LV2_ATOM_TUPLE_BODY_FOREACH(body, size, iter) \
- for (LV2_Atom * iter = (LV2_Atom*)(body); \
+ for (LV2_Atom* iter = (LV2_Atom*)(body); \
!lv2_atom_tuple_is_end(body, size, (iter)); \
(iter) = lv2_atom_tuple_next(iter))
@@ -283,15 +273,15 @@ lv2_atom_object_next(const LV2_Atom_Property_Body* i)
}
@endcode
*/
-#define LV2_ATOM_OBJECT_FOREACH(obj, iter) \
- for (LV2_Atom_Property_Body * iter = lv2_atom_object_begin(&(obj)->body); \
- !lv2_atom_object_is_end(&(obj)->body, (obj)->atom.size, (iter)); \
+#define LV2_ATOM_OBJECT_FOREACH(obj, iter) \
+ for (LV2_Atom_Property_Body* iter = lv2_atom_object_begin(&(obj)->body); \
+ !lv2_atom_object_is_end(&(obj)->body, (obj)->atom.size, (iter)); \
(iter) = lv2_atom_object_next(iter))
/** Like LV2_ATOM_OBJECT_FOREACH but for a headerless object body. */
-#define LV2_ATOM_OBJECT_BODY_FOREACH(body, size, iter) \
- for (LV2_Atom_Property_Body * iter = lv2_atom_object_begin(body); \
- !lv2_atom_object_is_end(body, size, (iter)); \
+#define LV2_ATOM_OBJECT_BODY_FOREACH(body, size, iter) \
+ for (LV2_Atom_Property_Body* iter = lv2_atom_object_begin(body); \
+ !lv2_atom_object_is_end(body, size, (iter)); \
(iter) = lv2_atom_object_next(iter))
/**
@@ -370,7 +360,7 @@ lv2_atom_object_body_get(uint32_t size, const LV2_Atom_Object_Body* body, ...)
int n_queries = 0;
/* Count number of keys so we can short-circuit when done */
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, body);
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**)) {
@@ -383,7 +373,7 @@ lv2_atom_object_body_get(uint32_t size, const LV2_Atom_Object_Body* body, ...)
LV2_ATOM_OBJECT_BODY_FOREACH (body, size, prop) {
va_start(args, body);
for (int i = 0; i < n_queries; ++i) {
- uint32_t qkey = va_arg(args, uint32_t);
+ const uint32_t qkey = va_arg(args, uint32_t);
const LV2_Atom** qval = va_arg(args, const LV2_Atom**);
if (qkey == prop->key && !*qval) {
*qval = &prop->value;
@@ -425,7 +415,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...)
int n_queries = 0;
/* Count number of keys so we can short-circuit when done */
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, object);
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**)) {
@@ -438,7 +428,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...)
LV2_ATOM_OBJECT_FOREACH (object, prop) {
va_start(args, object);
for (int i = 0; i < n_queries; ++i) {
- uint32_t qkey = va_arg(args, uint32_t);
+ const uint32_t qkey = va_arg(args, uint32_t);
const LV2_Atom** qval = va_arg(args, const LV2_Atom**);
if (qkey == prop->key && !*qval) {
*qval = &prop->value;
@@ -481,7 +471,7 @@ lv2_atom_object_get_typed(const LV2_Atom_Object* object, ...)
int n_queries = 0;
/* Count number of keys so we can short-circuit when done */
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, object);
for (n_queries = 0; va_arg(args, uint32_t); ++n_queries) {
if (!va_arg(args, const LV2_Atom**) || !va_arg(args, uint32_t)) {
@@ -515,9 +505,11 @@ lv2_atom_object_get_typed(const LV2_Atom_Object* object, ...)
} /* extern "C" */
#endif
+// NOLINTEND(bugprone-macro-parentheses)
+
/**
@}
@}
*/
-#endif /* LV2_ATOM_UTIL_H */
+#endif // LV2_ATOM_UTIL_H
diff --git a/include/lv2/buf-size/buf-size.h b/include/lv2/buf-size/buf-size.h
index d96e17d..c1a00e1 100644
--- a/include/lv2/buf-size/buf-size.h
+++ b/include/lv2/buf-size/buf-size.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2007-2016 David Robillard <d@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.
-*/
+// Copyright 2007-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_BUF_SIZE_H
-#define LV2_BUF_SIZE_H
+#ifndef LV2_BUF_SIZE_BUF_SIZE_H
+#define LV2_BUF_SIZE_BUF_SIZE_H
/**
@defgroup buf-size Buffer Size
@@ -48,4 +35,4 @@
@}
*/
-#endif /* LV2_BUF_SIZE_H */
+#endif // LV2_BUF_SIZE_BUF_SIZE_H
diff --git a/include/lv2/core/attributes.h b/include/lv2/core/attributes.h
index 81791a2..2db876f 100644
--- a/include/lv2/core/attributes.h
+++ b/include/lv2/core/attributes.h
@@ -1,18 +1,5 @@
-/*
- Copyright 2018 David Robillard <d@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.
-*/
+// Copyright 2018 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#ifndef LV2_CORE_ATTRIBUTES_H
#define LV2_CORE_ATTRIBUTES_H
@@ -56,4 +43,4 @@
@}
*/
-#endif /* LV2_CORE_ATTRIBUTES_H */
+#endif // LV2_CORE_ATTRIBUTES_H
diff --git a/include/lv2/core/lv2.h b/include/lv2/core/lv2.h
index 84c40a5..b085ac5 100644
--- a/include/lv2/core/lv2.h
+++ b/include/lv2/core/lv2.h
@@ -1,25 +1,10 @@
-/*
- LV2 - An audio plugin interface specification.
- Copyright 2006-2012 Steve Harris, David Robillard.
-
- Based on LADSPA, Copyright 2000-2002 Richard W.E. Furse,
- Paul Barton-Davis, Stefan Westerfeld.
-
- 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.
-*/
+// Copyright 2006-2020 David Robillard <d@drobilla.net>
+// Copyright 2006-2012 Steve Harris <steve@plugin.org.uk>
+// Copyright 2000-2002 Richard W.E. Furse, Paul Barton-Davis, Stefan Westerfeld.
+// SPDX-License-Identifier: ISC
-#ifndef LV2_H_INCLUDED
-#define LV2_H_INCLUDED
+#ifndef LV2_CORE_LV2_H
+#define LV2_CORE_LV2_H
/**
@defgroup lv2 LV2
@@ -366,11 +351,13 @@ typedef struct LV2_Descriptor {
Put this (LV2_SYMBOL_EXPORT) before any functions that are to be loaded
by the host as a symbol from the dynamic library.
*/
-#ifdef _WIN32
-# define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN __declspec(dllexport)
-#else
-# define LV2_SYMBOL_EXPORT \
- LV2_SYMBOL_EXTERN __attribute__((visibility("default")))
+#ifndef LV2_SYMBOL_EXPORT
+# ifdef _WIN32
+# define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN __declspec(dllexport)
+# else
+# define LV2_SYMBOL_EXPORT \
+ LV2_SYMBOL_EXTERN __attribute__((visibility("default")))
+# endif
#endif
/**
@@ -482,4 +469,4 @@ typedef const LV2_Lib_Descriptor* (*LV2_Lib_Descriptor_Function)(
@}
*/
-#endif /* LV2_H_INCLUDED */
+#endif // LV2_CORE_LV2_H
diff --git a/include/lv2/core/lv2_util.h b/include/lv2/core/lv2_util.h
index f3766aa..2bac3c9 100644
--- a/include/lv2/core/lv2_util.h
+++ b/include/lv2/core/lv2_util.h
@@ -1,21 +1,11 @@
-/*
- Copyright 2016 David Robillard <d@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.
-*/
+// Copyright 2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#ifndef LV2_CORE_LV2_UTIL_H
+#define LV2_CORE_LV2_UTIL_H
/**
- @defgroup util Utilities
+ @defgroup lv2_util Utilities
@ingroup lv2core
@{
*/
@@ -75,13 +65,13 @@ lv2_features_data(const LV2_Feature* const* features, const char* const uri)
static inline const char*
lv2_features_query(const LV2_Feature* const* features, ...)
{
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, features);
const char* uri = NULL;
while ((uri = va_arg(args, const char*))) {
- void** data = va_arg(args, void**);
- bool required = (bool)va_arg(args, int);
+ void** data = va_arg(args, void**);
+ const bool required = (bool)va_arg(args, int);
*data = lv2_features_data(features, uri);
if (required && !*data) {
@@ -101,3 +91,5 @@ lv2_features_query(const LV2_Feature* const* features, ...)
/**
@}
*/
+
+#endif // LV2_CORE_LV2_UTIL_H
diff --git a/include/lv2/data-access/data-access.h b/include/lv2/data-access/data-access.h
index de3b6b6..4586273 100644
--- a/include/lv2/data-access/data-access.h
+++ b/include/lv2/data-access/data-access.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2008-2016 David Robillard <d@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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_DATA_ACCESS_H
-#define LV2_DATA_ACCESS_H
+#ifndef LV2_DATA_ACCESS_DATA_ACCESS_H
+#define LV2_DATA_ACCESS_DATA_ACCESS_H
/**
@defgroup data-access Data Access
@@ -70,4 +57,4 @@ typedef struct {
@}
*/
-#endif /* LV2_DATA_ACCESS_H */
+#endif // LV2_DATA_ACCESS_DATA_ACCESS_H
diff --git a/include/lv2/dynmanifest/dynmanifest.h b/include/lv2/dynmanifest/dynmanifest.h
index 674577b..b1a273c 100644
--- a/include/lv2/dynmanifest/dynmanifest.h
+++ b/include/lv2/dynmanifest/dynmanifest.h
@@ -1,22 +1,8 @@
-/*
- Dynamic manifest specification for LV2
- Copyright 2008-2011 Stefano D'Angelo <zanga.mail@gmail.com>
-
- 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.
-*/
+// Copyright 2008-2011 Stefano D'Angelo <zanga.mail@gmail.com>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_DYN_MANIFEST_H_INCLUDED
-#define LV2_DYN_MANIFEST_H_INCLUDED
+#ifndef LV2_DYNMANIFEST_DYNMANIFEST_H
+#define LV2_DYNMANIFEST_DYNMANIFEST_H
/**
@defgroup dynmanifest Dynamic Manifest
@@ -70,6 +56,7 @@ typedef void* LV2_Dyn_Manifest_Handle;
evaluate the result of the operation by examining the returned value and
MUST NOT try to interpret the value of handle.
*/
+LV2_SYMBOL_EXPORT
int
lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle* handle,
const LV2_Feature* const* features);
@@ -97,6 +84,7 @@ lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle* handle,
@return 0 on success, otherwise a non-zero error code.
*/
+LV2_SYMBOL_EXPORT
int
lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle, FILE* fp);
@@ -130,6 +118,7 @@ lv2_dyn_manifest_get_subjects(LV2_Dyn_Manifest_Handle handle, FILE* fp);
@return 0 on success, otherwise a non-zero error code.
*/
+LV2_SYMBOL_EXPORT
int
lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle,
FILE* fp,
@@ -146,6 +135,7 @@ lv2_dyn_manifest_get_data(LV2_Dyn_Manifest_Handle handle,
@param handle Dynamic manifest generator handle.
*/
+LV2_SYMBOL_EXPORT
void
lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
@@ -157,4 +147,4 @@ lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
@}
*/
-#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
+#endif // LV2_DYNMANIFEST_DYNMANIFEST_H
diff --git a/include/lv2/event/event-helpers.h b/include/lv2/event/event-helpers.h
index bf1b885..a9eb423 100644
--- a/include/lv2/event/event-helpers.h
+++ b/include/lv2/event/event-helpers.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2008-2015 David Robillard <d@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.
-*/
+// Copyright 2008-2015 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_EVENT_HELPERS_H
-#define LV2_EVENT_HELPERS_H
+#ifndef LV2_EVENT_EVENT_HELPERS_H
+#define LV2_EVENT_EVENT_HELPERS_H
/**
@file event-helpers.h Helper functions for the LV2 Event extension
@@ -252,4 +239,4 @@ LV2_RESTORE_WARNINGS
} /* extern "C" */
#endif
-#endif /* LV2_EVENT_HELPERS_H */
+#endif // LV2_EVENT_EVENT_HELPERS_H
diff --git a/include/lv2/event/event.h b/include/lv2/event/event.h
index ed5adde..e255291 100644
--- a/include/lv2/event/event.h
+++ b/include/lv2/event/event.h
@@ -1,22 +1,9 @@
-/*
- Copyright 2008-2016 David Robillard <d@drobilla.net>
- Copyright 2006-2007 Lars Luthman <lars.luthman@gmail.com>
-
- 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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// Copyright 2006-2007 Lars Luthman <lars.luthman@gmail.com>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_EVENT_H
-#define LV2_EVENT_H
+#ifndef LV2_EVENT_EVENT_H
+#define LV2_EVENT_EVENT_H
/**
@defgroup event Event
@@ -295,4 +282,4 @@ LV2_RESTORE_WARNINGS
@}
*/
-#endif /* LV2_EVENT_H */
+#endif // LV2_EVENT_EVENT_H
diff --git a/include/lv2/instance-access/instance-access.h b/include/lv2/instance-access/instance-access.h
index 2986f69..70c2789 100644
--- a/include/lv2/instance-access/instance-access.h
+++ b/include/lv2/instance-access/instance-access.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2008-2016 David Robillard <d@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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_INSTANCE_ACCESS_H
-#define LV2_INSTANCE_ACCESS_H
+#ifndef LV2_INSTANCE_ACCESS_INSTANCE_ACCESS_H
+#define LV2_INSTANCE_ACCESS_INSTANCE_ACCESS_H
/**
@defgroup instance-access Instance Access
@@ -38,4 +25,4 @@
@}
*/
-#endif /* LV2_INSTANCE_ACCESS_H */
+#endif // LV2_INSTANCE_ACCESS_INSTANCE_ACCESS_H
diff --git a/include/lv2/log/log.h b/include/lv2/log/log.h
index cc62bef..b460f45 100644
--- a/include/lv2/log/log.h
+++ b/include/lv2/log/log.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_LOG_H
-#define LV2_LOG_H
+#ifndef LV2_LOG_LOG_H
+#define LV2_LOG_LOG_H
/**
@defgroup log Log
@@ -110,4 +97,4 @@ typedef struct {
@}
*/
-#endif /* LV2_LOG_H */
+#endif // LV2_LOG_LOG_H
diff --git a/include/lv2/log/logger.h b/include/lv2/log/logger.h
index d6919a2..37fe564 100644
--- a/include/lv2/log/logger.h
+++ b/include/lv2/log/logger.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_ATOM_LOGGER_H
-#define LV2_ATOM_LOGGER_H
+#ifndef LV2_LOG_LOGGER_H
+#define LV2_LOG_LOGGER_H
/**
@defgroup logger Logger
@@ -103,7 +90,7 @@ LV2_LOG_FUNC(2, 3)
static inline int
lv2_log_error(LV2_Log_Logger* logger, const char* fmt, ...)
{
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, fmt);
const int ret = lv2_log_vprintf(logger, logger->Error, fmt, args);
va_end(args);
@@ -115,7 +102,7 @@ LV2_LOG_FUNC(2, 3)
static inline int
lv2_log_note(LV2_Log_Logger* logger, const char* fmt, ...)
{
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, fmt);
const int ret = lv2_log_vprintf(logger, logger->Note, fmt, args);
va_end(args);
@@ -127,7 +114,7 @@ LV2_LOG_FUNC(2, 3)
static inline int
lv2_log_trace(LV2_Log_Logger* logger, const char* fmt, ...)
{
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, fmt);
const int ret = lv2_log_vprintf(logger, logger->Trace, fmt, args);
va_end(args);
@@ -139,7 +126,7 @@ LV2_LOG_FUNC(2, 3)
static inline int
lv2_log_warning(LV2_Log_Logger* logger, const char* fmt, ...)
{
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, fmt);
const int ret = lv2_log_vprintf(logger, logger->Warning, fmt, args);
va_end(args);
@@ -154,4 +141,4 @@ lv2_log_warning(LV2_Log_Logger* logger, const char* fmt, ...)
@}
*/
-#endif /* LV2_LOG_LOGGER_H */
+#endif // LV2_LOG_LOGGER_H
diff --git a/include/lv2/midi/midi.h b/include/lv2/midi/midi.h
index f7e0500..2a687fb 100644
--- a/include/lv2/midi/midi.h
+++ b/include/lv2/midi/midi.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_MIDI_H
-#define LV2_MIDI_H
+#ifndef LV2_MIDI_MIDI_H
+#define LV2_MIDI_MIDI_H
/**
@defgroup midi MIDI
@@ -215,7 +202,7 @@ lv2_midi_is_system_message(const uint8_t* msg)
case 0xFD:
return false;
default:
- return (msg[0] & 0xF0u) == 0xF0u;
+ return (msg[0] & 0xF0U) == 0xF0U;
}
}
@@ -227,7 +214,7 @@ static inline LV2_Midi_Message_Type
lv2_midi_message_type(const uint8_t* msg)
{
if (lv2_midi_is_voice_message(msg)) {
- return (LV2_Midi_Message_Type)(msg[0] & 0xF0u);
+ return (LV2_Midi_Message_Type)(msg[0] & 0xF0U);
}
if (lv2_midi_is_system_message(msg)) {
@@ -245,4 +232,4 @@ lv2_midi_message_type(const uint8_t* msg)
@}
*/
-#endif /* LV2_MIDI_H */
+#endif // LV2_MIDI_MIDI_H
diff --git a/include/lv2/morph/morph.h b/include/lv2/morph/morph.h
index 370937a..88bfe81 100644
--- a/include/lv2/morph/morph.h
+++ b/include/lv2/morph/morph.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_MORPH_H
-#define LV2_MORPH_H
+#ifndef LV2_MORPH_MORPH_H
+#define LV2_MORPH_MORPH_H
/**
@defgroup morph Morph
@@ -45,4 +32,4 @@
@}
*/
-#endif /* LV2_MORPH_H */
+#endif // LV2_MORPH_MORPH_H
diff --git a/include/lv2/options/options.h b/include/lv2/options/options.h
index 06e5db4..0169b46 100644
--- a/include/lv2/options/options.h
+++ b/include/lv2/options/options.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_OPTIONS_H
-#define LV2_OPTIONS_H
+#ifndef LV2_OPTIONS_OPTIONS_H
+#define LV2_OPTIONS_OPTIONS_H
/**
@defgroup options Options
@@ -102,11 +89,11 @@ typedef struct {
/** A status code for option functions. */
typedef enum {
- LV2_OPTIONS_SUCCESS = 0u, /**< Completed successfully. */
- LV2_OPTIONS_ERR_UNKNOWN = 1u, /**< Unknown error. */
- LV2_OPTIONS_ERR_BAD_SUBJECT = 1u << 1u, /**< Invalid/unsupported subject. */
- LV2_OPTIONS_ERR_BAD_KEY = 1u << 2u, /**< Invalid/unsupported key. */
- LV2_OPTIONS_ERR_BAD_VALUE = 1u << 3u /**< Invalid/unsupported value. */
+ LV2_OPTIONS_SUCCESS = 0U, /**< Completed successfully. */
+ LV2_OPTIONS_ERR_UNKNOWN = 1U, /**< Unknown error. */
+ LV2_OPTIONS_ERR_BAD_SUBJECT = 1U << 1U, /**< Invalid/unsupported subject. */
+ LV2_OPTIONS_ERR_BAD_KEY = 1U << 2U, /**< Invalid/unsupported key. */
+ LV2_OPTIONS_ERR_BAD_VALUE = 1U << 3U /**< Invalid/unsupported value. */
} LV2_Options_Status;
/**
@@ -146,4 +133,4 @@ typedef struct {
@}
*/
-#endif /* LV2_OPTIONS_H */
+#endif // LV2_OPTIONS_OPTIONS_H
diff --git a/include/lv2/parameters/parameters.h b/include/lv2/parameters/parameters.h
index 66a7561..b20c83e 100644
--- a/include/lv2/parameters/parameters.h
+++ b/include/lv2/parameters/parameters.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@drobilla.net>
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
- 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 LV2_PARAMETERS_H
-#define LV2_PARAMETERS_H
+#ifndef LV2_PARAMETERS_PARAMETERS_H
+#define LV2_PARAMETERS_PARAMETERS_H
/**
@defgroup parameters Parameters
@@ -65,4 +52,4 @@
@}
*/
-#endif /* LV2_PARAMETERS_H */
+#endif // LV2_PARAMETERS_PARAMETERS_H
diff --git a/include/lv2/patch/patch.h b/include/lv2/patch/patch.h
index 4db2abb..99fd8e9 100644
--- a/include/lv2/patch/patch.h
+++ b/include/lv2/patch/patch.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@drobilla.net>
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
- 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 LV2_PATCH_H
-#define LV2_PATCH_H
+#ifndef LV2_PATCH_PATCH_H
+#define LV2_PATCH_PATCH_H
/**
@defgroup patch Patch
@@ -70,4 +57,4 @@
@}
*/
-#endif /* LV2_PATCH_H */
+#endif // LV2_PATCH_PATCH_H
diff --git a/include/lv2/port-groups/port-groups.h b/include/lv2/port-groups/port-groups.h
index 0ff25c7..ff00533 100644
--- a/include/lv2/port-groups/port-groups.h
+++ b/include/lv2/port-groups/port-groups.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@drobilla.net>
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
- 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 LV2_PORT_GROUPS_H
-#define LV2_PORT_GROUPS_H
+#ifndef LV2_PORT_GROUPS_PORT_GROUPS_H
+#define LV2_PORT_GROUPS_PORT_GROUPS_H
/**
@defgroup port-groups Port Groups
@@ -74,4 +61,4 @@
@}
*/
-#endif /* LV2_PORT_GROUPS_H */
+#endif // LV2_PORT_GROUPS_PORT_GROUPS_H
diff --git a/include/lv2/port-props/port-props.h b/include/lv2/port-props/port-props.h
index ff4adcd..6007f4b 100644
--- a/include/lv2/port-props/port-props.h
+++ b/include/lv2/port-props/port-props.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_PORT_PROPS_H
-#define LV2_PORT_PROPS_H
+#ifndef LV2_PORT_PROPS_PORT_PROPS_H
+#define LV2_PORT_PROPS_PORT_PROPS_H
/**
@defgroup port-props Port Properties
@@ -50,4 +37,4 @@
@}
*/
-#endif /* LV2_PORT_PROPS_H */
+#endif // LV2_PORT_PROPS_PORT_PROPS_H
diff --git a/include/lv2/presets/presets.h b/include/lv2/presets/presets.h
index 716ab32..ecd23a2 100644
--- a/include/lv2/presets/presets.h
+++ b/include/lv2/presets/presets.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_PRESETS_H
-#define LV2_PRESETS_H
+#ifndef LV2_PRESETS_PRESETS_H
+#define LV2_PRESETS_PRESETS_H
/**
@defgroup presets Presets
@@ -45,4 +32,4 @@
@}
*/
-#endif /* LV2_PRESETS_H */
+#endif // LV2_PRESETS_PRESETS_H
diff --git a/include/lv2/resize-port/resize-port.h b/include/lv2/resize-port/resize-port.h
index a3a11c4..7593a6d 100644
--- a/include/lv2/resize-port/resize-port.h
+++ b/include/lv2/resize-port/resize-port.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2007-2016 David Robillard <d@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.
-*/
+// Copyright 2007-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_RESIZE_PORT_H
-#define LV2_RESIZE_PORT_H
+#ifndef LV2_RESIZE_PORT_RESIZE_PORT_H
+#define LV2_RESIZE_PORT_RESIZE_PORT_H
/**
@defgroup resize-port Resize Port
@@ -86,4 +73,4 @@ typedef struct {
@}
*/
-#endif /* LV2_RESIZE_PORT_H */
+#endif // LV2_RESIZE_PORT_RESIZE_PORT_H
diff --git a/include/lv2/state/state.h b/include/lv2/state/state.h
index 01ec598..a44f3cc 100644
--- a/include/lv2/state/state.h
+++ b/include/lv2/state/state.h
@@ -1,22 +1,9 @@
-/*
- Copyright 2010-2016 David Robillard <d@drobilla.net>
- Copyright 2010 Leonard Ritter <paniq@paniq.org>
-
- 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.
-*/
+// Copyright 2010-2016 David Robillard <d@drobilla.net>
+// Copyright 2010 Leonard Ritter <paniq@paniq.org>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_STATE_H
-#define LV2_STATE_H
+#ifndef LV2_STATE_STATE_H
+#define LV2_STATE_STATE_H
/**
@defgroup state State
@@ -82,7 +69,7 @@ typedef enum {
Implementations MUST NOT attempt to copy or serialise a non-POD value if
they do not understand its type (and thus know how to correctly do so).
*/
- LV2_STATE_IS_POD = 1u << 0u,
+ LV2_STATE_IS_POD = 1U << 0U,
/**
Portable (architecture independent) data.
@@ -93,7 +80,7 @@ typedef enum {
values MUST NOT depend on architecture-specific properties like
endianness or alignment. Portable values MUST NOT contain filenames.
*/
- LV2_STATE_IS_PORTABLE = 1u << 1u,
+ LV2_STATE_IS_PORTABLE = 1U << 1U,
/**
Native data.
@@ -104,7 +91,7 @@ typedef enum {
most efficient representation possible and not worry about serialisation
and portability.
*/
- LV2_STATE_IS_NATIVE = 1u << 2u
+ LV2_STATE_IS_NATIVE = 1U << 2U
} LV2_State_Flags;
/** A status code for state functions. */
@@ -389,4 +376,4 @@ typedef struct {
@}
*/
-#endif /* LV2_STATE_H */
+#endif // LV2_STATE_STATE_H
diff --git a/include/lv2/time/time.h b/include/lv2/time/time.h
index 1dce219..2d81dc7 100644
--- a/include/lv2/time/time.h
+++ b/include/lv2/time/time.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2011-2016 David Robillard <d@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.
-*/
+// Copyright 2011-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_TIME_H
-#define LV2_TIME_H
+#ifndef LV2_TIME_TIME_H
+#define LV2_TIME_TIME_H
/**
@defgroup time Time
@@ -56,4 +43,4 @@
@}
*/
-#endif /* LV2_TIME_H */
+#endif // LV2_TIME_TIME_H
diff --git a/include/lv2/ui/ui.h b/include/lv2/ui/ui.h
index fb41d90..4d2fed7 100644
--- a/include/lv2/ui/ui.h
+++ b/include/lv2/ui/ui.h
@@ -1,23 +1,9 @@
-/*
- LV2 UI Extension
- Copyright 2009-2016 David Robillard <d@drobilla.net>
- Copyright 2006-2011 Lars Luthman <lars.luthman@gmail.com>
-
- 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.
-*/
+// Copyright 2009-2016 David Robillard <d@drobilla.net>
+// Copyright 2006-2011 Lars Luthman <lars.luthman@gmail.com>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_UI_H
-#define LV2_UI_H
+#ifndef LV2_UI_UI_H
+#define LV2_UI_UI_H
/**
@defgroup ui User Interfaces
@@ -540,4 +526,4 @@ typedef const LV2UI_Descriptor* (*LV2UI_DescriptorFunction)(uint32_t index);
@}
*/
-#endif /* LV2_UI_H */
+#endif // LV2_UI_UI_H
diff --git a/include/lv2/units/units.h b/include/lv2/units/units.h
index 09ae16b..a6ac4c5 100644
--- a/include/lv2/units/units.h
+++ b/include/lv2/units/units.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@drobilla.net>
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
- 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 LV2_UNITS_H
-#define LV2_UNITS_H
+#ifndef LV2_UNITS_UNITS_H
+#define LV2_UNITS_UNITS_H
/**
@defgroup units Units
@@ -72,4 +59,4 @@
@}
*/
-#endif /* LV2_UNITS_H */
+#endif // LV2_UNITS_UNITS_H
diff --git a/include/lv2/uri-map/uri-map.h b/include/lv2/uri-map/uri-map.h
index 47cde1c..dc25a55 100644
--- a/include/lv2/uri-map/uri-map.h
+++ b/include/lv2/uri-map/uri-map.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2008-2016 David Robillard <d@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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_URI_MAP_H
-#define LV2_URI_MAP_H
+#ifndef LV2_URI_MAP_URI_MAP_H
+#define LV2_URI_MAP_URI_MAP_H
/**
@defgroup uri-map URI Map
@@ -118,4 +105,4 @@ LV2_RESTORE_WARNINGS
@}
*/
-#endif /* LV2_URI_MAP_H */
+#endif // LV2_URI_MAP_URI_MAP_H
diff --git a/include/lv2/urid/urid.h b/include/lv2/urid/urid.h
index b537d14..8dc4332 100644
--- a/include/lv2/urid/urid.h
+++ b/include/lv2/urid/urid.h
@@ -1,22 +1,9 @@
-/*
- Copyright 2008-2016 David Robillard <d@drobilla.net>
- Copyright 2011 Gabriel M. Beddingfield <gabrbedd@gmail.com>
-
- 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.
-*/
+// Copyright 2008-2016 David Robillard <d@drobilla.net>
+// Copyright 2011 Gabriel M. Beddingfield <gabrbedd@gmail.com>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_URID_H
-#define LV2_URID_H
+#ifndef LV2_URID_URID_H
+#define LV2_URID_URID_H
/**
@defgroup urid URID
@@ -137,4 +124,4 @@ typedef struct {
@}
*/
-#endif /* LV2_URID_H */
+#endif // LV2_URID_URID_H
diff --git a/include/lv2/worker/worker.h b/include/lv2/worker/worker.h
index 4fd89f9..613198b 100644
--- a/include/lv2/worker/worker.h
+++ b/include/lv2/worker/worker.h
@@ -1,21 +1,8 @@
-/*
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
-#ifndef LV2_WORKER_H
-#define LV2_WORKER_H
+#ifndef LV2_WORKER_WORKER_H
+#define LV2_WORKER_WORKER_H
/**
@defgroup worker Worker
@@ -180,4 +167,4 @@ typedef struct {
@}
*/
-#endif /* LV2_WORKER_H */
+#endif // LV2_WORKER_WORKER_H
diff --git a/lv2/atom.lv2/atom.meta.ttl b/lv2/atom.lv2/atom.meta.ttl
index adab5f4..e2902c5 100644
--- a/lv2/atom.lv2/atom.meta.ttl
+++ b/lv2/atom.lv2/atom.meta.ttl
@@ -1,5 +1,4 @@
@prefix atom: <http://lv2plug.in/ns/ext/atom#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,107 +11,6 @@
doap:license <http://opensource.org/licenses/isc> ;
doap:created "2007-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.4" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "2.2" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2_atom_object_get_typed() for easy type-safe access to object properties."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Deprecate Blank and Resource in favour of just Object."
- ] , [
- rdfs:label "Add lv2_atom_forge_is_object_type() and lv2_atom_forge_is_blank() to ease backwards compatibility."
- ] , [
- rdfs:label "Add lv2_atom_forge_key() for terser object writing."
- ] , [
- rdfs:label "Add lv2_atom_sequence_clear() and lv2_atom_sequence_append_event() helper functions."
- ]
- ]
- ] , [
- doap:revision "1.8" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make lv2_atom_*_is_end() arguments const."
- ]
- ]
- ] , [
- doap:revision "1.6" ;
- doap:created "2013-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.6.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix crash in forge.h when pushing atoms to a full buffer."
- ]
- ]
- ] , [
- doap:revision "1.4" ;
- doap:created "2013-01-27" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix lv2_atom_sequence_end()."
- ] , [
- rdfs:label "Remove atom:stringType in favour of owl:onDatatype so generic tools can understand and validate atom literals."
- ] , [
- rdfs:label "Improve atom documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix implicit conversions in forge.h that are invalid in C++11."
- ] , [
- rdfs:label "Fix lv2_atom_object_next() on 32-bit platforms."
- ] , [
- rdfs:label "Add lv2_atom_object_body_get()."
- ] , [
- rdfs:label "Fix outdated documentation in forge.h."
- ] , [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add LV2_ATOM_CONTENTS_CONST and LV2_ATOM_BODY_CONST."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
An atom:Atom is a simple generic data container for holding any type of Plain
@@ -549,4 +447,3 @@ This protocol applies to atom ports. The host must transfer the complete atom
contained in the port, including header.
"""^^lv2:Markdown .
-
diff --git a/lv2/atom.lv2/atom.ttl b/lv2/atom.lv2/atom.ttl
index bdeaebf..03d3531 100644
--- a/lv2/atom.lv2/atom.ttl
+++ b/lv2/atom.lv2/atom.ttl
@@ -244,4 +244,3 @@ atom:atomTransfer
a ui:PortProtocol ;
rdfs:label "atom transfer" ;
rdfs:comment "A port protocol for transferring atoms." .
-
diff --git a/lv2/atom.lv2/manifest.ttl b/lv2/atom.lv2/manifest.ttl
index 3cb5134..8875a20 100644
--- a/lv2/atom.lv2/manifest.ttl
+++ b/lv2/atom.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 4 ;
rdfs:seeAlso <atom.ttl> .
-
diff --git a/lv2/buf-size.lv2/buf-size.meta.ttl b/lv2/buf-size.lv2/buf-size.meta.ttl
index b1d8011..dbce35b 100644
--- a/lv2/buf-size.lv2/buf-size.meta.ttl
+++ b/lv2/buf-size.lv2/buf-size.meta.ttl
@@ -1,5 +1,4 @@
@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -11,39 +10,6 @@
doap:shortdesc "Access to, and restrictions on, buffer sizes." ;
doap:created "2012-08-07" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2015-09-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add bufsz:nominalBlockLength option."
- ] , [
- rdfs:label "Add bufsz:coarseBlockLength feature."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-12-21" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix typo in bufsz:sequenceSize label."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a facility for plugins to get information about the
@@ -154,4 +120,3 @@ This should be provided as an option by hosts that support event ports
auxiliary buffers large enough to copy the input.
"""^^lv2:Markdown .
-
diff --git a/lv2/buf-size.lv2/buf-size.ttl b/lv2/buf-size.lv2/buf-size.ttl
index 4f6bd52..be18fbe 100644
--- a/lv2/buf-size.lv2/buf-size.ttl
+++ b/lv2/buf-size.lv2/buf-size.ttl
@@ -65,4 +65,3 @@ bufsz:sequenceSize
rdfs:label "sequence size" ;
rdfs:comment "The maximum size of a sequence, in bytes." ;
rdfs:range xsd:nonNegativeInteger .
-
diff --git a/lv2/buf-size.lv2/manifest.ttl b/lv2/buf-size.lv2/manifest.ttl
index d242f97..b9cd1ec 100644
--- a/lv2/buf-size.lv2/manifest.ttl
+++ b/lv2/buf-size.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 4 ;
rdfs:seeAlso <buf-size.ttl> .
-
diff --git a/lv2/core.lv2/lv2core.meta.ttl b/lv2/core.lv2/lv2core.meta.ttl
index bb7b185..e593d2e 100644
--- a/lv2/core.lv2/lv2core.meta.ttl
+++ b/lv2/core.lv2/lv2core.meta.ttl
@@ -1,5 +1,4 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@@ -15,135 +14,6 @@
doap:developer <http://plugin.org.uk/swh.xrdf#me> ,
<http://drobilla.net/drobilla#me> ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "18.6" ;
- doap:created "2022-08-12" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.8.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix inconsistent plugin class labels."
- ]
- ]
- ] , [
- doap:revision "18.4" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "18.0" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:Markdown datatype."
- ] , [
- rdfs:label "Deprecate lv2:reportsLatency."
- ]
- ]
- ] , [
- doap:revision "16.0" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:MIDIPlugin class."
- ] , [
- rdfs:label "Rework port restrictions so that presets can be validated."
- ]
- ]
- ] , [
- doap:revision "14.0" ;
- doap:created "2016-09-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2_util.h with lv2_features_data() and lv2_features_query()."
- ] , [
- rdfs:label "Add lv2:enabled designation."
- ]
- ]
- ] , [
- doap:revision "12.4" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Relax domain of lv2:minimum lv2:maximum and lv2:default so they can be used to describe properties/parameters as well."
- ] , [
- rdfs:label "Add extern C and visibility attribute to LV2_SYMBOL_EXPORT."
- ] , [
- rdfs:label "Add lv2:isSideChain port property."
- ]
- ]
- ] , [
- doap:revision "12.2" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Clarify lv2_descriptor() and lv2_lib_descriptor() documentation."
- ]
- ]
- ] , [
- doap:revision "12.0" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:prototype for property inheritance."
- ]
- ]
- ] , [
- doap:revision "10.0" ;
- doap:created "2013-02-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2:EnvelopePlugin class."
- ] , [
- rdfs:label "Add lv2:control for designating primary event-based control ports."
- ] , [
- rdfs:label "Set range of lv2:designation to lv2:Designation."
- ] , [
- rdfs:label "Make lv2:Parameter rdfs:subClassOf rdf:Property."
- ] , [
- rdfs:label "Reserve minor version 0 for unstable development plugins."
- ]
- ]
- ] , [
- doap:revision "8.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "8.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
LV2 is an interface for writing audio plugins in C or compatible languages,
@@ -832,4 +702,3 @@ but should not be considered a part of the main signal chain. Sidechain ports
SHOULD be lv2:connectionOptional, and may be ignored by hosts.
"""^^lv2:Markdown .
-
diff --git a/lv2/core.lv2/lv2core.ttl b/lv2/core.lv2/lv2core.ttl
index 7722cac..669ca2a 100644
--- a/lv2/core.lv2/lv2core.ttl
+++ b/lv2/core.lv2/lv2core.ttl
@@ -670,4 +670,3 @@ lv2:MIDIPlugin
rdfs:subClassOf lv2:Plugin ;
rdfs:label "MIDI Plugin" ;
rdfs:comment "A plugin that primarily processes MIDI messages." .
-
diff --git a/lv2/core.lv2/manifest.ttl b/lv2/core.lv2/manifest.ttl
index 7f5e37e..27793dc 100644
--- a/lv2/core.lv2/manifest.ttl
+++ b/lv2/core.lv2/manifest.ttl
@@ -12,4 +12,3 @@
a doap:Project ;
rdfs:seeAlso <meta.ttl> ,
<people.ttl> .
-
diff --git a/lv2/core.lv2/meta.ttl b/lv2/core.lv2/meta.ttl
index d3a736f..014285c 100644
--- a/lv2/core.lv2/meta.ttl
+++ b/lv2/core.lv2/meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix meta: <http://lv2plug.in/ns/meta#> .
@@ -32,231 +31,4 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH R
meta:gabrbedd ,
meta:daste ,
meta:kfoltman ,
- meta:paniq ;
- doap:release [
- doap:revision "1.18.9" ;
- doap:created "2022-08-14" ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix includedir in pkg-config file."
- ]
- ]
- ] , [
- doap:revision "1.18.8" ;
- doap:created "2022-08-12" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.8.tar.xz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "lv2specgen: Fix installed data paths."
- ] , [
- rdfs:label "Fix documentation build with meson 0.56.2."
- ] , [
- rdfs:label "Fix lv2.h missing from installation."
- ] , [
- rdfs:label "Fix documentation build with Python 3.7."
- ] , [
- rdfs:label "eg-midigate: Fix output timing."
- ] , [
- rdfs:label "eg-sampler: Add resampling via libsamplerate."
- ] , [
- rdfs:label "eg-sampler: Fix potentially corrupt notification events."
- ]
- ]
- ] , [
- doap:revision "1.18.6" ;
- doap:created "2022-07-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.6.tar.xz> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix or avoid new compiler and tool warnings."
- ] , [
- rdfs:label "Add dark mode style for documentation."
- ] , [
- rdfs:label "Clean up and modernize Python support code."
- ] , [
- rdfs:label "Remove archaic properties from foaf vocabulary."
- ] , [
- rdfs:label "Replace canonical dcs ontology with a minimal version for LV2."
- ] , [
- rdfs:label "Switch to Meson build system."
- ] , [
- rdfs:label "Separate API headers from data."
- ] , [
- rdfs:label "Rearrange source tree to be directly usable by dependants."
- ]
- ]
- ] , [
- doap:revision "1.18.4" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ] , [
- rdfs:label "Fix build issues with newer toolchains."
- ]
- ]
- ] , [
- doap:revision "1.18.2" ;
- doap:created "2021-01-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "eg-sampler: Save and restore gain parameter value."
- ] , [
- rdfs:label "Various code cleanups and infrastructure improvements."
- ]
- ]
- ] , [
- doap:revision "1.18.0" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Improve documentation."
- ] , [
- rdfs:label "Separate extended documentation from primary data."
- ]
- ]
- ] , [
- doap:revision "1.16.0" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add core/attributes.h utility header."
- ] , [
- rdfs:label "eg-sampler: Add waveform display to UI."
- ] , [
- rdfs:label "eg-midigate: Respond to \"all notes off\" MIDI message."
- ] , [
- rdfs:label "Simplify use of lv2specgen."
- ] , [
- rdfs:label "Add lv2_validate utility."
- ] , [
- rdfs:label "Install headers to simpler paths."
- ] , [
- rdfs:label "Aggressively deprecate uri-map and event extensions."
- ] , [
- rdfs:label "Upgrade build system and fix building with Python 3.7."
- ]
- ]
- ] , [
- doap:revision "1.14.0" ;
- doap:created "2016-09-19" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label """eg-scope: Don't feed back UI state updates."""
- ] , [
- rdfs:label "eg-sampler: Fix handling of state file paths."
- ] , [
- rdfs:label "eg-sampler: Support thread-safe state restoration."
- ]
- ]
- ] , [
- doap:revision "1.12.0" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "eg-sampler: Support patch:Get, and request initial state from UI."
- ] , [
- rdfs:label "eg-sampler: Add gain parameter."
- ] , [
- rdfs:label "Fix merging of version histories in specification documentation."
- ] , [
- rdfs:label "Improve API documentation."
- ] , [
- rdfs:label "Simplify property restrictions by removing redundancy."
- ]
- ]
- ] , [
- doap:revision "1.10.0" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "lv2specgen: Display deprecated warning on classes marked owl:deprecated."
- ] , [
- rdfs:label "Fix -Wconversion warnings in headers."
- ] , [
- rdfs:label "Upgrade to waf 1.7.16."
- ]
- ]
- ] , [
- doap:revision "1.8.0" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add scope example plugin from Robin Gareus."
- ] , [
- rdfs:label "lv2specgen: Fix links to externally defined terms."
- ] , [
- rdfs:label "Install lv2specgen for use by other projects."
- ]
- ]
- ] , [
- doap:revision "1.6.0" ;
- doap:created "2013-08-09" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.6.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix port indices of metronome example."
- ] , [
- rdfs:label "Fix lv2specgen usage from command line."
- ] , [
- rdfs:label "Upgrade to waf 1.7.11."
- ]
- ]
- ] , [
- doap:revision "1.4.0" ;
- doap:created "2013-02-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add metronome example plugin to demonstrate sample accurate tempo sync."
- ] , [
- rdfs:label "Generate book-style HTML documentation from example plugins."
- ]
- ]
- ] , [
- doap:revision "1.2.0" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Move all project metadata for extensions (e.g. change log) to separate files to spare hosts from loading them during discovery."
- ] , [
- rdfs:label "Use stricter datatype definitions conformant with the XSD and OWL specifications for better validation."
- ]
- ]
- ] , [
- doap:revision "1.0.0" ;
- doap:created "2012-04-16" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label """Initial release as a unified project. Projects can now simply depend on the pkg-config package 'lv2' for all official LV2 APIs."""
- ] , [
- rdfs:label "New extensions: atom, log, parameters, patch, port-groups, port-props, resize-port, state, time, worker."
- ]
- ]
- ] .
-
+ meta:paniq .
diff --git a/lv2/core.lv2/people.ttl b/lv2/core.lv2/people.ttl
index 52d0384..c735af6 100644
--- a/lv2/core.lv2/people.ttl
+++ b/lv2/core.lv2/people.ttl
@@ -48,4 +48,3 @@ meta:bmwiedemann
a foaf:Person ;
foaf:name "Bernhard M. Wiedemann" ;
foaf:mbox <bwiedemann@suse.de> .
-
diff --git a/lv2/data-access.lv2/data-access.meta.ttl b/lv2/data-access.lv2/data-access.meta.ttl
index f3a3d19..735bf0b 100644
--- a/lv2/data-access.lv2/data-access.meta.ttl
+++ b/lv2/data-access.lv2/data-access.meta.ttl
@@ -1,5 +1,4 @@
@prefix da: <http://lv2plug.in/ns/ext/data-access#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,17 +11,6 @@
doap:shortdesc "Provides access to plugin extension data." ;
doap:created "2008-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a feature, LV2_Extension_Data_Feature, which provides
@@ -39,4 +27,3 @@ LV2_Descriptor::extension_data() with URI LV2_DATA_ACCESS_URI and data pointed
to an instance of LV2_Extension_Data_Feature.
"""^^lv2:Markdown .
-
diff --git a/lv2/data-access.lv2/data-access.ttl b/lv2/data-access.lv2/data-access.ttl
index b0dc6f4..b75cc81 100644
--- a/lv2/data-access.lv2/data-access.ttl
+++ b/lv2/data-access.lv2/data-access.ttl
@@ -7,4 +7,3 @@
rdfs:label "data access" ;
rdfs:comment "A feature that provides access to plugin extension data." ;
rdfs:seeAlso <data-access.meta.ttl> .
-
diff --git a/lv2/data-access.lv2/manifest.ttl b/lv2/data-access.lv2/manifest.ttl
index 9585a5e..54fcace 100644
--- a/lv2/data-access.lv2/manifest.ttl
+++ b/lv2/data-access.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 6 ;
rdfs:seeAlso <data-access.ttl> .
-
diff --git a/lv2/dynmanifest.lv2/dynmanifest.meta.ttl b/lv2/dynmanifest.lv2/dynmanifest.meta.ttl
index 2391678..9c2919d 100644
--- a/lv2/dynmanifest.lv2/dynmanifest.meta.ttl
+++ b/lv2/dynmanifest.lv2/dynmanifest.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix dman: <http://lv2plug.in/ns/ext/dynmanifest#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@@ -14,27 +13,6 @@
doap:shortdesc "Support for dynamic manifest data generation." ;
doap:programming-language "C" ;
doap:developer <http://lv2plug.in/ns/meta#daste> ;
- doap:release [
- doap:revision "1.6" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.4" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
The LV2 API, on its own, cannot be used to write plugin libraries where data is
@@ -108,4 +86,3 @@ All relative URIs in the generated data MUST be relative to the base path that
would be used to parse a normal LV2 manifest (the bundle path).
"""^^lv2:Markdown .
-
diff --git a/lv2/dynmanifest.lv2/dynmanifest.ttl b/lv2/dynmanifest.lv2/dynmanifest.ttl
index b46d694..12be4dc 100644
--- a/lv2/dynmanifest.lv2/dynmanifest.ttl
+++ b/lv2/dynmanifest.lv2/dynmanifest.ttl
@@ -21,4 +21,3 @@ dman:DynManifest
rdfs:comment "A DynManifest MUST have at least one lv2:binary."
] ;
rdfs:comment "Dynamic manifest for an LV2 binary." .
-
diff --git a/lv2/dynmanifest.lv2/manifest.ttl b/lv2/dynmanifest.lv2/manifest.ttl
index db27a73..2c072a3 100644
--- a/lv2/dynmanifest.lv2/manifest.ttl
+++ b/lv2/dynmanifest.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 6 ;
rdfs:seeAlso <dynmanifest.ttl> .
-
diff --git a/lv2/event.lv2/event.meta.ttl b/lv2/event.lv2/event.meta.ttl
index d8b734a..4492d2b 100644
--- a/lv2/event.lv2/event.meta.ttl
+++ b/lv2/event.lv2/event.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix ev: <http://lv2plug.in/ns/ext/event#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@@ -13,63 +12,6 @@
doap:created "2008-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ,
<http://lv2plug.in/ns/meta#larsl> ;
- doap:release [
- doap:revision "1.14" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "1.12" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Minor documentation improvements."
- ]
- ]
- ] , [
- doap:revision "1.10" ;
- doap:created "2013-01-13" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect return type in lv2_event_get()."
- ]
- ]
- ] , [
- doap:revision "1.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make event iterator gracefully handle optional ports."
- ] , [
- rdfs:label "Remove asserts from event-helper.h."
- ] , [
- rdfs:label "Use more precise domain and range for EventPort properties."
- ] , [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
<span class="warning">This extension is deprecated.</span> New implementations
@@ -215,4 +157,3 @@ their output type on an input port so the host can make more sense of the
plugin and provide a more sensible interface.
"""^^lv2:Markdown .
-
diff --git a/lv2/event.lv2/event.ttl b/lv2/event.lv2/event.ttl
index 2d871f6..ebcbd3a 100644
--- a/lv2/event.lv2/event.ttl
+++ b/lv2/event.lv2/event.ttl
@@ -82,4 +82,3 @@ ev:inheritsTimeStamp
rdfs:range lv2:Port ;
rdfs:label "inherits time stamp type" ;
rdfs:comment "Output port inherits time stamp types from an input port." .
-
diff --git a/lv2/event.lv2/manifest.ttl b/lv2/event.lv2/manifest.ttl
index 230fe73..15b095b 100644
--- a/lv2/event.lv2/manifest.ttl
+++ b/lv2/event.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 14 ;
rdfs:seeAlso <event.ttl> .
-
diff --git a/lv2/instance-access.lv2/instance-access.meta.ttl b/lv2/instance-access.lv2/instance-access.meta.ttl
index 1106334..b9cdfc4 100644
--- a/lv2/instance-access.lv2/instance-access.meta.ttl
+++ b/lv2/instance-access.lv2/instance-access.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ia: <http://lv2plug.in/ns/ext/instance-access#> .
@@ -12,17 +11,6 @@
doap:shortdesc "Provides access to the LV2_Handle of a plugin." ;
doap:created "2010-10-04" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a feature which allows plugin UIs to get a direct handle
@@ -38,4 +26,3 @@ instantiate method with URI LV2_INSTANCE_ACCESS_URI and data pointed directly
to the LV2_Handle of the plugin instance.
"""^^lv2:Markdown .
-
diff --git a/lv2/instance-access.lv2/instance-access.ttl b/lv2/instance-access.lv2/instance-access.ttl
index 637f4e0..068ef4f 100644
--- a/lv2/instance-access.lv2/instance-access.ttl
+++ b/lv2/instance-access.lv2/instance-access.ttl
@@ -7,4 +7,3 @@
rdfs:label "instance access" ;
rdfs:comment "A feature that provides access to a plugin instance." ;
rdfs:seeAlso <instance-access.meta.ttl> .
-
diff --git a/lv2/instance-access.lv2/manifest.ttl b/lv2/instance-access.lv2/manifest.ttl
index e6c8810..3da863d 100644
--- a/lv2/instance-access.lv2/manifest.ttl
+++ b/lv2/instance-access.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 6 ;
rdfs:seeAlso <instance-access.ttl> .
-
diff --git a/lv2/log.lv2/log.meta.ttl b/lv2/log.lv2/log.meta.ttl
index 87cff43..0c74e6c 100644
--- a/lv2/log.lv2/log.meta.ttl
+++ b/lv2/log.lv2/log.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix log: <http://lv2plug.in/ns/ext/log#> .
@@ -11,47 +10,6 @@
doap:shortdesc "A feature for writing log messages." ;
doap:created "2012-01-12" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.4" ;
- doap:created "2016-07-30" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add lv2_log_logger_set_map() for changing the URI map of an existing logger."
- ]
- ]
- ] , [
- doap:revision "2.2" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add missing include string.h to logger.h for memset."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2013-01-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add logger convenience API."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a feature, log:log, which allows plugins to print log
@@ -123,4 +81,3 @@ the host must pass an LV2_Feature to LV2_Descriptor::instantiate() with URI
LV2_LOG__log and data pointed to an instance of LV2_Log_Log.
"""^^lv2:Markdown .
-
diff --git a/lv2/log.lv2/log.ttl b/lv2/log.lv2/log.ttl
index 0b334ed..10f0acc 100644
--- a/lv2/log.lv2/log.ttl
+++ b/lv2/log.lv2/log.ttl
@@ -45,4 +45,3 @@ log:log
a lv2:Feature ;
rdfs:label "log" ;
rdfs:comment "Logging feature." .
-
diff --git a/lv2/log.lv2/manifest.ttl b/lv2/log.lv2/manifest.ttl
index bcaeff3..f448ffe 100644
--- a/lv2/log.lv2/manifest.ttl
+++ b/lv2/log.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 4 ;
rdfs:seeAlso <log.ttl> .
-
diff --git a/lv2/midi.lv2/manifest.ttl b/lv2/midi.lv2/manifest.ttl
index f141936..7c9efcd 100644
--- a/lv2/midi.lv2/manifest.ttl
+++ b/lv2/midi.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 10 ;
rdfs:seeAlso <midi.ttl> .
-
diff --git a/lv2/midi.lv2/midi.meta.ttl b/lv2/midi.lv2/midi.meta.ttl
index 6dc80d6..8afb944 100644
--- a/lv2/midi.lv2/midi.meta.ttl
+++ b/lv2/midi.lv2/midi.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -14,47 +13,6 @@
doap:created "2006-00-00" ;
doap:developer <http://lv2plug.in/ns/meta#larsl> ,
<http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.10" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect range of midi:chunk."
- ]
- ]
- ] , [
- doap:revision "1.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add midi:binding and midi:channel predicates."
- ] , [
- rdfs:label "Add midi:HexByte datatype for status bytes and masks."
- ] , [
- rdfs:label "Remove non-standard midi:Tick message type."
- ] , [
- rdfs:label "Add C definitions for message types and standard controllers."
- ] , [
- rdfs:label "Fix definition of SystemExclusive status byte."
- ]
- ]
- ] , [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This specification defines a data type for a MIDI message, midi:MidiEvent,
@@ -112,4 +70,3 @@ midi:statusMask
This is a status byte with the lower nibble set to zero.
"""^^lv2:Markdown .
-
diff --git a/lv2/midi.lv2/midi.ttl b/lv2/midi.lv2/midi.ttl
index 4a0e8c9..5dfdbc7 100644
--- a/lv2/midi.lv2/midi.ttl
+++ b/lv2/midi.lv2/midi.ttl
@@ -362,4 +362,3 @@ midi:velocity
rdfs:label "velocity" ;
rdfs:range midi:HexByte ;
rdfs:comment "The velocity of a note message (0 to 127)." .
-
diff --git a/lv2/morph.lv2/manifest.ttl b/lv2/morph.lv2/manifest.ttl
index 7c85cfd..c63317b 100644
--- a/lv2/morph.lv2/manifest.ttl
+++ b/lv2/morph.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 0 ;
rdfs:seeAlso <morph.ttl> .
-
diff --git a/lv2/morph.lv2/morph.meta.ttl b/lv2/morph.lv2/morph.meta.ttl
index c247783..09945c0 100644
--- a/lv2/morph.lv2/morph.meta.ttl
+++ b/lv2/morph.lv2/morph.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -11,17 +10,6 @@
doap:shortdesc "Ports that can dynamically change type." ;
doap:created "2012-05-22" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.0" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines two port types: morph:MorphPort, which has a
@@ -87,4 +75,3 @@ The currently active type of the port. This is for dynamic use as an option
and SHOULD NOT be listed in the static plugin data.
"""^^lv2:Markdown .
-
diff --git a/lv2/morph.lv2/morph.ttl b/lv2/morph.lv2/morph.ttl
index 9b8ef51..cd21dd9 100644
--- a/lv2/morph.lv2/morph.ttl
+++ b/lv2/morph.lv2/morph.ttl
@@ -43,4 +43,3 @@ morph:currentType
rdfs:domain morph:MorphPort ;
rdfs:label "current type" ;
rdfs:comment "The currently active type of the port." .
-
diff --git a/lv2/options.lv2/manifest.ttl b/lv2/options.lv2/manifest.ttl
index 18db448..c54456c 100644
--- a/lv2/options.lv2/manifest.ttl
+++ b/lv2/options.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 4 ;
rdfs:seeAlso <options.ttl> .
-
diff --git a/lv2/options.lv2/options.meta.ttl b/lv2/options.lv2/options.meta.ttl
index 838b0b9..33946f4 100644
--- a/lv2/options.lv2/options.meta.ttl
+++ b/lv2/options.lv2/options.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,37 +11,6 @@
doap:shortdesc "Runtime options for LV2 plugins and UIs." ;
doap:created "2012-08-20" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Relax range of opts:requiredOption and opts:supportedOption"
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2013-01-10" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Set the range of opts:requiredOption and opts:supportedOption to opts:Option."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a facility for <q>options</q>, which are values the host
@@ -126,4 +94,3 @@ The host SHOULD provide a value for the specified option if one is known, or
provide the user an opportunity to specify one if possible.
"""^^lv2:Markdown .
-
diff --git a/lv2/options.lv2/options.ttl b/lv2/options.lv2/options.ttl
index 5f9fcc9..7233180 100644
--- a/lv2/options.lv2/options.ttl
+++ b/lv2/options.lv2/options.ttl
@@ -41,4 +41,3 @@ opts:supportedOption
rdfs:range rdf:Property ;
rdfs:label "supported option" ;
rdfs:comment "An option supported or by the instance." .
-
diff --git a/lv2/parameters.lv2/manifest.ttl b/lv2/parameters.lv2/manifest.ttl
index 57f5d2e..4889ae5 100644
--- a/lv2/parameters.lv2/manifest.ttl
+++ b/lv2/parameters.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 4 ;
rdfs:seeAlso <parameters.ttl> .
-
diff --git a/lv2/parameters.lv2/parameters.meta.ttl b/lv2/parameters.lv2/parameters.meta.ttl
index 9d7c623..653f715 100644
--- a/lv2/parameters.lv2/parameters.meta.ttl
+++ b/lv2/parameters.lv2/parameters.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -8,41 +7,6 @@
<http://lv2plug.in/ns/ext/parameters>
a doap:Project ;
doap:name "LV2 Parameters" ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add range to parameters so hosts know how to control them."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add param:sampleRate."
- ] , [
- rdfs:label "Add parameters.h of URI defines for convenience."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
doap:created "2009-00-00" ;
doap:shortdesc "Common parameters for audio processing." ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
@@ -72,4 +36,3 @@ and wet percentages can be calculated from the following equations:
Typically, maximum value of 1 or 100 and minimum value of 0 should be used.
"""^^lv2:Markdown .
-
diff --git a/lv2/parameters.lv2/parameters.ttl b/lv2/parameters.lv2/parameters.ttl
index 9987812..2e2c5df 100644
--- a/lv2/parameters.lv2/parameters.ttl
+++ b/lv2/parameters.lv2/parameters.ttl
@@ -202,4 +202,3 @@ param:CompressorControls
] , [
lv2:designation param:ratio
] .
-
diff --git a/lv2/patch.lv2/manifest.ttl b/lv2/patch.lv2/manifest.ttl
index 4bf9cfb..fee2375 100644
--- a/lv2/patch.lv2/manifest.ttl
+++ b/lv2/patch.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 10 ;
rdfs:seeAlso <patch.ttl> .
-
diff --git a/lv2/patch.lv2/patch.meta.ttl b/lv2/patch.lv2/patch.meta.ttl
index 12cb6c6..edbb5dc 100644
--- a/lv2/patch.lv2/patch.meta.ttl
+++ b/lv2/patch.lv2/patch.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,87 +11,6 @@
doap:developer <http://drobilla.net/drobilla#me> ;
doap:name "LV2 Patch" ;
doap:shortdesc "A protocol for accessing and manipulating properties." ;
- doap:release [
- doap:revision "2.10" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ] , [
- rdfs:label "Make the type of patch:wildcard more precise."
- ] , [
- rdfs:label "Fix type and range of patch:value."
- ]
- ]
- ] , [
- doap:revision "2.8" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect type of patch:sequenceNumber."
- ]
- ]
- ] , [
- doap:revision "2.6" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add patch:accept property."
- ] , [
- rdfs:label "Add patch:context property."
- ]
- ]
- ] , [
- doap:revision "2.4" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Define patch:Get with no subject to implicitly apply to receiver. This can be used by UIs to get an initial description of a plugin."
- ] , [
- rdfs:label "Add patch:Copy method."
- ]
- ]
- ] , [
- doap:revision "2.2" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add patch:sequenceNumber for associating replies with requests."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2013-01-10" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Make patch:Set a compact message for setting one property."
- ] , [
- rdfs:label "Add patch:readable and patch:writable for describing available properties."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This is a vocabulary for messages that access and manipulate properties.
@@ -385,4 +303,3 @@ interfaces to present appropriate controls. For example:
patch:writable eg:title .
"""^^lv2:Markdown .
-
diff --git a/lv2/patch.lv2/patch.ttl b/lv2/patch.lv2/patch.ttl
index 33d04d1..59ca118 100644
--- a/lv2/patch.lv2/patch.ttl
+++ b/lv2/patch.lv2/patch.ttl
@@ -245,4 +245,3 @@ patch:writable
rdfs:label "writable" ;
rdfs:range rdf:Property ;
rdfs:comment "A property that can be set with a patch:Set or patch:Patch message." .
-
diff --git a/lv2/port-groups.lv2/manifest.ttl b/lv2/port-groups.lv2/manifest.ttl
index a887cb0..7df99a8 100644
--- a/lv2/port-groups.lv2/manifest.ttl
+++ b/lv2/port-groups.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 4 ;
rdfs:seeAlso <port-groups.ttl> .
-
diff --git a/lv2/port-groups.lv2/port-groups.meta.ttl b/lv2/port-groups.lv2/port-groups.meta.ttl
index 67408ec..a76d783 100644
--- a/lv2/port-groups.lv2/port-groups.meta.ttl
+++ b/lv2/port-groups.lv2/port-groups.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,40 +11,7 @@
doap:shortdesc "Multi-channel groups of LV2 ports." ;
doap:created "2008-00-00" ;
doap:developer <http://lv2plug.in/ns/meta#larsl> ,
- <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Replace broken links with detailed Ambisonic channel descriptions."
- ] , [
- rdfs:label "Remove incorrect type of pg:letterCode."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] .
+ <http://drobilla.net/drobilla#me> .
pg:Group
lv2:documentation """
@@ -141,4 +107,3 @@ does not depend on a particular speaker configuration; a decoder can be used to
convert an ambisonic stream for any speaker configuration.
"""^^lv2:Markdown .
-
diff --git a/lv2/port-groups.lv2/port-groups.ttl b/lv2/port-groups.lv2/port-groups.ttl
index 2806821..9fc5c34 100644
--- a/lv2/port-groups.lv2/port-groups.ttl
+++ b/lv2/port-groups.lv2/port-groups.ttl
@@ -805,4 +805,3 @@ pg:AmbisonicBH3P3Group
lv2:index 15 ;
lv2:designation pg:ACN15
] .
-
diff --git a/lv2/port-props.lv2/manifest.ttl b/lv2/port-props.lv2/manifest.ttl
index 45f598d..dd12797 100644
--- a/lv2/port-props.lv2/manifest.ttl
+++ b/lv2/port-props.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 2 ;
rdfs:seeAlso <port-props.ttl> .
-
diff --git a/lv2/port-props.lv2/port-props.meta.ttl b/lv2/port-props.lv2/port-props.meta.ttl
index 7077e4b..e97de45 100644
--- a/lv2/port-props.lv2/port-props.meta.ttl
+++ b/lv2/port-props.lv2/port-props.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -13,27 +12,6 @@
doap:shortdesc "Various properties for LV2 plugin ports." ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
doap:developer <http://lv2plug.in/ns/meta#kfoltman> ;
- doap:release [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This vocabulary defines various properties for plugin ports, which can be used
@@ -199,4 +177,3 @@ where:
* `lower` and <code>upper</code> are the bounds.
"""^^lv2:Markdown .
-
diff --git a/lv2/port-props.lv2/port-props.ttl b/lv2/port-props.lv2/port-props.ttl
index ea25c6b..063996a 100644
--- a/lv2/port-props.lv2/port-props.ttl
+++ b/lv2/port-props.lv2/port-props.ttl
@@ -77,4 +77,3 @@ pprops:rangeSteps
rdfs:range xsd:nonNegativeInteger ;
rdfs:label "range steps" ;
rdfs:comment "The number of even steps the range should be divided into." .
-
diff --git a/lv2/presets.lv2/manifest.ttl b/lv2/presets.lv2/manifest.ttl
index b9cacf5..1508770 100644
--- a/lv2/presets.lv2/manifest.ttl
+++ b/lv2/presets.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 8 ;
rdfs:seeAlso <presets.ttl> .
-
diff --git a/lv2/presets.lv2/presets.meta.ttl b/lv2/presets.lv2/presets.meta.ttl
index b7611de..d3e1ef9 100644
--- a/lv2/presets.lv2/presets.meta.ttl
+++ b/lv2/presets.lv2/presets.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,29 +11,6 @@
doap:shortdesc "Presets for LV2 plugins." ;
doap:created "2009-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add preset banks."
- ]
- ]
- ] , [
- doap:revision "2.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This is a vocabulary for LV2 plugin presets, that is, named sets of control
@@ -103,4 +79,3 @@ be useful for saving state, or notifying a plugin instance at run-time about a
preset change.
"""^^lv2:Markdown .
-
diff --git a/lv2/presets.lv2/presets.ttl b/lv2/presets.lv2/presets.ttl
index 60189ea..8de997b 100644
--- a/lv2/presets.lv2/presets.ttl
+++ b/lv2/presets.lv2/presets.ttl
@@ -58,4 +58,3 @@ pset:preset
rdfs:range pset:Preset ;
rdfs:label "preset" ;
rdfs:comment "The preset currently applied to a plugin instance." .
-
diff --git a/lv2/resize-port.lv2/manifest.ttl b/lv2/resize-port.lv2/manifest.ttl
index 9fae8b8..fb8da8a 100644
--- a/lv2/resize-port.lv2/manifest.ttl
+++ b/lv2/resize-port.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 0 ;
rdfs:seeAlso <resize-port.ttl> .
-
diff --git a/lv2/resize-port.lv2/resize-port.meta.ttl b/lv2/resize-port.lv2/resize-port.meta.ttl
index d44620c..ffd1b9b 100644
--- a/lv2/resize-port.lv2/resize-port.meta.ttl
+++ b/lv2/resize-port.lv2/resize-port.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -11,17 +10,6 @@
doap:shortdesc "Dynamically sized LV2 port buffers." ;
doap:created "2007-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a feature, rsz:resize, which allows plugins to
@@ -71,4 +59,3 @@ property. Any host, especially those that do NOT support dynamic port
resizing, SHOULD do so or reduced functionality may result.
"""^^lv2:Markdown .
-
diff --git a/lv2/resize-port.lv2/resize-port.ttl b/lv2/resize-port.lv2/resize-port.ttl
index 6f42c8f..ffdeda2 100644
--- a/lv2/resize-port.lv2/resize-port.ttl
+++ b/lv2/resize-port.lv2/resize-port.ttl
@@ -33,4 +33,3 @@ rsz:minimumSize
rdfs:range xsd:nonNegativeInteger ;
rdfs:label "minimum size" ;
rdfs:comment "Minimum buffer size required by a port, in bytes." .
-
diff --git a/lv2/state.lv2/manifest.ttl b/lv2/state.lv2/manifest.ttl
index e56c4e5..6b17b52 100644
--- a/lv2/state.lv2/manifest.ttl
+++ b/lv2/state.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 10 ;
rdfs:seeAlso <state.ttl> .
-
diff --git a/lv2/state.lv2/state.meta.ttl b/lv2/state.lv2/state.meta.ttl
index cebe0ac..1cd0544 100644
--- a/lv2/state.lv2/state.meta.ttl
+++ b/lv2/state.lv2/state.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -14,89 +13,6 @@
doap:developer <http://lv2plug.in/ns/meta#paniq> ,
<http://drobilla.net/drobilla#me> ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.10" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ]
- ]
- ] , [
- doap:revision "2.8" ;
- doap:created "2021-01-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.2.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix state:StateChanged URI in metadata and documentation."
- ]
- ]
- ] , [
- doap:revision "2.6" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add state:freePath feature."
- ]
- ]
- ] , [
- doap:revision "2.4" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add state:StateChanged for notification events."
- ]
- ]
- ] , [
- doap:revision "2.2" ;
- doap:created "2016-07-31" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add LV2_STATE_ERR_NO_SPACE status flag."
- ] , [
- rdfs:label "Add state:threadSafeRestore feature for dropout-free state restoration."
- ]
- ]
- ] , [
- doap:revision "2.0" ;
- doap:created "2013-01-16" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add state:loadDefaultState feature so plugins can have their default state loaded without hard-coding default state as a special case."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a simple mechanism that allows hosts to save and restore
@@ -474,4 +390,3 @@ a change which it knows is likely to have that effect, such as changing a
parameter.
"""^^lv2:Markdown .
-
diff --git a/lv2/state.lv2/state.ttl b/lv2/state.lv2/state.ttl
index 463fdb9..9a5ddcb 100644
--- a/lv2/state.lv2/state.ttl
+++ b/lv2/state.lv2/state.ttl
@@ -57,4 +57,3 @@ state:StateChanged
a rdfs:Class ;
rdfs:label "State Changed" ;
rdfs:comment "A notification that the internal state of the plugin has changed." .
-
diff --git a/lv2/time.lv2/manifest.ttl b/lv2/time.lv2/manifest.ttl
index d80aa75..ece8679 100644
--- a/lv2/time.lv2/manifest.ttl
+++ b/lv2/time.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 6 ;
rdfs:seeAlso <time.ttl> .
-
diff --git a/lv2/time.lv2/time.meta.ttl b/lv2/time.lv2/time.meta.ttl
index 2b99cb7..723a61b 100644
--- a/lv2/time.lv2/time.meta.ttl
+++ b/lv2/time.lv2/time.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -11,47 +10,6 @@
doap:shortdesc "A vocabulary for describing musical time." ;
doap:created "2011-10-05" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.6" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Clarify time:beat origin."
- ]
- ]
- ] , [
- doap:revision "1.4" ;
- doap:created "2016-07-31" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Define LV2_TIME_PREFIX."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This is a vocabulary for describing a position in time and the speed of time
@@ -109,4 +67,3 @@ rate of 0.0 is stopped, 1.0 is rolling at normal speed, 0.5 is rolling at half
speed, -1.0 is reverse, and so on.
"""^^lv2:Markdown .
-
diff --git a/lv2/time.lv2/time.ttl b/lv2/time.lv2/time.ttl
index f3da9b0..f9c65ee 100644
--- a/lv2/time.lv2/time.ttl
+++ b/lv2/time.lv2/time.ttl
@@ -118,4 +118,3 @@ time:speed
rdfs:range xsd:float ;
rdfs:label "speed" ;
rdfs:comment "The rate of the progress of time as a fraction of normal speed." .
-
diff --git a/lv2/ui.lv2/manifest.ttl b/lv2/ui.lv2/manifest.ttl
index d3b12b5..4f5ed48 100644
--- a/lv2/ui.lv2/manifest.ttl
+++ b/lv2/ui.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 2 ;
lv2:microVersion 24 ;
rdfs:seeAlso <ui.ttl> .
-
diff --git a/lv2/ui.lv2/ui.meta.ttl b/lv2/ui.lv2/ui.meta.ttl
index ce4c095..ede80ae 100644
--- a/lv2/ui.lv2/ui.meta.ttl
+++ b/lv2/ui.lv2/ui.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -14,113 +13,6 @@
doap:created "2006-00-00" ;
doap:developer <http://lv2plug.in/ns/meta#larsl> ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "2.24" ;
- doap:created "2022-05-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.4.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix spelling errors."
- ] , [
- rdfs:label "Deprecate ui:resize."
- ]
- ]
- ] , [
- doap:revision "2.22" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add ui:requestValue feature."
- ] , [
- rdfs:label "Add ui:scaleFactor, ui:foregroundColor, and ui:backgroundColor properties."
- ] , [
- rdfs:label "Deprecate ui:binary."
- ]
- ]
- ] , [
- doap:revision "2.20" ;
- doap:created "2015-07-25" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.14.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Improve documentation."
- ] , [
- rdfs:label "Add missing property labels."
- ]
- ]
- ] , [
- doap:revision "2.18" ;
- doap:created "2014-08-08" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.10.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add show interface so UIs can gracefully degrade to separate windows if hosts can not use their widget directly."
- ] , [
- rdfs:label "Fix identifier typos in documentation."
- ]
- ]
- ] , [
- doap:revision "2.16" ;
- doap:created "2014-01-04" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.8.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix LV2_UI_INVALID_PORT_INDEX identifier in documentation."
- ]
- ]
- ] , [
- doap:revision "2.14" ;
- doap:created "2013-03-18" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.6.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add idle interface so native UIs and foreign toolkits can drive their event loops."
- ] , [
- rdfs:label "Add ui:updateRate property."
- ]
- ]
- ] , [
- doap:revision "2.12" ;
- doap:created "2012-12-01" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.4.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix incorrect linker flag in ui:makeSONameResident documentation."
- ]
- ]
- ] , [
- doap:revision "2.10" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Add types for WindowsUI, CocoaUI, and Gtk3UI."
- ] , [
- rdfs:label "Use consistent label style."
- ] , [
- rdfs:label "Add missing LV2_SYMBOL_EXPORT declaration for lv2ui_descriptor prototype."
- ]
- ]
- ] , [
- doap:revision "2.8" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This extension makes it possible to create user interfaces for LV2 plugins.
@@ -584,4 +476,3 @@ Write Effect
: None.
"""^^lv2:Markdown .
-
diff --git a/lv2/ui.lv2/ui.ttl b/lv2/ui.lv2/ui.ttl
index 1c2e455..a59b069 100644
--- a/lv2/ui.lv2/ui.ttl
+++ b/lv2/ui.lv2/ui.ttl
@@ -246,4 +246,3 @@ ui:peakProtocol
a ui:PortProtocol ;
rdfs:label "peak protocol" ;
rdfs:comment "A protocol for sending continuous peak measurements of an audio signal." .
-
diff --git a/lv2/units.lv2/manifest.ttl b/lv2/units.lv2/manifest.ttl
index c6c9286..8b84346 100644
--- a/lv2/units.lv2/manifest.ttl
+++ b/lv2/units.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 5 ;
lv2:microVersion 12 ;
rdfs:seeAlso <units.ttl> .
-
diff --git a/lv2/units.lv2/units.meta.ttl b/lv2/units.lv2/units.meta.ttl
index bd300a4..0e03b35 100644
--- a/lv2/units.lv2/units.meta.ttl
+++ b/lv2/units.lv2/units.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -12,53 +11,6 @@
doap:created "2007-02-06" ;
doap:homepage <http://lv2plug.in/ns/extensions/units> ;
doap:license <http://opensource.org/licenses/isc> ;
- doap:release [
- doap:revision "5.12" ;
- doap:created "2019-02-03" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.16.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix outdated port description in documentation."
- ] , [
- rdfs:label "Remove overly restrictive domain from units:unit."
- ]
- ]
- ] , [
- doap:revision "5.10" ;
- doap:created "2015-04-07" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.12.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix non-existent port type in examples."
- ] , [
- rdfs:label "Add lv2:Parameter to domain of units:unit."
- ]
- ]
- ] , [
- doap:revision "5.8" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Remove units:name in favour of rdfs:label."
- ] , [
- rdfs:label "Use consistent label style."
- ]
- ]
- ] , [
- doap:revision "5.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
doap:developer <http://plugin.org.uk/swh.xrdf#me> ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
lv2:documentation """
@@ -103,4 +55,3 @@ units defined in this extension include conversion definitions where it makes
sense to do so.
"""^^lv2:Markdown .
-
diff --git a/lv2/units.lv2/units.ttl b/lv2/units.lv2/units.ttl
index 21a1898..0f94cc3 100644
--- a/lv2/units.lv2/units.ttl
+++ b/lv2/units.lv2/units.ttl
@@ -375,4 +375,3 @@ units:midiNote
rdfs:comment "A MIDI note number." ;
units:render "MIDI note %d" ;
units:symbol "note" .
-
diff --git a/lv2/uri-map.lv2/manifest.ttl b/lv2/uri-map.lv2/manifest.ttl
index a64e4fb..3824435 100644
--- a/lv2/uri-map.lv2/manifest.ttl
+++ b/lv2/uri-map.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 6 ;
rdfs:seeAlso <uri-map.ttl> .
-
diff --git a/lv2/uri-map.lv2/uri-map.meta.ttl b/lv2/uri-map.lv2/uri-map.meta.ttl
index d66c289..9615f31 100644
--- a/lv2/uri-map.lv2/uri-map.meta.ttl
+++ b/lv2/uri-map.lv2/uri-map.meta.ttl
@@ -1,5 +1,4 @@
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@@ -13,17 +12,6 @@
doap:license <http://opensource.org/licenses/isc> ;
doap:name "LV2 URI Map" ;
doap:shortdesc "A feature for mapping URIs to integers." ;
- doap:release [
- doap:revision "1.6" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
<span class="warning">This extension is deprecated.</span> New implementations
@@ -38,4 +26,3 @@ extensibility of RDF with the performance of integers (or centrally defined
enumerations).
"""^^lv2:Markdown .
-
diff --git a/lv2/uri-map.lv2/uri-map.ttl b/lv2/uri-map.lv2/uri-map.ttl
index 7a7d6e3..8a7a043 100644
--- a/lv2/uri-map.lv2/uri-map.ttl
+++ b/lv2/uri-map.lv2/uri-map.ttl
@@ -10,4 +10,3 @@
rdfs:label "LV2 URI Map" ;
rdfs:comment "A feature for mapping URIs to integers." ;
rdfs:seeAlso <uri-map.meta.ttl> .
-
diff --git a/lv2/urid.lv2/manifest.ttl b/lv2/urid.lv2/manifest.ttl
index 772e2b6..7dc919f 100644
--- a/lv2/urid.lv2/manifest.ttl
+++ b/lv2/urid.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 4 ;
rdfs:seeAlso <urid.ttl> .
-
diff --git a/lv2/urid.lv2/urid.meta.ttl b/lv2/urid.lv2/urid.meta.ttl
index 1f10752..cbc5153 100644
--- a/lv2/urid.lv2/urid.meta.ttl
+++ b/lv2/urid.lv2/urid.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -13,27 +12,6 @@
doap:created "2011-07-22" ;
doap:developer <http://lv2plug.in/ns/meta#gabrbedd> ;
doap:maintainer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.4" ;
- doap:created "2012-10-14" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.2.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Fix typo in urid:unmap documentation."
- ]
- ]
- ] , [
- doap:revision "1.2" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial unified release."
- ]
- ]
- ] ;
lv2:documentation """
This extension defines a simple mechanism for plugins to map URIs to and from
@@ -69,4 +47,3 @@ LV2_Descriptor::instantiate() with URI LV2_URID__unmap and data pointed to an
instance of LV2_URID_Unmap.
"""^^lv2:Markdown .
-
diff --git a/lv2/urid.lv2/urid.ttl b/lv2/urid.lv2/urid.ttl
index 6ce666a..e875fba 100644
--- a/lv2/urid.lv2/urid.ttl
+++ b/lv2/urid.lv2/urid.ttl
@@ -19,4 +19,3 @@ urid:unmap
a lv2:Feature ;
rdfs:label "unmap" ;
rdfs:comment "A feature to unmap URIDs back to strings." .
-
diff --git a/lv2/worker.lv2/manifest.ttl b/lv2/worker.lv2/manifest.ttl
index 692720d..cf4a83f 100644
--- a/lv2/worker.lv2/manifest.ttl
+++ b/lv2/worker.lv2/manifest.ttl
@@ -6,4 +6,3 @@
lv2:minorVersion 1 ;
lv2:microVersion 2 ;
rdfs:seeAlso <worker.ttl> .
-
diff --git a/lv2/worker.lv2/worker.meta.ttl b/lv2/worker.lv2/worker.meta.ttl
index 2fc51bc..b9d651a 100644
--- a/lv2/worker.lv2/worker.meta.ttl
+++ b/lv2/worker.lv2/worker.meta.ttl
@@ -1,4 +1,3 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@@ -11,27 +10,6 @@
doap:shortdesc "Support for doing non-realtime work in plugins." ;
doap:created "2012-03-22" ;
doap:developer <http://drobilla.net/drobilla#me> ;
- doap:release [
- doap:revision "1.2" ;
- doap:created "2020-04-26" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.18.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Improve documentation."
- ]
- ]
- ] , [
- doap:revision "1.0" ;
- doap:created "2012-04-17" ;
- doap:file-release <http://lv2plug.in/spec/lv2-1.0.0.tar.bz2> ;
- dcs:blame <http://drobilla.net/drobilla#me> ;
- dcs:changeset [
- dcs:item [
- rdfs:label "Initial release."
- ]
- ]
- ] ;
lv2:documentation """
This extension allows plugins to schedule work that must be performed in
@@ -79,4 +57,3 @@ the plugin MAY use it to schedule work in the calling context. The plugin MUST
NOT assume any relationship between different schedule features.
"""^^lv2:Markdown .
-
diff --git a/lv2/worker.lv2/worker.ttl b/lv2/worker.lv2/worker.ttl
index 581be71..be07105 100644
--- a/lv2/worker.lv2/worker.ttl
+++ b/lv2/worker.lv2/worker.ttl
@@ -21,4 +21,3 @@ work:schedule
a lv2:Feature ;
rdfs:label "work schedule" ;
rdfs:comment "The work scheduling feature provided by a host." .
-
diff --git a/lv2specgen/DTD/xhtml-rdfa-1.dtd b/lv2specgen/DTD/xhtml-rdfa-1.dtd
index bd3479e..53890bb 100644
--- a/lv2specgen/DTD/xhtml-rdfa-1.dtd
+++ b/lv2specgen/DTD/xhtml-rdfa-1.dtd
@@ -444,7 +444,6 @@
validation, so here we are.
-->
-<!ATTLIST html xmlns:dcs CDATA #IMPLIED>
<!ATTLIST html xmlns:dcterms CDATA #IMPLIED>
<!ATTLIST html xmlns:doap CDATA #IMPLIED>
<!ATTLIST html xmlns:foaf CDATA #IMPLIED>
diff --git a/lv2specgen/lv2docgen.py b/lv2specgen/lv2docgen.py
index c5e13a7..9b1685a 100755
--- a/lv2specgen/lv2docgen.py
+++ b/lv2specgen/lv2docgen.py
@@ -1,20 +1,7 @@
#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# lv2docgen, a documentation generator for LV2 plugins
+
# Copyright 2012 David Robillard <d@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.
+# SPDX-License-Identifier: ISC
import errno
import os
diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py
index 3345b5a..d6e86f8 100755
--- a/lv2specgen/lv2specgen.py
+++ b/lv2specgen/lv2specgen.py
@@ -1,34 +1,13 @@
#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
#
-# lv2specgen, a documentation generator for LV2 specifications.
-# Copyright (c) 2009-2014 David Robillard <d@drobilla.net>
+# Copyright 2009-2022 David Robillard <d@drobilla.net>
+# Copyright 2003-2008 Christopher Schmidt <crschmidt@crschmidt.net>
+# Copyright 2005-2008 Uldis Bojars <uldis.bojars@deri.org>
+# Copyright 2007-2008 Sergio Fernández <sergio.fernandez@fundacionctic.org>
+# SPDX-License-Identifier: MIT
#
# Based on SpecGen:
# <http://forge.morfeo-project.org/wiki_en/index.php/SpecGen>
-# Copyright (c) 2003-2008 Christopher Schmidt <crschmidt@crschmidt.net>
-# Copyright (c) 2005-2008 Uldis Bojars <uldis.bojars@deri.org>
-# Copyright (c) 2007-2008 Sergio Fernández <sergio.fernandez@fundacionctic.org>
-#
-# This software is licensed under the terms of the MIT License.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
import datetime
import markdown
@@ -86,7 +65,6 @@ spec_pre = None
spec_bundle = None
specgendir = None
ns_list = {
- "http://ontologi.es/doap-changeset#": "dcs",
"http://purl.org/dc/terms/": "dcterms",
"http://usefulinc.com/ns/doap#": "doap",
"http://xmlns.com/foaf/0.1/": "foaf",
@@ -101,7 +79,6 @@ rdfs = rdflib.Namespace("http://www.w3.org/2000/01/rdf-schema#")
owl = rdflib.Namespace("http://www.w3.org/2002/07/owl#")
lv2 = rdflib.Namespace("http://lv2plug.in/ns/lv2core#")
doap = rdflib.Namespace("http://usefulinc.com/ns/doap#")
-dcs = rdflib.Namespace("http://ontologi.es/doap-changeset#")
foaf = rdflib.Namespace("http://xmlns.com/foaf/0.1/")
@@ -134,15 +111,15 @@ def getLiteralString(s):
def isResource(n):
- return type(n) == rdflib.URIRef
+ return isinstance(n, rdflib.URIRef)
def isBlank(n):
- return type(n) == rdflib.BNode
+ return isinstance(n, rdflib.BNode)
def isLiteral(n):
- return type(n) == rdflib.Literal
+ return isinstance(n, rdflib.Literal)
def niceName(uri):
@@ -1040,79 +1017,6 @@ def specAuthors(m, subject):
return doc
-def releaseChangeset(m, release, prefix=""):
- changeset = findOne(m, release, dcs.changeset, None)
- if changeset is None:
- return ""
-
- entry = ""
- # entry = '<dd><ul>\n'
- for i in sorted(findStatements(m, getObject(changeset), dcs.item, None)):
- item = getObject(i)
- label = findOne(m, item, rdfs.label, None)
- if not label:
- print("error: dcs:item has no rdfs:label")
- continue
-
- text = getLiteralString(getObject(label))
- if prefix:
- text = prefix + ": " + text
-
- entry += "<li>%s</li>\n" % text
-
- # entry += '</ul></dd>\n'
- return entry
-
-
-def specHistoryEntries(m, subject, entries):
- for r in findStatements(m, subject, doap.release, None):
- release = getObject(r)
- revNode = findOne(m, release, doap.revision, None)
- if not revNode:
- print("error: doap:release has no doap:revision")
- continue
-
- rev = getLiteralString(getObject(revNode))
-
- created = findOne(m, release, doap.created, None)
-
- dist = findOne(m, release, doap["file-release"], None)
- if dist:
- entry = '<dt><a href="%s">Version %s</a>' % (getObject(dist), rev)
- else:
- entry = "<dt>Version %s" % rev
- # print("warning: doap:release has no doap:file-release")
-
- if created:
- entry += " (%s)</dt>\n" % getLiteralString(getObject(created))
- else:
- entry += ' (<span class="warning">EXPERIMENTAL</span>)</dt>'
-
- entry += "<dd><ul>\n%s" % releaseChangeset(m, release)
-
- if dist is not None:
- entries[(getObject(created), getObject(dist))] = entry
- elif int(rev.split(".")[-1]) % 2 == 0:
- print("warning: %s %s has no file-release" % (subject, rev))
-
- return entries
-
-
-def specHistoryMarkup(entries):
- if len(entries) > 0:
- history = "<dl>\n"
- for e in sorted(entries.keys(), reverse=True):
- history += entries[e] + "</ul></dd>"
- history += "</dl>\n"
- return history
- else:
- return ""
-
-
-def specHistory(m, subject):
- return specHistoryMarkup(specHistoryEntries(m, subject, {}))
-
-
def specVersion(m, subject):
"""
Return a (minorVersion, microVersion, date) tuple
@@ -1208,7 +1112,6 @@ def load_tags(path, docdir):
and cn.tagName == "compound"
and cn.getAttribute("kind") != "page"
):
-
name = getChildText(cn, "name")
filename = getChildText(cn, "filename")
anchor = getChildText(cn, "anchor")
@@ -1383,7 +1286,6 @@ def specgen(
template = template.replace("@REFERENCE@", termlist)
template = template.replace("@FILENAME@", filename)
template = template.replace("@HEADER@", basename + ".h")
- template = template.replace("@HISTORY@", specHistory(m, spec))
mail_row = ""
if "list_email" in opts:
diff --git a/lv2specgen/meson.build b/lv2specgen/meson.build
index 9ecb8d4..69b029b 100644
--- a/lv2specgen/meson.build
+++ b/lv2specgen/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
lv2specgen_py = files('lv2specgen.py')
@@ -10,11 +10,14 @@ lv2specgen_command_prefix = [
lv2specgen_py,
'--list-email=' + lv2_list_email,
'--list-page=' + lv2_list_page,
+ '--style-dir=' + lv2_source_root / 'doc' / 'style',
+ '--template',
+ files('template.html'),
]
if is_variable('lv2_tags')
lv2specgen_command_prefix += [
- '--tags', lv2_tags.full_path(), # TODO: Remove full_path() in meson 0.60.0
+ ['--tags', lv2_tags.full_path()], # TODO: Remove full_path() in meson 0.60.0
]
endif
diff --git a/lv2specgen/template.html b/lv2specgen/template.html
index 4eb3d96..dcc2759 100644
--- a/lv2specgen/template.html
+++ b/lv2specgen/template.html
@@ -2,7 +2,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html about="@URI@"
xmlns="http://www.w3.org/1999/xhtml"
- xmlns:dcs="http://ontologi.es/doap-changeset#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:doap="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
@@ -30,7 +29,6 @@
<table id="meta">
<tr><th>ID</th><td><a href="@URI@">@URI@</a></td></tr>
<tr><th>Version</th><td>@VERSION@</td></tr>
- <tr><th>Date</th><td>@DATE@</td></tr>
@MAIL@
@AUTHORS@
</table>
@@ -44,7 +42,6 @@
<ul id="contents">
<!-- <li><a href="#sec-description">Description</a></li> -->
<li><a href="#sec-index">Index</a></li>
- <li><a href="#sec-history">History</a></li>
@CONTENT_LINKS@
</ul>
</div>
@@ -63,12 +60,6 @@
@REFERENCE@
</div>
- <!-- HISTORY -->
- <h2 id="sec-history">History</h2>
- <div class="section">
- @HISTORY@
- </div>
-
<!-- FOOTER -->
<div id="footer">
<div>
diff --git a/meson.build b/meson.build
index 6720203..aa9963f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,15 +1,18 @@
# Copyright 2021-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-project('lv2', ['c'],
- version: '1.18.9',
- license: 'ISC',
- meson_version: '>= 0.56.0',
- default_options: [
- 'b_ndebug=if-release',
- 'buildtype=release',
- 'c_std=c99',
- ])
+# SPDX-License-Identifier: 0BSD OR ISC
+
+project(
+ 'lv2',
+ ['c'],
+ default_options: [
+ 'b_ndebug=if-release',
+ 'buildtype=release',
+ 'c_std=c99',
+ ],
+ license: 'ISC',
+ meson_version: '>= 0.56.0',
+ version: '1.18.11',
+)
lv2_docdir = get_option('datadir') / 'doc' / 'lv2'
lv2_source_root = meson.current_source_dir()
@@ -32,9 +35,6 @@ if not get_option('tests').disabled()
endif
# Set global warning flags
-if get_option('strict') and not meson.is_subproject()
- subdir('meson/warnings')
-endif
subdir('meson/suppressions')
##########################
@@ -49,7 +49,7 @@ if lv2dir == ''
elif target_machine.system() == 'haiku' and prefix == '/'
lv2dir = '/boot/common/add-ons/lv2'
elif target_machine.system() == 'windows' and prefix == 'C:/'
- lv2dir = 'C:/Program Files/Common/LV2'
+ lv2dir = 'C:/Program Files/Common Files/LV2'
else
lv2dir = prefix / get_option('libdir') / 'lv2'
endif
@@ -81,6 +81,9 @@ lv2_dep = declare_dependency(
version: meson.project_version(),
)
+# Override pkg-config dependency for internal meson dependants
+meson.override_dependency('lv2', lv2_dep)
+
##################
# Specifications #
##################
@@ -185,8 +188,10 @@ check_python = pymod.find_installation(
required: get_option('tests'),
)
-if (check_python.found() and
- check_python.language_version().version_compare('<3.7'))
+if (
+ check_python.found()
+ and check_python.language_version().version_compare('<3.7')
+)
warning('Python 3.7 is required for tests')
check_python = disabler()
endif
@@ -292,6 +297,7 @@ spec_files = files(
# Determine if all the dependencies for building documentation are present
doxygen = find_program('doxygen', required: get_option('docs'))
build_docs = false
+build_lv2specgen = false
doc_deps = []
if not get_option('docs').disabled()
doc_python_modules = ['lxml', 'markdown', 'pygments', 'rdflib']
@@ -308,13 +314,16 @@ if not get_option('docs').disabled()
endif
build_docs = doxygen.found() and python.found()
+ build_lv2specgen = python.found()
endif
# Run Doxygen first to generate tags
subdir('doc/c')
# Set up lv2specgen and lv2specgen_command_prefix (which references tags)
-subdir('lv2specgen')
+if build_lv2specgen
+ subdir('lv2specgen')
+endif
# Generate specification documentation
if build_docs
@@ -339,36 +348,26 @@ endif
subdir('util')
# Data and build tests
-subdir('test')
-
-########
-# News #
-########
-
-lv2_write_news_py = find_program('scripts' / 'lv2_write_news.py')
-
-write_news_command = [
- lv2_write_news_py,
- '-t', 'http://lv2plug.in/ns/lv2',
- files(lv2_source_root / 'lv2' / 'core.lv2' / 'people.ttl'),
- files(lv2_source_root / 'lv2' / 'core.lv2' / 'meta.ttl'),
- spec_files,
-]
-
-custom_target(
- 'NEWS',
- capture: true,
- command: write_news_command,
- output: 'NEWS',
-)
+if not get_option('tests').disabled()
+ subdir('test')
+endif
if not meson.is_subproject()
- # Generate NEWS file from data in distribution archive
- meson.add_dist_script(write_news_command)
-
- summary('Tests', not get_option('tests').disabled(), bool_yn: true)
- summary('Documentation', build_docs, bool_yn: true)
- summary('Prefix', get_option('prefix'), section: 'Paths')
- summary('LV2 bundles', lv2dir, section: 'Paths')
- summary('Headers', get_option('prefix') / get_option('includedir'), section: 'Paths')
+ summary(
+ {
+ 'Tests': not get_option('tests').disabled(),
+ 'Documentation': build_docs,
+ },
+ bool_yn: true,
+ section: 'Components',
+ )
+
+ summary(
+ {
+ 'Install prefix': get_option('prefix'),
+ 'Headers': get_option('prefix') / get_option('includedir'),
+ 'LV2 bundles': lv2dir,
+ },
+ section: 'Directories',
+ )
endif
diff --git a/meson/library/meson.build b/meson/library/meson.build
deleted file mode 100644
index f50505f..0000000
--- a/meson/library/meson.build
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2020-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-# General definitions for building libraries.
-#
-# These are essentially workarounds for meson and/or MSVC. Unfortunately,
-# meson's default_library option doesn't support shared and static builds very
-# well. In particular, it's often necessary to define different symbols for
-# static and shared builds of libraries so that symbols can be exported. To
-# work around this, we do not support default_library=both on Windows. On
-# other platforms with GCC-like compilers, we can support both because symbols
-# can safely be exported in the same way (giving them default visibility) in
-# both static and shared builds.
-
-# Abort on Windows with default_library=both
-if get_option('default_library') == 'both'
- if host_machine.system() == 'windows'
- error('default_library=both is not supported on Windows')
- endif
-endif
-
-# Set library_suffix to the suffix for libraries
-if cc.get_id() == 'msvc'
- # Meson appends a version to the name only on MS, which leads to inconsistent
- # library names, like `mylib-1-1`. So, provide no suffix to ultimately get
- # the same name as on other platforms, like `mylib-1`.
- library_suffix = ''
-else
- library_suffix = '-@0@'.format(meson.project_version().split('.')[0])
-endif
diff --git a/meson/suppressions/meson.build b/meson/suppressions/meson.build
index e2170c0..96ff2ab 100644
--- a/meson/suppressions/meson.build
+++ b/meson/suppressions/meson.build
@@ -1,11 +1,9 @@
-# Copyright 2020-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# Copyright 2020-2023 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
-# Project-specific warning suppressions.
-#
-# This should be used in conjunction with the generic "warnings" sibling that
-# enables all reasonable warnings for the compiler. It lives here just to keep
-# the top-level meson.build more readable.
+# Project-specific warning suppressions
+
+warning_level = get_option('warning_level')
#####
# C #
@@ -14,10 +12,12 @@
if is_variable('cc')
c_suppressions = []
- if get_option('strict')
+ if warning_level == 'everything'
if cc.get_id() in ['clang', 'emscripten']
c_suppressions += [
+ '-Wno-bad-function-cast',
'-Wno-cast-align',
+ '-Wno-cast-function-type-strict',
'-Wno-cast-qual',
'-Wno-declaration-after-statement',
'-Wno-documentation-unknown-command',
@@ -30,10 +30,24 @@ if is_variable('cc')
'-Wno-shorten-64-to-32',
'-Wno-sign-conversion',
'-Wno-switch-enum',
- '-Wno-unused-parameter',
+ '-Wno-unsafe-buffer-usage',
]
+
+ if not meson.is_cross_build()
+ c_suppressions += [
+ '-Wno-poison-system-directories',
+ ]
+ endif
+
+ if host_machine.system() == 'windows'
+ c_suppressions += [
+ '-Wno-format-nonliteral',
+ ]
+ endif
+
elif cc.get_id() == 'gcc'
c_suppressions += [
+ '-Wno-bad-function-cast',
'-Wno-cast-align',
'-Wno-cast-qual',
'-Wno-conversion',
@@ -48,7 +62,6 @@ if is_variable('cc')
'-Wno-switch-enum',
'-Wno-unsuffixed-float-constants',
'-Wno-unused-const-variable',
- '-Wno-unused-parameter',
]
if target_machine.system() == 'windows'
@@ -60,7 +73,6 @@ if is_variable('cc')
elif cc.get_id() == 'msvc'
c_suppressions += [
'/wd4061', # enumerator in switch is not explicitly handled
- '/wd4100', # unreferenced formal parameter
'/wd4244', # conversion with possible loss of data
'/wd4267', # conversion from size_t to a smaller type
'/wd4310', # cast truncates constant value
@@ -77,6 +89,16 @@ if is_variable('cc')
endif
endif
+ if cc.get_id() in ['clang', 'emscripten']
+ c_suppressions += ['-Wno-unused-parameter']
+ elif cc.get_id() == 'gcc'
+ c_suppressions += ['-Wno-unused-parameter']
+ elif cc.get_id() == 'msvc'
+ c_suppressions += [
+ '/wd4100', # unreferenced formal parameter
+ ]
+ endif
+
c_suppressions = cc.get_supported_arguments(c_suppressions)
endif
@@ -87,19 +109,33 @@ endif
if is_variable('cpp')
cpp_suppressions = []
- if get_option('strict')
+ if warning_level == 'everything'
if cpp.get_id() in ['clang', 'emscripten']
- cpp_suppressions = [
+ cpp_suppressions += [
+ '-Wno-c++98-compat',
'-Wno-cast-align',
'-Wno-cast-qual',
'-Wno-documentation-unknown-command',
'-Wno-nullability-extension',
'-Wno-padded',
'-Wno-reserved-id-macro',
+ '-Wno-unsafe-buffer-usage',
]
+ if not meson.is_cross_build()
+ cpp_suppressions += [
+ '-Wno-poison-system-directories',
+ ]
+ endif
+
+ if host_machine.system() == 'windows'
+ cpp_suppressions += [
+ '-Wno-format-nonliteral',
+ ]
+ endif
+
elif cpp.get_id() == 'gcc'
- cpp_suppressions = [
+ cpp_suppressions += [
'-Wno-cast-align',
'-Wno-cast-qual',
'-Wno-inline',
@@ -115,13 +151,14 @@ if is_variable('cpp')
endif
elif cpp.get_id() == 'msvc'
- cpp_suppressions = [
+ cpp_suppressions += [
'/wd4514', # unreferenced inline function has been removed
'/wd4706', # assignment within conditional expression
'/wd4710', # function not inlined
'/wd4711', # function selected for automatic inline expansion
'/wd4820', # padding added after data member
'/wd5045', # will insert Spectre mitigation
+ '/wd5264', # const variable is not used
]
endif
endif
diff --git a/meson/warnings/meson.build b/meson/warnings/meson.build
deleted file mode 100644
index e0051f9..0000000
--- a/meson/warnings/meson.build
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 2020-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-# General code to enable approximately all warnings in GCC 12, clang, and MSVC.
-#
-# This is trivial for clang and MSVC, but GCC doesn't have an "everything"
-# option, so we need to enable everything we want explicitly. Wall is assumed,
-# but Wextra is not, for stability.
-#
-# These are collected from common.opt and c.opt in the GCC source, and manually
-# curated with the help of the GCC documentation. Warnings that are
-# application-specific, historical, or about compatibility between specific
-# language revisions are omitted. The intent here is to have roughly the same
-# meaning as clang's Weverything: extremely strict, but general. Specifically
-# omitted are:
-#
-# General:
-#
-# Wabi=
-# Waggregate-return
-# Walloc-size-larger-than=BYTES
-# Walloca-larger-than=BYTES
-# Wframe-larger-than=BYTES
-# Wlarger-than=BYTES
-# Wstack-usage=BYTES
-# Wsystem-headers
-# Wtraditional
-# Wtraditional-conversion
-# Wtrampolines
-# Wvla-larger-than=BYTES
-#
-# Build specific:
-#
-# Wpoison-system-directories
-#
-# C Specific:
-#
-# Wc11-c2x-compat
-# Wc90-c99-compat
-# Wc99-c11-compat
-# Wdeclaration-after-statement
-# Wtraditional
-# Wtraditional-conversion
-#
-# C++ Specific:
-#
-# Wc++0x-compat
-# Wc++1z-compat
-# Wc++2a-compat
-# Wctad-maybe-unsupported
-# Wnamespaces
-# Wtemplates
-
-# GCC warnings that apply to all C-family languages
-gcc_common_warnings = [
- '-Walloc-zero',
- '-Walloca',
- '-Wanalyzer-too-complex',
- '-Warith-conversion',
- '-Warray-bounds=2',
- '-Wattribute-alias=2',
- '-Wbidi-chars=ucn',
- '-Wcast-align=strict',
- '-Wcast-function-type',
- '-Wcast-qual',
- '-Wclobbered',
- '-Wconversion',
- '-Wdate-time',
- '-Wdisabled-optimization',
- '-Wdouble-promotion',
- '-Wduplicated-branches',
- '-Wduplicated-cond',
- '-Wempty-body',
- '-Wendif-labels',
- '-Wfloat-equal',
- '-Wformat-overflow=2',
- '-Wformat-signedness',
- '-Wformat-truncation=2',
- '-Wformat=2',
- '-Wignored-qualifiers',
- '-Wimplicit-fallthrough=3',
- '-Winit-self',
- '-Winline',
- '-Winvalid-pch',
- '-Wlogical-op',
- '-Wmissing-declarations',
- '-Wmissing-field-initializers',
- '-Wmissing-include-dirs',
- '-Wmultichar',
- '-Wnormalized=nfc',
- '-Wnull-dereference',
- '-Wopenacc-parallelism',
- '-Woverlength-strings',
- '-Wpacked',
- '-Wpacked-bitfield-compat',
- '-Wpadded',
- '-Wpointer-arith',
- '-Wredundant-decls',
- '-Wshadow',
- '-Wshift-negative-value',
- '-Wshift-overflow=2',
- '-Wstack-protector',
- '-Wstrict-aliasing=3',
- '-Wstrict-overflow=5',
- '-Wstring-compare',
- '-Wstringop-overflow=3',
- '-Wsuggest-attribute=cold',
- '-Wsuggest-attribute=const',
- '-Wsuggest-attribute=format',
- '-Wsuggest-attribute=malloc',
- '-Wsuggest-attribute=noreturn',
- '-Wsuggest-attribute=pure',
- '-Wswitch-default',
- '-Wswitch-enum',
- '-Wtrampolines',
- '-Wtrivial-auto-var-init',
- '-Wtype-limits',
- '-Wundef',
- '-Wuninitialized',
- '-Wunsafe-loop-optimizations',
- '-Wunused',
- '-Wunused-const-variable=2',
- '-Wunused-macros',
- '-Wvector-operation-performance',
- '-Wvla',
- '-Wwrite-strings',
-]
-
-#####
-# C #
-#####
-
-if is_variable('cc') and not is_variable('all_c_warnings')
- # Set all_c_warnings for the current C compiler
- all_c_warnings = []
-
- if get_option('strict')
- if cc.get_id() == 'clang'
- all_c_warnings += ['-Weverything']
-
- if not meson.is_cross_build()
- all_c_warnings += [
- '-Wno-poison-system-directories',
- ]
- endif
-
- elif cc.get_id() == 'gcc'
- all_c_warnings += gcc_common_warnings + [
- '-Wabsolute-value',
- '-Wbad-function-cast',
- '-Wc++-compat',
- '-Wenum-conversion',
- '-Wjump-misses-init',
- '-Wmissing-parameter-type',
- '-Wmissing-prototypes',
- '-Wnested-externs',
- '-Wold-style-declaration',
- '-Wold-style-definition',
- '-Woverride-init',
- '-Wsign-compare',
- '-Wstrict-prototypes',
- '-Wunsuffixed-float-constants',
- ]
-
- elif cc.get_id() == 'msvc'
- all_c_warnings += [
- '/Wall',
- '/experimental:external',
- '/external:W0',
- '/external:anglebrackets',
- ]
- endif
- endif
-
- all_c_warnings = cc.get_supported_arguments(all_c_warnings)
- add_global_arguments(all_c_warnings, language: ['c'])
-endif
-
-#######
-# C++ #
-#######
-
-if is_variable('cpp') and not is_variable('all_cpp_warnings')
- # Set all_cpp_warnings for the current C++ compiler
- all_cpp_warnings = []
-
- if get_option('strict')
- if cpp.get_id() == 'clang'
- all_cpp_warnings += [
- '-Weverything',
- '-Wno-c++98-compat',
- '-Wno-c++98-compat-pedantic',
- ]
-
- if not meson.is_cross_build()
- all_cpp_warnings += [
- '-Wno-poison-system-directories',
- ]
- endif
-
- elif cpp.get_id() == 'gcc'
- all_cpp_warnings += gcc_common_warnings + [
- '-Wabi-tag',
- '-Waligned-new=all',
- '-Wcatch-value=3',
- '-Wcomma-subscript',
- '-Wconditionally-supported',
- '-Wctor-dtor-privacy',
- '-Wdelete-non-virtual-dtor',
- '-Wdeprecated',
- '-Wdeprecated-copy',
- '-Wdeprecated-copy-dtor',
- '-Wdeprecated-enum-enum-conversion',
- '-Wdeprecated-enum-float-conversion',
- '-Weffc++',
- '-Wexpansion-to-defined',
- '-Wextra-semi',
- '-Wimport',
- '-Winvalid-imported-macros',
- '-Wmismatched-tags',
- '-Wmultiple-inheritance',
- '-Wnoexcept',
- '-Wnoexcept-type',
- '-Wnon-virtual-dtor',
- '-Wold-style-cast',
- '-Woverloaded-virtual',
- '-Wplacement-new=2',
- '-Wredundant-move',
- '-Wredundant-tags',
- '-Wregister',
- '-Wsign-compare',
- '-Wsign-promo',
- '-Wsized-deallocation',
- '-Wstrict-null-sentinel',
- '-Wsuggest-final-methods',
- '-Wsuggest-final-types',
- '-Wsuggest-override',
- '-Wuseless-cast',
- '-Wvirtual-inheritance',
- '-Wvolatile',
- '-Wzero-as-null-pointer-constant',
- ]
-
- elif cpp.get_id() == 'msvc'
- all_cpp_warnings += [
- '/Wall',
- '/experimental:external',
- '/external:W0',
- '/external:anglebrackets',
- ]
- endif
- endif
-
- all_cpp_warnings = cpp.get_supported_arguments(all_cpp_warnings)
- add_global_arguments(all_cpp_warnings, language: ['cpp'])
-endif
diff --git a/meson_options.txt b/meson_options.txt
index 089402e..0a8c145 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,21 +1,24 @@
+# Copyright 2021-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
option('docs', type: 'feature', value: 'auto', yield: true,
description: 'Build documentation')
+option('lint', type: 'boolean', value: false, yield: true,
+ description: 'Run code quality checks')
+
option('lv2dir', type: 'string', value: '', yield: true,
description: 'LV2 bundle installation directory')
option('old_headers', type: 'boolean', value: true, yield: true,
description: 'Install backwards compatible headers at URI-style paths')
-option('online_docs', type: 'boolean', value: 'false', yield: true,
+option('online_docs', type: 'boolean', value: false, yield: true,
description: 'Build documentation for online hosting')
option('plugins', type: 'feature', value: 'auto', yield: true,
description: 'Build example plugins')
-option('strict', type: 'boolean', value: false, yield: true,
- description: 'Enable ultra-strict warnings')
-
option('tests', type: 'feature', value: 'auto', yield: true,
description: 'Build tests')
diff --git a/plugins/.clang-tidy b/plugins/.clang-tidy
new file mode 100644
index 0000000..5fc86ab
--- /dev/null
+++ b/plugins/.clang-tidy
@@ -0,0 +1,14 @@
+# Copyright 2020-2023 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+Checks: >
+ -*-narrowing-conversions,
+ -bugprone-assignment-in-if-condition,
+ -bugprone-easily-swappable-parameters,
+ -bugprone-suspicious-realloc-usage,
+ -cert-err33-c,
+ -hicpp-signed-bitwise,
+ -llvm-header-guard,
+ -misc-unused-parameters,
+ -readability-function-cognitive-complexity,
+InheritParentConfig: true
diff --git a/plugins/eg-amp.lv2/amp.c b/plugins/eg-amp.lv2/amp.c
index 5b9f577..90a5769 100644
--- a/plugins/eg-amp.lv2/amp.c
+++ b/plugins/eg-amp.lv2/amp.c
@@ -1,19 +1,6 @@
-/*
- Copyright 2006-2016 David Robillard <d@drobilla.net>
- Copyright 2006 Steve Harris <steve@plugin.org.uk>
-
- 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.
-*/
+// Copyright 2006-2016 David Robillard <d@drobilla.net>
+// Copyright 2006 Steve Harris <steve@plugin.org.uk>
+// SPDX-License-Identifier: ISC
/**
LV2 headers are based on the URI of the specification they come from, so a
diff --git a/plugins/eg-amp.lv2/meson.build b/plugins/eg-amp.lv2/meson.build
index 2b15b01..726038e 100644
--- a/plugins/eg-amp.lv2/meson.build
+++ b/plugins/eg-amp.lv2/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('amp.c')
bundle_name = 'eg-amp.lv2'
@@ -19,7 +19,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
diff --git a/plugins/eg-fifths.lv2/fifths.c b/plugins/eg-fifths.lv2/fifths.c
index 7527895..9f6a388 100644
--- a/plugins/eg-fifths.lv2/fifths.c
+++ b/plugins/eg-fifths.lv2/fifths.c
@@ -1,19 +1,5 @@
-/*
- LV2 Fifths Example Plugin
- Copyright 2014-2016 David Robillard <d@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.
-*/
+// Copyright 2014-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "./uris.h"
diff --git a/plugins/eg-fifths.lv2/meson.build b/plugins/eg-fifths.lv2/meson.build
index fd38ee3..bba21ce 100644
--- a/plugins/eg-fifths.lv2/meson.build
+++ b/plugins/eg-fifths.lv2/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('fifths.c')
bundle_name = 'eg-fifths.lv2'
@@ -19,7 +19,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
diff --git a/plugins/eg-fifths.lv2/uris.h b/plugins/eg-fifths.lv2/uris.h
index d26577e..7cbbd94 100644
--- a/plugins/eg-fifths.lv2/uris.h
+++ b/plugins/eg-fifths.lv2/uris.h
@@ -1,19 +1,5 @@
-/*
- LV2 Fifths Example Plugin
- Copyright 2014-2015 David Robillard <d@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.
-*/
+// Copyright 2014-2015 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#ifndef FIFTHS_URIS_H
#define FIFTHS_URIS_H
@@ -51,4 +37,4 @@ map_fifths_uris(LV2_URID_Map* map, FifthsURIs* uris)
uris->patch_value = map->map(map->handle, LV2_PATCH__value);
}
-#endif /* FIFTHS_URIS_H */
+#endif // FIFTHS_URIS_H
diff --git a/plugins/eg-metro.lv2/meson.build b/plugins/eg-metro.lv2/meson.build
index f881eca..5d83c9e 100644
--- a/plugins/eg-metro.lv2/meson.build
+++ b/plugins/eg-metro.lv2/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('metro.c')
bundle_name = 'eg-metro.lv2'
@@ -19,7 +19,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
diff --git a/plugins/eg-metro.lv2/metro.c b/plugins/eg-metro.lv2/metro.c
index c89c542..f3fe164 100644
--- a/plugins/eg-metro.lv2/metro.c
+++ b/plugins/eg-metro.lv2/metro.c
@@ -1,19 +1,5 @@
-/*
- LV2 Metronome Example Plugin
- Copyright 2012-2016 David Robillard <d@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.
-*/
+// Copyright 2012-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h"
#include "lv2/atom/util.h"
diff --git a/plugins/eg-midigate.lv2/meson.build b/plugins/eg-midigate.lv2/meson.build
index 0e35fd1..9f0a5ac 100644
--- a/plugins/eg-midigate.lv2/meson.build
+++ b/plugins/eg-midigate.lv2/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('midigate.c')
bundle_name = 'eg-midigate.lv2'
@@ -19,7 +19,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
diff --git a/plugins/eg-midigate.lv2/midigate.c b/plugins/eg-midigate.lv2/midigate.c
index d98f670..db2fdea 100644
--- a/plugins/eg-midigate.lv2/midigate.c
+++ b/plugins/eg-midigate.lv2/midigate.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2013-2016 David Robillard <d@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.
-*/
+// Copyright 2013-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h"
#include "lv2/atom/util.h"
diff --git a/plugins/eg-params.lv2/meson.build b/plugins/eg-params.lv2/meson.build
index 4c1e576..00602bc 100644
--- a/plugins/eg-params.lv2/meson.build
+++ b/plugins/eg-params.lv2/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('params.c')
bundle_name = 'eg-params.lv2'
@@ -19,7 +19,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
diff --git a/plugins/eg-params.lv2/params.c b/plugins/eg-params.lv2/params.c
index 052b43b..af96fc8 100644
--- a/plugins/eg-params.lv2/params.c
+++ b/plugins/eg-params.lv2/params.c
@@ -1,19 +1,5 @@
-/*
- LV2 Parameter Example Plugin
- Copyright 2014-2016 David Robillard <d@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.
-*/
+// Copyright 2014-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "state_map.h"
diff --git a/plugins/eg-params.lv2/state_map.h b/plugins/eg-params.lv2/state_map.h
index 4a00d2f..2a29e09 100644
--- a/plugins/eg-params.lv2/state_map.h
+++ b/plugins/eg-params.lv2/state_map.h
@@ -1,19 +1,5 @@
-/*
- LV2 State Map
- Copyright 2016 David Robillard <d@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.
-*/
+// Copyright 2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h"
#include "lv2/urid/urid.h"
@@ -82,7 +68,7 @@ state_map_init(
{
// Set dict entries from parameters
unsigned i = 0;
- va_list args;
+ va_list args; // NOLINT(cppcoreguidelines-init-variables)
va_start(args, handle);
for (const char* uri = NULL; (uri = va_arg(args, const char*)); ++i) {
const char* type = va_arg(args, const char*);
diff --git a/plugins/eg-sampler.lv2/atom_sink.h b/plugins/eg-sampler.lv2/atom_sink.h
index 57035e1..8966eb2 100644
--- a/plugins/eg-sampler.lv2/atom_sink.h
+++ b/plugins/eg-sampler.lv2/atom_sink.h
@@ -1,18 +1,5 @@
-/*
- Copyright 2016 David Robillard <d@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.
-*/
+// Copyright 2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h"
#include "lv2/atom/forge.h"
diff --git a/plugins/eg-sampler.lv2/meson.build b/plugins/eg-sampler.lv2/meson.build
index 1283a8f..9700df2 100644
--- a/plugins/eg-sampler.lv2/meson.build
+++ b/plugins/eg-sampler.lv2/meson.build
@@ -1,17 +1,29 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('sampler.c')
+ui_sources = files('sampler_ui.c')
bundle_name = 'eg-sampler.lv2'
data_filenames = ['manifest.ttl.in', 'sampler.ttl', 'click.wav']
-samplerate_dep = dependency('samplerate',
- version: '>= 0.1.0',
- required: get_option('plugins'))
+samplerate_dep = dependency(
+ 'samplerate',
+ required: get_option('plugins'),
+ version: '>= 0.1.0',
+)
-sndfile_dep = dependency('sndfile',
- version: '>= 1.0.0',
- required: get_option('plugins'))
+sndfile_dep = dependency(
+ 'sndfile',
+ required: get_option('plugins'),
+ version: '>= 1.0.0',
+)
+
+gtk2_dep = dependency(
+ 'gtk+-2.0',
+ include_type: 'system',
+ required: get_option('plugins'),
+ version: '>= 2.18.0',
+)
if samplerate_dep.found() and sndfile_dep.found()
module = shared_library(
@@ -45,4 +57,22 @@ if samplerate_dep.found() and sndfile_dep.found()
)
endif
endforeach
+
+ if gtk2_dep.found()
+ ui_suppressions = c_suppressions
+ if cc.get_id() == 'gcc'
+ ui_suppressions += ['-Wno-strict-overflow']
+ endif
+
+ shared_library(
+ 'sampler_ui',
+ ui_sources,
+ c_args: ui_suppressions,
+ dependencies: [lv2_dep, gtk2_dep],
+ gnu_symbol_visibility: 'hidden',
+ install: true,
+ install_dir: lv2dir / bundle_name,
+ name_prefix: '',
+ )
+ endif
endif
diff --git a/plugins/eg-sampler.lv2/peaks.h b/plugins/eg-sampler.lv2/peaks.h
index 7a5f3e3..47d6616 100644
--- a/plugins/eg-sampler.lv2/peaks.h
+++ b/plugins/eg-sampler.lv2/peaks.h
@@ -1,19 +1,5 @@
-/*
- LV2 audio peaks utilities
- Copyright 2016 David Robillard <d@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.
-*/
+// Copyright 2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#ifndef PEAKS_H_INCLUDED
#define PEAKS_H_INCLUDED
@@ -166,11 +152,11 @@ peaks_sender_send(PeaksSender* sender,
forge, &vec_frame, sizeof(float), uris->atom_Float);
// Calculate how many peaks to send this update
- const uint32_t chunk_size = MAX(1u, sender->n_samples / sender->n_peaks);
+ const uint32_t chunk_size = MAX(1U, sender->n_samples / sender->n_peaks);
const uint32_t space = forge->size - forge->offset;
const uint32_t remaining = sender->n_peaks - sender->current_offset;
const uint32_t n_update =
- MIN(remaining, MIN(n_frames / 4u, space / sizeof(float)));
+ MIN(remaining, MIN(n_frames / 4U, space / sizeof(float)));
// Calculate peak (maximum magnitude) for each chunk
for (uint32_t i = 0; i < n_update; ++i) {
diff --git a/plugins/eg-sampler.lv2/sampler.c b/plugins/eg-sampler.lv2/sampler.c
index c978d2b..d870a07 100644
--- a/plugins/eg-sampler.lv2/sampler.c
+++ b/plugins/eg-sampler.lv2/sampler.c
@@ -1,21 +1,7 @@
-/*
- LV2 Sampler Example Plugin
- Copyright 2011-2016 David Robillard <d@drobilla.net>
- Copyright 2011 Gabriel M. Beddingfield <gabriel@teuton.org>
- Copyright 2011 James Morris <jwm.art.net@gmail.com>
-
- 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.
-*/
+// Copyright 2011-2016 David Robillard <d@drobilla.net>
+// Copyright 2011 Gabriel M. Beddingfield <gabriel@teuton.org>
+// Copyright 2011 James Morris <jwm.art.net@gmail.com>
+// SPDX-License-Identifier: ISC
#include "atom_sink.h"
#include "peaks.h"
@@ -148,7 +134,7 @@ load_sample(LV2_Log_Logger* logger, const char* path, const int sample_rate)
return NULL;
}
- sf_seek(sndfile, 0ul, SEEK_SET);
+ sf_seek(sndfile, 0UL, SEEK_SET);
sf_read_float(sndfile, data, info->frames * info->channels);
sf_close(sndfile);
diff --git a/plugins/eg-sampler.lv2/sampler_ui.c b/plugins/eg-sampler.lv2/sampler_ui.c
index 630fc22..16a8c71 100644
--- a/plugins/eg-sampler.lv2/sampler_ui.c
+++ b/plugins/eg-sampler.lv2/sampler_ui.c
@@ -1,19 +1,5 @@
-/*
- LV2 Sampler Example Plugin UI
- Copyright 2011-2016 David Robillard <d@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.
-*/
+// Copyright 2011-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "peaks.h"
#include "uris.h"
diff --git a/plugins/eg-sampler.lv2/uris.h b/plugins/eg-sampler.lv2/uris.h
index d7201fa..f934390 100644
--- a/plugins/eg-sampler.lv2/uris.h
+++ b/plugins/eg-sampler.lv2/uris.h
@@ -1,19 +1,5 @@
-/*
- LV2 Sampler Example Plugin
- Copyright 2011-2016 David Robillard <d@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.
-*/
+// Copyright 2011-2016 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#ifndef SAMPLER_URIS_H
#define SAMPLER_URIS_H
diff --git a/plugins/eg-scope.lv2/examploscope.c b/plugins/eg-scope.lv2/examploscope.c
index 8bc4ca1..e3bb53b 100644
--- a/plugins/eg-scope.lv2/examploscope.c
+++ b/plugins/eg-scope.lv2/examploscope.c
@@ -1,19 +1,6 @@
-/*
- Copyright 2016 David Robillard <d@drobilla.net>
- Copyright 2013 Robin Gareus <robin@gareus.org>
-
- 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.
-*/
+// Copyright 2016 David Robillard <d@drobilla.net>
+// Copyright 2013 Robin Gareus <robin@gareus.org>
+// SPDX-License-Identifier: ISC
#include "./uris.h"
diff --git a/plugins/eg-scope.lv2/examploscope_ui.c b/plugins/eg-scope.lv2/examploscope_ui.c
index 8a9b588..1c82d44 100644
--- a/plugins/eg-scope.lv2/examploscope_ui.c
+++ b/plugins/eg-scope.lv2/examploscope_ui.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2013 Robin Gareus <robin@gareus.org>
-
- 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.
-*/
+// Copyright 2013 Robin Gareus <robin@gareus.org>
+// SPDX-License-Identifier: ISC
#include "./uris.h"
diff --git a/plugins/eg-scope.lv2/meson.build b/plugins/eg-scope.lv2/meson.build
index ecf01b2..d776ee7 100644
--- a/plugins/eg-scope.lv2/meson.build
+++ b/plugins/eg-scope.lv2/meson.build
@@ -1,10 +1,18 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
plugin_sources = files('examploscope.c')
+ui_sources = files('examploscope_ui.c')
bundle_name = 'eg-scope.lv2'
data_filenames = ['manifest.ttl.in', 'examploscope.ttl.in']
+gtk2_dep = dependency(
+ 'gtk+-2.0',
+ include_type: 'system',
+ required: get_option('plugins'),
+ version: '>= 2.18.0',
+)
+
module = shared_library(
'examploscope',
plugin_sources,
@@ -19,7 +27,7 @@ module = shared_library(
config = configuration_data(
{
'LIB_EXT': '.' + module.full_path().split('.')[-1],
- }
+ },
)
foreach filename : data_filenames
@@ -39,3 +47,16 @@ foreach filename : data_filenames
)
endif
endforeach
+
+if gtk2_dep.found()
+ shared_library(
+ 'examploscope_ui',
+ ui_sources,
+ c_args: c_suppressions,
+ dependencies: [lv2_dep, gtk2_dep],
+ gnu_symbol_visibility: 'hidden',
+ install: true,
+ install_dir: lv2dir / bundle_name,
+ name_prefix: '',
+ )
+endif
diff --git a/plugins/eg-scope.lv2/uris.h b/plugins/eg-scope.lv2/uris.h
index 8873786..e2becae 100644
--- a/plugins/eg-scope.lv2/uris.h
+++ b/plugins/eg-scope.lv2/uris.h
@@ -1,18 +1,5 @@
-/*
- Copyright 2013 Robin Gareus <robin@gareus.org>
-
- 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.
-*/
+// Copyright 2013 Robin Gareus <robin@gareus.org>
+// SPDX-License-Identifier: ISC
#ifndef SCO_URIS_H
#define SCO_URIS_H
diff --git a/plugins/meson.build b/plugins/meson.build
index 08b3feb..ff70af1 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
if not get_option('plugins').disabled()
m_dep = cc.find_library('m', required: false)
@@ -18,8 +18,8 @@ if not get_option('docs').disabled()
asciidoc = find_program('asciidoc', required: get_option('docs'))
if asciidoc.found()
- book_inputs = files(
- 'README.txt',
+ book_inputs = files('README.txt')
+ book_inputs += files(
'eg-amp.lv2/README.txt',
'eg-amp.lv2/amp.c',
'eg-amp.lv2/amp.ttl',
diff --git a/schemas.lv2/README b/schemas.lv2/README.txt
index 1395251..1395251 100644
--- a/schemas.lv2/README
+++ b/schemas.lv2/README.txt
diff --git a/schemas.lv2/dcs.ttl b/schemas.lv2/dcs.ttl
deleted file mode 100644
index 4c62ed9..0000000
--- a/schemas.lv2/dcs.ttl
+++ /dev/null
@@ -1,67 +0,0 @@
-@prefix dcs: <http://ontologi.es/doap-changeset#> .
-@prefix dcterms: <http://purl.org/dc/terms/> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-<>
- rdfs:comment "Minimal DOAP Change Sets vocabulary used by LV2." .
-
-<http://tobyinkster.co.uk/#i>
- a foaf:Person .
-
-dcs:
- a owl:Ontology ;
- dcterms:contributor <http://drobilla.net/drobilla#me> ;
- dcterms:created "2010-01-08"^^xsd:date ;
- dcterms:creator <http://tobyinkster.co.uk/#i> ;
- dcterms:description "An ontology that extends DOAP to describe changesets." ;
- dcterms:modified "2022-07-07"^^xsd:date ;
- rdfs:label "DOAP Change Sets" .
-
-dcs:Change
- a owl:Class ;
- rdfs:comment "A change to something." ;
- rdfs:label "Change" ;
- rdfs:subClassOf [
- a owl:Restriction ;
- rdfs:comment "A change must have a plain literal label." ;
- owl:onProperty rdfs:label ;
- owl:someValuesFrom rdf:PlainLiteral
- ] .
-
-dcs:ChangeSet
- a owl:Class ;
- rdfs:comment "A collection of changes." ;
- rdfs:label "Change Set" ;
- rdfs:subClassOf rdf:Bag .
-
-dcs:blame
- a owl:ObjectProperty ;
- rdfs:label "blame" ;
- rdfs:subPropertyOf dcs:thanks .
-
-dcs:changeset
- a owl:ObjectProperty ;
- rdfs:comment "The change set of a version." ;
- rdfs:domain doap:Version ;
- rdfs:label "change set" ;
- rdfs:range dcs:ChangeSet .
-
-dcs:item
- a owl:ObjectProperty ;
- rdfs:comment "A change in a change set." ;
- rdfs:domain dcs:ChangeSet ;
- rdfs:label "item" ;
- rdfs:range dcs:Change ;
- rdfs:subPropertyOf rdfs:member .
-
-dcs:thanks
- a owl:ObjectProperty ;
- rdfs:domain dcs:Change ;
- rdfs:label "thanks" ;
- rdfs:range foaf:Agent .
-
diff --git a/schemas.lv2/dcterms.ttl b/schemas.lv2/dcterms.ttl
index f6a5d06..d8fd196 100644
--- a/schemas.lv2/dcterms.ttl
+++ b/schemas.lv2/dcterms.ttl
@@ -337,4 +337,3 @@ dcterms:title
rdfs:isDefinedBy dcterms: ;
rdfs:label "title"@en-us ;
rdfs:range rdfs:Literal .
-
diff --git a/schemas.lv2/doap.ttl b/schemas.lv2/doap.ttl
index b806d31..160cda5 100644
--- a/schemas.lv2/doap.ttl
+++ b/schemas.lv2/doap.ttl
@@ -706,4 +706,3 @@ doap:wiki
"wiki"@en ,
"wiki"@es ,
"wiki"@fr .
-
diff --git a/schemas.lv2/foaf.ttl b/schemas.lv2/foaf.ttl
index 17dcc13..5aec41e 100644
--- a/schemas.lv2/foaf.ttl
+++ b/schemas.lv2/foaf.ttl
@@ -609,4 +609,3 @@ foaf:yahooChatID
rdfs:label "Yahoo chat ID" ;
rdfs:range rdfs:Literal ;
rdfs:subPropertyOf foaf:nick .
-
diff --git a/schemas.lv2/manifest.ttl b/schemas.lv2/manifest.ttl
index ed11c1a..813d254 100644
--- a/schemas.lv2/manifest.ttl
+++ b/schemas.lv2/manifest.ttl
@@ -1,10 +1,6 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-<http://ontologi.es/doap-changeset#>
- a owl:Ontology ;
- rdfs:seeAlso <dcs.ttl> .
-
<http://purl.org/dc/terms/>
a owl:Ontology ;
rdfs:seeAlso <dcterms.ttl> .
@@ -32,4 +28,3 @@ rdfs:
<http://www.w3.org/2001/XMLSchema#>
a owl:Ontology ;
rdfs:seeAlso <xsd.ttl> .
-
diff --git a/schemas.lv2/meson.build b/schemas.lv2/meson.build
index fb7bed5..8a0d36b 100644
--- a/schemas.lv2/meson.build
+++ b/schemas.lv2/meson.build
@@ -1,8 +1,7 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
schema_data = files(
- 'dcs.ttl',
'dcterms.ttl',
'doap.ttl',
'foaf.ttl',
diff --git a/schemas.lv2/owl.ttl b/schemas.lv2/owl.ttl
index 26bd0e8..e5f4fa2 100644
--- a/schemas.lv2/owl.ttl
+++ b/schemas.lv2/owl.ttl
@@ -618,4 +618,3 @@ owl:withRestrictions
rdfs:isDefinedBy owl: ;
rdfs:label "with restrictions" ;
rdfs:range rdf:List .
-
diff --git a/schemas.lv2/rdf.ttl b/schemas.lv2/rdf.ttl
index cb758cb..0fdeed0 100644
--- a/schemas.lv2/rdf.ttl
+++ b/schemas.lv2/rdf.ttl
@@ -126,4 +126,3 @@ rdf:value
rdfs:isDefinedBy rdf: ;
rdfs:label "value" ;
rdfs:range rdfs:Resource .
-
diff --git a/schemas.lv2/rdfs.ttl b/schemas.lv2/rdfs.ttl
index 10cfbb7..09ba907 100644
--- a/schemas.lv2/rdfs.ttl
+++ b/schemas.lv2/rdfs.ttl
@@ -121,4 +121,3 @@ rdfs:subPropertyOf
rdfs:isDefinedBy rdfs: ;
rdfs:label "sub-property of" ;
rdfs:range rdf:Property .
-
diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl
index cb98363..38bae58 100644
--- a/schemas.lv2/xsd.ttl
+++ b/schemas.lv2/xsd.ttl
@@ -45,7 +45,8 @@ xsd:byte
owl:withRestrictions (
[
xsd:maxInclusive "127"^^xsd:byte
- ] [
+ ]
+ [
xsd:minInclusive "-128"^^xsd:byte
]
) .
@@ -99,7 +100,8 @@ xsd:duration
owl:withRestrictions (
[
xsd:pattern "-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?"
- ] [
+ ]
+ [
xsd:whiteSpace "collapse"
]
) .
@@ -112,7 +114,8 @@ xsd:float
owl:withRestrictions (
[
xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
- ] [
+ ]
+ [
xsd:whiteSpace "collapse"
]
) .
@@ -142,7 +145,8 @@ xsd:int
owl:withRestrictions (
[
xsd:maxInclusive "2147483647"^^xsd:int
- ] [
+ ]
+ [
xsd:minInclusive "-2147483648"^^xsd:int
]
) .
@@ -154,7 +158,8 @@ xsd:integer
owl:withRestrictions (
[
xsd:pattern "[-+]?[0-9]+"
- ] [
+ ]
+ [
xsd:fractionDigits 0
]
) .
@@ -176,7 +181,8 @@ xsd:long
owl:withRestrictions (
[
xsd:maxInclusive "9223372036854775807"^^xsd:long
- ] [
+ ]
+ [
xsd:minInclusive "-9223372036854775808"^^xsd:long
]
) .
@@ -222,7 +228,8 @@ xsd:nonNegativeInteger
owl:withRestrictions (
[
xsd:pattern "[+]?[0-9]+"
- ] [
+ ]
+ [
xsd:minInclusive 0
]
) .
@@ -234,7 +241,8 @@ xsd:nonPositiveInteger
owl:withRestrictions (
[
xsd:pattern "(0|-[0-9]+)"
- ] [
+ ]
+ [
xsd:maxInclusive 0
]
) .
@@ -258,7 +266,8 @@ xsd:positiveInteger
owl:withRestrictions (
[
xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*"
- ] [
+ ]
+ [
xsd:minInclusive 1
]
) .
@@ -270,7 +279,8 @@ xsd:short
owl:withRestrictions (
[
xsd:maxInclusive "32767"^^xsd:short
- ] [
+ ]
+ [
xsd:minInclusive "-32768"^^xsd:short
]
) .
@@ -351,4 +361,3 @@ xsd:whiteSpace
]
)
] .
-
diff --git a/scripts/lv2_build_index.py b/scripts/lv2_build_index.py
index 9a287e4..6e4ebea 100755
--- a/scripts/lv2_build_index.py
+++ b/scripts/lv2_build_index.py
@@ -7,10 +7,8 @@
Write an HTML index for a set of LV2 specifications.
"""
-import datetime
import json
import os
-import time
import sys
import argparse
import subprocess
@@ -67,30 +65,6 @@ def _spec_target(spec, root, online=False):
return target if online else target + ".html"
-def _spec_date(model, spec, minor, micro):
- "Return the date for a release of a specification as an RDF node."
-
- # Get date
- date = None
- for release in model.objects(spec, doap.release):
- revision = model.value(release, doap.revision, None, any=False)
- if str(revision) == f"{minor}.{micro}":
- date = model.value(release, doap.created, None)
- break
-
- # Verify that this date is the latest
- if date is not None:
- for other_release in model.objects(spec, doap.release):
- for other_date in model.objects(other_release, doap.created):
- if other_date is None:
- _warn(f"{spec} has no doap:created date")
- elif other_date > date:
- _warn(f"{spec} {minor}.{micro} ({date}) is an old release")
- break
-
- return date
-
-
def _spec_link_columns(spec, root, name, online):
"Return the first two link columns in a spec row as an HTML string."
@@ -106,7 +80,7 @@ def _spec_link_columns(spec, root, name, online):
# API
col += '<td><a rel="rdfs:seeAlso"'
- col += f' href="../html/group__{stem}.html">{name}'
+ col += f' href="../c/html/group__{stem}.html">{name}'
col += "</a></td>"
return col
@@ -133,11 +107,6 @@ def index_row(model, spec, root_uri, online):
_warn(f"{spec} has no unique valid version")
return ""
- # Check that date is present and valid
- if _spec_date(model, spec, minor, micro) is None:
- _warn(f"{spec} has no doap:created date")
- return ""
-
row = "<tr>"
# Specification and API
@@ -182,34 +151,16 @@ def build_index(
model = _load_ttl(input_paths)
- # Get date for this version, and list of all LV2 distributions
- proj = rdflib.URIRef("http://lv2plug.in/ns/lv2")
- date = None
- for row in model.triples([proj, doap.release, None]):
- revision = model.value(row[2], doap.revision, None)
- created = model.value(row[2], doap.created, None)
- if str(revision) == lv2_version:
- date = created
-
- dist = model.value(row[2], doap["file-release"], None)
- if not dist or not created:
- _warn(f"{proj} has no file release")
-
rows = []
for spec in model.triples([None, rdf.type, lv2.Specification]):
rows += [index_row(model, spec[0], root_uri, online)]
- if date is None:
- now = int(os.environ.get("SOURCE_DATE_EPOCH", time.time()))
- date = datetime.datetime.utcfromtimestamp(now).strftime("%F")
-
_subst_file(
os.path.join(lv2_source_root, "doc", "index.html.in"),
sys.stdout,
{
"@ROWS@": "\n".join(sorted(rows)),
"@LV2_VERSION@": lv2_version,
- "@DATE@": date,
},
)
diff --git a/scripts/lv2_check_specification.py b/scripts/lv2_check_specification.py
index 0cd296e..41611ef 100755
--- a/scripts/lv2_check_specification.py
+++ b/scripts/lv2_check_specification.py
@@ -150,8 +150,8 @@ def _check_specification(checker, spec_dir, is_stable=False):
# Get all subjects that have an explicit rdf:type
typed_subjects = set()
- for typing in model.triples([None, rdf.type, None]):
- typed_subjects.add(typing[0])
+ for subject in model.subjects(rdf.type, None):
+ typed_subjects.add(subject)
# Check that all named and typed resources have labels and comments
for subject in typed_subjects:
diff --git a/scripts/lv2_write_news.py b/scripts/lv2_write_news.py
deleted file mode 100755
index 6ce935c..0000000
--- a/scripts/lv2_write_news.py
+++ /dev/null
@@ -1,258 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright 2020-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: ISC
-
-"""
-Write a NEWS file from RDF data.
-
-The output is in Debian changelog format, which can be parsed by
-dpkg-parsechangelog, among other things.
-"""
-
-import argparse
-import os
-import sys
-import datetime
-import textwrap
-import urllib
-import re
-
-import rdflib
-
-doap = rdflib.Namespace("http://usefulinc.com/ns/doap#")
-dcs = rdflib.Namespace("http://ontologi.es/doap-changeset#")
-rdfs = rdflib.Namespace("http://www.w3.org/2000/01/rdf-schema#")
-foaf = rdflib.Namespace("http://xmlns.com/foaf/0.1/")
-rdf = rdflib.Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#")
-
-
-def _is_release_version(version):
- "Return true if `version` is a stable version number."
-
- if len(version) not in [2, 3] or version[0] == 0:
- return False
-
- minor = version[len(version) - 2]
- micro = version[len(version) - 1]
-
- return micro % 2 == 0 and (len(version) == 2 or minor % 2 == 0)
-
-
-def _parse_datetime(string):
- "Parse string as either a datetime or a date."
-
- try:
- return datetime.datetime.strptime(string, "%Y-%m-%dT%H:%M:%S%z")
- except ValueError:
- return datetime.datetime.strptime(string, "%Y-%m-%d")
-
-
-def _release_entry(graph, release):
- "Return a news entry for a release."
-
- revision = graph.value(release, doap.revision, None)
- date = graph.value(release, doap.created, None)
- blamee = graph.value(release, dcs.blame, None)
- changeset = graph.value(release, dcs.changeset, None)
- dist = graph.value(release, doap["file-release"], None)
-
- if not revision or not date or not blamee or not changeset:
- return None
-
- version = tuple(map(int, revision.split(".")))
-
- entry = {
- "version": version,
- "revision": str(revision),
- "date": _parse_datetime(date),
- "status": "stable" if _is_release_version(version) else "unstable",
- "items": [],
- }
-
- if dist is not None:
- entry["dist"] = dist
-
- for j in graph.triples([changeset, dcs.item, None]):
- item = str(graph.value(j[2], rdfs.label, None))
- entry["items"] += [item]
-
- entry["blamee_name"] = str(graph.value(blamee, foaf.name, None))
- entry["blamee_mbox"] = str(graph.value(blamee, foaf.mbox, None))
- return entry
-
-
-def _project_entries(graph, project):
- "Return a map from version to news entries for a project"
-
- entries = {}
- for link in graph.triples([project, doap.release, None]):
- entry = _release_entry(graph, link[2])
- if entry is not None:
- entries[entry["version"]] = entry
- else:
- sys.stderr.write(f"warning: Ignored partial {project} release\n")
-
- return entries
-
-
-def _read_turtle_news(in_files):
- "Read news entries from Turtle."
-
- graph = rdflib.Graph()
-
- # Parse input files
- for i in in_files:
- graph.parse(i)
-
- # Read news for every project in the data
- projects = {t[0] for t in graph.triples([None, rdf.type, doap.Project])}
- entries_by_project = {}
- for project in projects:
- # Load any associated files
- for uri in graph.triples([project, rdfs.seeAlso, None]):
- if uri[2].endswith(".ttl"):
- graph.parse(uri[2])
-
- # Use the symbol from the URI as a name, or failing that, the doap:name
- name = os.path.basename(urllib.parse.urlparse(str(project)).path)
- if not name:
- name = graph.value(project, doap.name, None)
-
- entries = _project_entries(graph, project)
- for _, entry in entries.items():
- entry["name"] = name
-
- entries_by_project[str(project)] = entries
-
- return entries_by_project
-
-
-def _write_news_item(out, item):
- "Write a single item (change) in NEWS format."
-
- out.write("\n * " + "\n ".join(textwrap.wrap(item, width=74)))
-
-
-def _write_news_entry(out, entry):
- "Write an entry (version) to out in NEWS format."
-
- # Summary header
- summary = f'{entry["name"]} ({entry["revision"]}) {entry["status"]}'
- out.write(f"{summary}; urgency=medium\n")
-
- # Individual change items
- for item in sorted(entry["items"]):
- _write_news_item(out, item)
-
- # Trailer line
- mbox = entry["blamee_mbox"].replace("mailto:", "")
- author = f'{entry["blamee_name"]} <{mbox}>'
- date = entry["date"]
- if date.tzinfo is None: # Assume UTC (dpkg-parsechangelog requires it)
- date = date.strftime("%a, %d %b %Y %H:%M:%S +0000")
- else:
- date = date.strftime("%a, %d %b %Y %H:%M:%S %z")
-
- out.write(f"\n\n -- {author} {date}\n")
-
-
-def _write_single_project_news(out, entries):
- "Write a NEWS file for entries of a single project to out."
-
- revisions = sorted(entries.keys(), reverse=True)
- for revision in revisions:
- entry = entries[revision]
- out.write("\n" if revision != revisions[0] else "")
- _write_news_entry(out, entry)
-
-
-def _write_meta_project_news(out, top_project, entries_by_project):
- "Write a NEWS file for a meta-project that contains others."
-
- top_name = os.path.basename(urllib.parse.urlparse(str(top_project)).path)
- release_pattern = rf".*/{top_name}-([0-9\.]*).tar.bz2"
-
- # Pop the entries for the top project
- top_entries = entries_by_project.pop(top_project)
-
- # Add items from the other projects to the corresponding top entry
- for _, entries in entries_by_project.items():
- for version, entry in entries.items():
- if "dist" in entry:
- match = re.match(release_pattern, entry["dist"])
- if match:
- version = tuple(map(int, match.group(1).split(".")))
- for item in entry["items"]:
- top_entries[version]["items"] += [
- f'{entry["name"]}: {item}'
- ]
-
- for version in sorted(top_entries.keys(), reverse=True):
- out.write("\n" if version != max(top_entries.keys()) else "")
- _write_news_entry(out, top_entries[version])
-
-
-def _write_text_news(out, entries_by_project, top_project=None):
- "Write NEWS in standard Debian changelog format."
-
- if len(entries_by_project) > 1:
- if top_project is None:
- sys.stderr.write("error: --top is required for multi-projects\n")
- return 1
-
- _write_meta_project_news(out, top_project, entries_by_project)
- else:
- project = next(iter(entries_by_project))
- _write_single_project_news(out, entries_by_project[project])
-
- return 0
-
-
-if __name__ == "__main__":
- ap = argparse.ArgumentParser(
- usage="%(prog)s [OPTION]... DATA_FILE...",
- description=__doc__,
- formatter_class=argparse.RawDescriptionHelpFormatter,
- )
-
- ap.add_argument(
- "-o",
- "--output",
- metavar="OUTPUT_FILE",
- help="output file path",
- )
-
- ap.add_argument(
- "-t",
- "--top-project",
- metavar="OUTPUT_FILE",
- help="URI of parent meta-project with file releases",
- )
-
- ap.add_argument(
- "DATA_FILE",
- nargs="+",
- help="path to a Turtle file with release data",
- )
-
- args = ap.parse_args(sys.argv[1:])
-
- if not args.output and "MESON_DIST_ROOT" in os.environ:
- args.output = os.path.join(os.getenv("MESON_DIST_ROOT"), "NEWS")
-
- if not args.output:
- sys.exit(
- _write_text_news(
- sys.stdout, _read_turtle_news(args.DATA_FILE), args.top_project
- )
- )
- else:
- with open(args.output, "w", encoding="utf-8") as output_file:
- sys.exit(
- _write_text_news(
- output_file,
- _read_turtle_news(args.DATA_FILE),
- args.top_project,
- )
- )
diff --git a/scripts/meson.build b/scripts/meson.build
index 400d583..1a77ab7 100644
--- a/scripts/meson.build
+++ b/scripts/meson.build
@@ -1,9 +1,8 @@
# Copyright 2021-2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
lv2_scripts = files(
'lv2_build_index.py',
'lv2_check_specification.py',
'lv2_check_syntax.py',
- 'lv2_write_news.py',
)
diff --git a/test/.clang-tidy b/test/.clang-tidy
index f73d7a6..f6fe1d6 100644
--- a/test/.clang-tidy
+++ b/test/.clang-tidy
@@ -1,20 +1,15 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
Checks: >
- *,
-*-else-after-return,
- -*-magic-numbers,
- -*-uppercase-literal-suffix,
- -altera-*,
-bugprone-easily-swappable-parameters,
- -bugprone-macro-parentheses,
-bugprone-suspicious-include,
- -bugprone-suspicious-string-compare,
- -llvm-header-guard,
+ -cert-err33-c,
+ -clang-diagnostic-unused-parameter,
+ -cppcoreguidelines-avoid-non-const-global-variables,
-llvmlibc-implementation-in-namespace,
- -llvmlibc-restrict-system-libc-headers,
+ -misc-unused-parameters,
-modernize-use-trailing-return-type,
- -performance-no-int-to-ptr,
-readability-function-cognitive-complexity,
- -readability-identifier-length,
-WarningsAsErrors: '*'
-HeaderFilterRegex: '.*'
-FormatStyle: file
+InheritParentConfig: true
diff --git a/test/atom_test_utils.c b/test/atom_test_utils.c
index ae368c8..e7d45d0 100644
--- a/test/atom_test_utils.c
+++ b/test/atom_test_utils.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2012-2018 David Robillard <d@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.
-*/
+// Copyright 2012-2018 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h"
#include "lv2/atom/forge.h"
diff --git a/test/cpp/.clang-tidy b/test/cpp/.clang-tidy
new file mode 100644
index 0000000..02d730c
--- /dev/null
+++ b/test/cpp/.clang-tidy
@@ -0,0 +1,26 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+Checks: >
+ -*-avoid-c-arrays,
+ -*-deprecated-headers,
+ -*-no-malloc,
+ -*-use-auto,
+ -bugprone-reserved-identifier,
+ -cert-dcl37-c,
+ -cert-dcl50-cpp,
+ -cert-dcl51-cpp,
+ -cppcoreguidelines-macro-usage,
+ -cppcoreguidelines-owning-memory,
+ -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
+ -cppcoreguidelines-pro-bounds-pointer-arithmetic,
+ -cppcoreguidelines-pro-type-cstyle-cast,
+ -cppcoreguidelines-pro-type-vararg,
+ -hicpp-no-array-decay,
+ -hicpp-vararg,
+ -llvmlibc-callee-namespace,
+ -modernize-use-nullptr,
+ -modernize-use-using,
+ -readability-implicit-bool-conversion,
+InheritParentConfig: true
+
diff --git a/test/test_build.cpp b/test/cpp/test_build.cpp
index dc269a6..c8b2ca0 100644
--- a/test/test_build.cpp
+++ b/test/cpp/test_build.cpp
@@ -1,18 +1,5 @@
-/*
- Copyright 2022 David Robillard <d@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.
-*/
+// Copyright 2022 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#if defined(__clang__)
_Pragma("clang diagnostic push")
diff --git a/test/headers/.clang-tidy b/test/headers/.clang-tidy
new file mode 100644
index 0000000..dd0b95f
--- /dev/null
+++ b/test/headers/.clang-tidy
@@ -0,0 +1,22 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+Checks: >
+ *,
+ -*-magic-numbers,
+ -altera-*,
+ -bugprone-assignment-in-if-condition,
+ -bugprone-easily-swappable-parameters,
+ -bugprone-macro-parentheses,
+ -llvmlibc-restrict-system-libc-headers,
+ -modernize-macro-to-enum,
+ -performance-no-int-to-ptr,
+ -readability-identifier-length,
+CheckOptions:
+ - key: hicpp-uppercase-literal-suffix.NewSuffixes
+ value: L;U;f
+ - key: readability-uppercase-literal-suffix.NewSuffixes
+ value: L;U;f
+FormatStyle: file
+HeaderFilterRegex: 'lv2/.*\.h'
+WarningsAsErrors: '*'
diff --git a/test/headers/meson.build b/test/headers/meson.build
new file mode 100644
index 0000000..b1ec805
--- /dev/null
+++ b/test/headers/meson.build
@@ -0,0 +1,68 @@
+# Copyright 2020-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+header_c_suppressions = []
+
+if get_option('warning_level') == 'everything'
+ if cc.get_id() == 'clang'
+ header_c_suppressions += [
+ '-Wno-cast-align',
+ '-Wno-cast-qual',
+ '-Wno-declaration-after-statement',
+ '-Wno-padded',
+ '-Wno-unsafe-buffer-usage',
+ ]
+
+ if not meson.is_cross_build()
+ header_c_suppressions += [
+ '-Wno-poison-system-directories',
+ ]
+ endif
+
+ if host_machine.system() == 'windows'
+ header_c_suppressions += [
+ '-Wno-format-nonliteral',
+ ]
+ endif
+
+ elif cc.get_id() == 'gcc'
+ header_c_suppressions += [
+ '-Wno-cast-align',
+ '-Wno-cast-qual',
+ '-Wno-padded',
+ '-Wno-sign-conversion',
+ '-Wno-suggest-attribute=format',
+ '-Wno-unused-const-variable',
+ ]
+
+ if host_machine.system() == 'windows'
+ header_c_suppressions += [
+ '-Wno-sign-conversion',
+ ]
+ endif
+
+ elif cc.get_id() == 'msvc'
+ header_c_suppressions += [
+ '/wd4820', # padding added after construct
+ ]
+ endif
+endif
+
+if cc.get_id() == 'clang'
+ header_c_suppressions += [
+ '-Wno-nullability-extension',
+ ]
+endif
+
+header_c_suppressions = cc.get_supported_arguments(header_c_suppressions)
+
+test(
+ 'headers',
+ executable(
+ 'test_headers',
+ files('test_headers.c'),
+ c_args: header_c_suppressions,
+ dependencies: [lv2_dep],
+ ),
+ suite: 'unit',
+)
diff --git a/test/headers/test_headers.c b/test/headers/test_headers.c
new file mode 100644
index 0000000..5736b44
--- /dev/null
+++ b/test/headers/test_headers.c
@@ -0,0 +1,42 @@
+// Copyright 2022 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#include "lv2/atom/atom.h" // IWYU pragma: keep
+#include "lv2/atom/forge.h" // IWYU pragma: keep
+#include "lv2/atom/util.h" // IWYU pragma: keep
+#include "lv2/buf-size/buf-size.h" // IWYU pragma: keep
+#include "lv2/core/attributes.h" // IWYU pragma: keep
+#include "lv2/core/lv2.h" // IWYU pragma: keep
+#include "lv2/core/lv2_util.h" // IWYU pragma: keep
+#include "lv2/data-access/data-access.h" // IWYU pragma: keep
+#include "lv2/dynmanifest/dynmanifest.h" // IWYU pragma: keep
+#include "lv2/event/event-helpers.h" // IWYU pragma: keep
+#include "lv2/event/event.h" // IWYU pragma: keep
+#include "lv2/instance-access/instance-access.h" // IWYU pragma: keep
+#include "lv2/log/log.h" // IWYU pragma: keep
+#include "lv2/log/logger.h" // IWYU pragma: keep
+#include "lv2/midi/midi.h" // IWYU pragma: keep
+#include "lv2/morph/morph.h" // IWYU pragma: keep
+#include "lv2/options/options.h" // IWYU pragma: keep
+#include "lv2/parameters/parameters.h" // IWYU pragma: keep
+#include "lv2/patch/patch.h" // IWYU pragma: keep
+#include "lv2/port-groups/port-groups.h" // IWYU pragma: keep
+#include "lv2/port-props/port-props.h" // IWYU pragma: keep
+#include "lv2/presets/presets.h" // IWYU pragma: keep
+#include "lv2/resize-port/resize-port.h" // IWYU pragma: keep
+#include "lv2/state/state.h" // IWYU pragma: keep
+#include "lv2/time/time.h" // IWYU pragma: keep
+#include "lv2/ui/ui.h" // IWYU pragma: keep
+#include "lv2/units/units.h" // IWYU pragma: keep
+#include "lv2/uri-map/uri-map.h" // IWYU pragma: keep
+#include "lv2/urid/urid.h" // IWYU pragma: keep
+#include "lv2/worker/worker.h" // IWYU pragma: keep
+
+#ifdef __GNUC__
+__attribute__((const))
+#endif
+int
+main(void)
+{
+ return 0;
+}
diff --git a/test/meson.build b/test/meson.build
index e6178dc..4790a48 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,55 +1,65 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
########
# Data #
########
-# Check for spelling errors
-codespell = find_program('codespell', required: get_option('tests'))
-if codespell.found()
- ignore = [
- lv2_source_root / 'doc' / 'style' / 'pygments.css',
- lv2_source_root / 'lv2specgen' / 'DTD',
- lv2_source_root / 'schemas.lv2' / 'doap.ttl',
- ]
+if get_option('lint')
+ # Check for spelling errors
+ codespell = find_program('codespell', required: get_option('tests'))
+ if codespell.found()
+ ignore = [
+ lv2_source_root / 'doc' / 'style' / 'pygments.css',
+ lv2_source_root / 'lv2specgen' / 'DTD',
+ lv2_source_root / 'schemas.lv2' / 'doap.ttl',
+ ]
- test(
- 'codespell',
- codespell,
- args: [
- '-d',
- '-q', '3',
- '-S', ','.join(ignore),
- lv2_source_root / 'doc',
- lv2_source_root / 'lv2',
- lv2_source_root / 'lv2specgen',
- lv2_source_root / 'plugins',
- lv2_source_root / 'schemas.lv2',
- ],
- suite: 'data',
- )
-endif
+ test(
+ 'codespell',
+ codespell,
+ args: [
+ '-d',
+ ['-q', '3'],
+ ['-S', ','.join(ignore)],
+ lv2_source_root / 'doc',
+ lv2_source_root / 'lv2',
+ lv2_source_root / 'lv2specgen',
+ lv2_source_root / 'plugins',
+ lv2_source_root / 'schemas.lv2',
+ ],
+ suite: 'data',
+ )
+ endif
-# Check that specification data is strictly formatted
-serdi = find_program('serdi', required: get_option('tests'))
-native_build = not meson.is_cross_build() and host_machine.system() != 'windows'
-if serdi.found() and native_build
- lv2_check_syntax = files(lv2_source_root / 'scripts' / 'lv2_check_syntax.py')
+ # Check that specification data is strictly formatted
+ serdi = find_program(
+ 'serdi',
+ required: get_option('tests'),
+ version: '>= 0.31.5',
+ )
+ native_build = (
+ not meson.is_cross_build()
+ and host_machine.system() != 'windows'
+ )
+ if serdi.found() and native_build
+ lv2_check_syntax = files(
+ lv2_source_root / 'scripts' / 'lv2_check_syntax.py',
+ )
- test('syntax',
- lv2_check_syntax,
- args: ['--serdi', serdi.full_path()] + spec_files + schema_data,
- suite: 'data')
-endif
+ test(
+ 'syntax',
+ lv2_check_syntax,
+ args: ['--serdi', serdi.full_path()] + spec_files + schema_data,
+ suite: 'data',
+ )
+ endif
-# Check that specification data validates
-sord_validate = find_program('sord_validate', required: get_option('tests'))
-if sord_validate.found()
- test('valid',
- sord_validate,
- args: spec_files + schema_data,
- suite: 'data')
+ # Check that specification data validates
+ sord_validate = find_program('sord_validate', required: get_option('tests'))
+ if sord_validate.found()
+ test('valid', sord_validate, args: spec_files + schema_data, suite: 'data')
+ endif
endif
########
@@ -57,36 +67,36 @@ endif
########
# Check that all the headers compile cleanly in C
-test('c',
- executable(
- 'test_build_c',
- files('test_build.c'),
- c_args: c_suppressions,
- dependencies: lv2_dep,
- ),
- suite: 'build')
+test(
+ 'c',
+ executable(
+ 'test_build_c',
+ files('test_build.c'),
+ c_args: c_suppressions,
+ dependencies: [lv2_dep],
+ ),
+ suite: 'build',
+)
# Check that all the headers compile cleanly in C++
if is_variable('cpp')
- test('cpp',
- executable(
- 'test_build_cpp',
- files('test_build.cpp'),
- cpp_args: cpp_suppressions,
- dependencies: lv2_dep,
- ),
- suite: 'build')
+ test(
+ 'cpp',
+ executable(
+ 'test_build_cpp',
+ files('cpp/test_build.cpp'),
+ cpp_args: cpp_suppressions,
+ dependencies: [lv2_dep],
+ ),
+ suite: 'build',
+ )
endif
##########
# Python #
##########
-if get_option('strict')
- flake8 = find_program('flake8', required: get_option('tests'))
- pylint = find_program('pylint', required: get_option('tests'))
- black = find_program('black', required: get_option('tests'))
-
+if get_option('lint')
# Scripts that don't pass with pylint
lax_python_scripts = files(
'../lv2specgen/lv2docgen.py',
@@ -98,20 +108,46 @@ if get_option('strict')
all_python_scripts = lax_python_scripts + strict_python_scripts
- if is_variable('black') and black.found()
+ # Check script formatting
+ black = find_program('black', required: get_option('tests'))
+ if black.found()
black_opts = ['-l', '79', '-q', '--check']
- test('black', black, args: black_opts + all_python_scripts, suite: 'scripts')
+ test(
+ 'black',
+ black,
+ args: black_opts + all_python_scripts,
+ suite: 'scripts',
+ )
endif
- if is_variable('flake8') and flake8.found()
+ # Check scripts for errors with flake8
+ flake8 = find_program('flake8', required: get_option('tests'))
+ if flake8.found()
test('flake8', flake8, args: all_python_scripts, suite: 'scripts')
endif
- if is_variable('pylint') and pylint.found()
- test('pylint', pylint, args: strict_python_scripts, suite: 'scripts')
+ # Check scripts for errors with pylint
+ pylint = find_program('pylint', required: get_option('tests'))
+ if pylint.found()
+ pymod = import('python')
+ lint_py = pymod.find_installation(
+ 'python3',
+ modules: ['pygments', 'rdflib'],
+ required: false,
+ )
+
+ if lint_py.found()
+ test('pylint', pylint, args: strict_python_scripts, suite: 'scripts')
+ endif
endif
endif
+###################
+# Header Warnings #
+###################
+
+subdir('headers')
+
##############
# Unit Tests #
##############
@@ -122,17 +158,15 @@ test_names = [
]
# Build and run tests
-if not get_option('tests').disabled()
- foreach test_name : test_names
- test(
+foreach test_name : test_names
+ test(
+ test_name,
+ executable(
test_name,
- executable(
- test_name,
- files('test_@0@.c'.format(test_name)),
- c_args: c_suppressions,
- dependencies: lv2_dep,
- ),
- suite: 'unit',
- )
- endforeach
-endif
+ files('test_@0@.c'.format(test_name)),
+ c_args: c_suppressions,
+ dependencies: [lv2_dep],
+ ),
+ suite: 'unit',
+ )
+endforeach
diff --git a/test/test_atom.c b/test/test_atom.c
index 5771694..beac05c 100644
--- a/test/test_atom.c
+++ b/test/test_atom.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2012-2015 David Robillard <d@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.
-*/
+// Copyright 2012-2015 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "atom_test_utils.c"
@@ -115,7 +102,7 @@ main(void)
LV2_Atom_String* path = (LV2_Atom_String*)lv2_atom_forge_deref(
&forge, lv2_atom_forge_uri(&forge, pstr, pstr_len));
char* pbody = (char*)LV2_ATOM_BODY(path);
- if (strcmp(pbody, pstr)) {
+ if (!!strcmp(pbody, pstr)) {
return test_fail("%s != \"%s\"\n", pbody, pstr);
}
@@ -126,7 +113,7 @@ main(void)
LV2_Atom_String* uri = (LV2_Atom_String*)lv2_atom_forge_deref(
&forge, lv2_atom_forge_uri(&forge, ustr, ustr_len));
char* ubody = (char*)LV2_ATOM_BODY(uri);
- if (strcmp(ubody, ustr)) {
+ if (!!strcmp(ubody, ustr)) {
return test_fail("%s != \"%s\"\n", ubody, ustr);
}
@@ -144,7 +131,7 @@ main(void)
LV2_Atom_String* string = (LV2_Atom_String*)lv2_atom_forge_deref(
&forge, lv2_atom_forge_string(&forge, "hello", strlen("hello")));
char* sbody = (char*)LV2_ATOM_BODY(string);
- if (strcmp(sbody, "hello")) {
+ if (!!strcmp(sbody, "hello")) {
return test_fail("%s != \"hello\"\n", sbody);
}
@@ -158,7 +145,7 @@ main(void)
0,
urid_map(NULL, "http://lexvo.org/id/term/fr")));
char* lbody = (char*)LV2_ATOM_CONTENTS(LV2_Atom_Literal, literal);
- if (strcmp(lbody, "bonjour")) {
+ if (!!strcmp(lbody, "bonjour")) {
return test_fail("%s != \"bonjour\"\n", lbody);
}
@@ -200,7 +187,7 @@ main(void)
&forge,
lv2_atom_forge_vector(&forge, sizeof(int32_t), forge.Int, 4, elems));
void* vec_body = LV2_ATOM_CONTENTS(LV2_Atom_Vector, vector);
- if (memcmp(elems, vec_body, sizeof(elems))) {
+ if (!!memcmp(elems, vec_body, sizeof(elems))) {
return test_fail("Corrupt vector\n");
}
diff --git a/test/test_build.c b/test/test_build.c
index 146ad71..bdc47f6 100644
--- a/test/test_build.c
+++ b/test/test_build.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2022 David Robillard <d@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.
-*/
+// Copyright 2022 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "lv2/atom/atom.h" // IWYU pragma: keep
#include "lv2/atom/forge.h" // IWYU pragma: keep
diff --git a/test/test_forge_overflow.c b/test/test_forge_overflow.c
index e00b40d..95e9b87 100644
--- a/test/test_forge_overflow.c
+++ b/test/test_forge_overflow.c
@@ -1,18 +1,5 @@
-/*
- Copyright 2019 David Robillard <d@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.
-*/
+// Copyright 2019 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
#include "atom_test_utils.c"
diff --git a/util/lv2_validate.in b/util/lv2_validate.in
index 66fee6b..c26bb30 100755
--- a/util/lv2_validate.in
+++ b/util/lv2_validate.in
@@ -1,5 +1,8 @@
#!/bin/sh
+# Copyright 2017-2020 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: ISC
+
LV2DIR="@LV2DIR@"
if [ "$#" -eq "0" ]; then
@@ -88,7 +91,6 @@ sord_validate \
"$LV2DIR/schemas.lv2/dcterms.ttl" \
"$LV2DIR/schemas.lv2/doap.ttl" \
"$LV2DIR/schemas.lv2/rdfs.ttl" \
- "$LV2DIR/schemas.lv2/dcs.ttl" \
"$LV2DIR/schemas.lv2/foaf.ttl" \
"$LV2DIR/schemas.lv2/owl.ttl" \
"$LV2DIR/uri-map.lv2/manifest.ttl" \
diff --git a/util/meson.build b/util/meson.build
index ed43f1e..58cf5e4 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -1,5 +1,5 @@
# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
+# SPDX-License-Identifier: 0BSD OR ISC
config = configuration_data({'LV2DIR': lv2dir})