aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/log
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-07-07 18:59:32 -0400
committerDavid Robillard <d@drobilla.net>2022-07-17 18:14:00 -0400
commit1eccbe4355685b322194df72b5de2382d5290b3b (patch)
tree0677b5c2f577a5024c351a164527f4bdd91a639b /lv2/log
parentd4a970f6962dda28133290194832b726b566ddab (diff)
downloadlv2-1eccbe4355685b322194df72b5de2382d5290b3b.tar.xz
Rearrange source tree to be directly usable by dependants
This allows the LV2 source distribution to be used as an include path for compilers and an LV2_PATH for applications, at the expense of self-contained bundles. That's a nice idea, but it made LV2 itself weird and annoying to depend on. This rearranges things so that directories in the source tree correspond more closely to installation directories. To make this possible, the "aux" directory in the documentation output has been changed to "style", to avoid the reserved name "aux" on Windows.
Diffstat (limited to 'lv2/log')
-rw-r--r--lv2/log/log.h113
-rw-r--r--lv2/log/log.meta.ttl126
-rw-r--r--lv2/log/log.ttl49
-rw-r--r--lv2/log/logger.h157
-rw-r--r--lv2/log/manifest.ttl9
-rw-r--r--lv2/log/meson.build41
6 files changed, 0 insertions, 495 deletions
diff --git a/lv2/log/log.h b/lv2/log/log.h
deleted file mode 100644
index cc62bef..0000000
--- a/lv2/log/log.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- 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.
-*/
-
-#ifndef LV2_LOG_H
-#define LV2_LOG_H
-
-/**
- @defgroup log Log
- @ingroup lv2
-
- Interface for plugins to log via the host.
-
- See <http://lv2plug.in/ns/ext/log> for details.
-
- @{
-*/
-
-// clang-format off
-
-#define LV2_LOG_URI "http://lv2plug.in/ns/ext/log" ///< http://lv2plug.in/ns/ext/log
-#define LV2_LOG_PREFIX LV2_LOG_URI "#" ///< http://lv2plug.in/ns/ext/log#
-
-#define LV2_LOG__Entry LV2_LOG_PREFIX "Entry" ///< http://lv2plug.in/ns/ext/log#Entry
-#define LV2_LOG__Error LV2_LOG_PREFIX "Error" ///< http://lv2plug.in/ns/ext/log#Error
-#define LV2_LOG__Note LV2_LOG_PREFIX "Note" ///< http://lv2plug.in/ns/ext/log#Note
-#define LV2_LOG__Trace LV2_LOG_PREFIX "Trace" ///< http://lv2plug.in/ns/ext/log#Trace
-#define LV2_LOG__Warning LV2_LOG_PREFIX "Warning" ///< http://lv2plug.in/ns/ext/log#Warning
-#define LV2_LOG__log LV2_LOG_PREFIX "log" ///< http://lv2plug.in/ns/ext/log#log
-
-// clang-format on
-
-#include "lv2/urid/urid.h"
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @cond */
-#ifdef __GNUC__
-/** Allow type checking of printf-like functions. */
-# define LV2_LOG_FUNC(fmt, arg1) __attribute__((format(printf, fmt, arg1)))
-#else
-# define LV2_LOG_FUNC(fmt, arg1)
-#endif
-/** @endcond */
-
-/**
- Opaque data to host data for LV2_Log_Log.
-*/
-typedef void* LV2_Log_Handle;
-
-/**
- Log feature (LV2_LOG__log)
-*/
-typedef struct {
- /**
- Opaque pointer to host data.
-
- This MUST be passed to methods in this struct whenever they are called.
- Otherwise, it must not be interpreted in any way.
- */
- LV2_Log_Handle handle;
-
- /**
- Log a message, passing format parameters directly.
-
- The API of this function matches that of the standard C printf function,
- except for the addition of the first two parameters. This function may
- be called from any non-realtime context, or from any context if `type`
- is @ref LV2_LOG__Trace.
- */
- LV2_LOG_FUNC(3, 4)
- int (*printf)(LV2_Log_Handle handle, LV2_URID type, const char* fmt, ...);
-
- /**
- Log a message, passing format parameters in a va_list.
-
- The API of this function matches that of the standard C vprintf
- function, except for the addition of the first two parameters. This
- function may be called from any non-realtime context, or from any
- context if `type` is @ref LV2_LOG__Trace.
- */
- LV2_LOG_FUNC(3, 0)
- int (*vprintf)(LV2_Log_Handle handle,
- LV2_URID type,
- const char* fmt,
- va_list ap);
-} LV2_Log_Log;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-/**
- @}
-*/
-
-#endif /* LV2_LOG_H */
diff --git a/lv2/log/log.meta.ttl b/lv2/log/log.meta.ttl
deleted file mode 100644
index 87cff43..0000000
--- a/lv2/log/log.meta.ttl
+++ /dev/null
@@ -1,126 +0,0 @@
-@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#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/log>
- a doap:Project ;
- doap:name "LV2 Log" ;
- 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
-messages with an API similar to the standard C `printf` function. This allows,
-for example, plugin logs to be nicely presented to the user in a graphical user
-interface.
-
-Different log levels are defined by URI and passed as an LV2_URID. This
-extensions defines standard levels which are expected to be understood by all
-implementations and should be sufficient in most cases, but advanced
-implementations may define and use additional levels to suit their needs.
-
-"""^^lv2:Markdown .
-
-log:Entry
- a rdfs:Class ;
- rdfs:label "Log Entry" ;
- lv2:documentation """
-
-Subclasses of this are passed as the `type` parameter to LV2_Log_Log methods to
-describe the nature of the log entry.
-
-"""^^lv2:Markdown .
-
-log:Error
- lv2:documentation """
-
-An error should only be posted when a serious unexpected error occurs, and
-should be actively shown to the user by the host.
-
-"""^^lv2:Markdown .
-
-log:Note
- lv2:documentation """
-
-A note records some useful piece of information, but may be ignored. The host
-should provide passive access to note entries to the user.
-
-"""^^lv2:Markdown .
-
-log:Warning
- lv2:documentation """
-
-A warning should be posted when an unexpected, but non-critical, error occurs.
-The host should provide passive access to warnings entries to the user, but may
-also choose to actively show them.
-
-"""^^lv2:Markdown .
-
-log:Trace
- lv2:documentation """
-
-A trace should not be displayed during normal operation, but the host may
-implement an option to display them for debugging purposes.
-
-This entry type is special in that one may be posted in a real-time thread. It
-is assumed that if debug tracing is enabled, real-time performance is not a
-concern. However, the host MUST guarantee that posting a trace _is_ real-time
-safe if debug tracing is not enabled (for example, by simply ignoring the call
-as early as possible).
-
-"""^^lv2:Markdown .
-
-log:log
- lv2:documentation """
-
-A feature which plugins may use to log messages. To support this feature,
-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/log.ttl b/lv2/log/log.ttl
deleted file mode 100644
index a8c4236..0000000
--- a/lv2/log/log.ttl
+++ /dev/null
@@ -1,49 +0,0 @@
-@prefix log: <http://lv2plug.in/ns/ext/log#> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@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#> .
-
-<http://lv2plug.in/ns/ext/log>
- a owl:Ontology ;
- rdfs:label "LV2 Log" ;
- rdfs:comment "A feature for writing log messages." ;
- rdfs:seeAlso <log.h> ,
- <log.meta.ttl> ;
- owl:imports <http://lv2plug.in/ns/lv2core> .
-
-log:Entry
- a rdfs:Class ;
- rdfs:label "Entry" ;
- rdfs:comment "A log entry." .
-
-log:Error
- a rdfs:Class ;
- rdfs:label "Error" ;
- rdfs:subClassOf log:Entry ;
- rdfs:comment "An error message." .
-
-log:Note
- a rdfs:Class ;
- rdfs:label "Note" ;
- rdfs:subClassOf log:Entry ;
- rdfs:comment "An informative message." .
-
-log:Warning
- a rdfs:Class ;
- rdfs:label "Warning" ;
- rdfs:subClassOf log:Entry ;
- rdfs:comment "A warning message." .
-
-log:Trace
- a rdfs:Class ;
- rdfs:label "Trace" ;
- rdfs:subClassOf log:Entry ;
- rdfs:comment "A debugging trace message." .
-
-log:log
- a lv2:Feature ;
- rdfs:label "log" ;
- rdfs:comment "Logging feature." .
-
diff --git a/lv2/log/logger.h b/lv2/log/logger.h
deleted file mode 100644
index d6919a2..0000000
--- a/lv2/log/logger.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- 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.
-*/
-
-#ifndef LV2_ATOM_LOGGER_H
-#define LV2_ATOM_LOGGER_H
-
-/**
- @defgroup logger Logger
- @ingroup log
-
- Convenience API for easy logging in plugin code. This API provides simple
- wrappers for logging from a plugin, which automatically fall back to
- printing to stderr if host support is unavailable.
-
- @{
-*/
-
-#include "lv2/log/log.h"
-#include "lv2/urid/urid.h"
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- Logger convenience API state.
-*/
-typedef struct {
- LV2_Log_Log* log;
-
- LV2_URID Error;
- LV2_URID Note;
- LV2_URID Trace;
- LV2_URID Warning;
-} LV2_Log_Logger;
-
-/**
- Set `map` as the URI map for `logger`.
-
- This affects the message type URIDs (Error, Warning, etc) which are passed
- to the log's print functions.
-*/
-static inline void
-lv2_log_logger_set_map(LV2_Log_Logger* logger, LV2_URID_Map* map)
-{
- if (map) {
- logger->Error = map->map(map->handle, LV2_LOG__Error);
- logger->Note = map->map(map->handle, LV2_LOG__Note);
- logger->Trace = map->map(map->handle, LV2_LOG__Trace);
- logger->Warning = map->map(map->handle, LV2_LOG__Warning);
- } else {
- logger->Error = logger->Note = logger->Trace = logger->Warning = 0;
- }
-}
-
-/**
- Initialise `logger`.
-
- URIs will be mapped using `map` and stored, a reference to `map` itself is
- not held. Both `map` and `log` may be NULL when unsupported by the host,
- in which case the implementation will fall back to printing to stderr.
-*/
-static inline void
-lv2_log_logger_init(LV2_Log_Logger* logger, LV2_URID_Map* map, LV2_Log_Log* log)
-{
- logger->log = log;
- lv2_log_logger_set_map(logger, map);
-}
-
-/**
- Log a message to the host, or stderr if support is unavailable.
-*/
-LV2_LOG_FUNC(3, 0)
-static inline int
-lv2_log_vprintf(LV2_Log_Logger* logger,
- LV2_URID type,
- const char* fmt,
- va_list args)
-{
- return ((logger && logger->log)
- ? logger->log->vprintf(logger->log->handle, type, fmt, args)
- : vfprintf(stderr, fmt, args));
-}
-
-/** Log an error via lv2_log_vprintf(). */
-LV2_LOG_FUNC(2, 3)
-static inline int
-lv2_log_error(LV2_Log_Logger* logger, const char* fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- const int ret = lv2_log_vprintf(logger, logger->Error, fmt, args);
- va_end(args);
- return ret;
-}
-
-/** Log a note via lv2_log_vprintf(). */
-LV2_LOG_FUNC(2, 3)
-static inline int
-lv2_log_note(LV2_Log_Logger* logger, const char* fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- const int ret = lv2_log_vprintf(logger, logger->Note, fmt, args);
- va_end(args);
- return ret;
-}
-
-/** Log a trace via lv2_log_vprintf(). */
-LV2_LOG_FUNC(2, 3)
-static inline int
-lv2_log_trace(LV2_Log_Logger* logger, const char* fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- const int ret = lv2_log_vprintf(logger, logger->Trace, fmt, args);
- va_end(args);
- return ret;
-}
-
-/** Log a warning via lv2_log_vprintf(). */
-LV2_LOG_FUNC(2, 3)
-static inline int
-lv2_log_warning(LV2_Log_Logger* logger, const char* fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- const int ret = lv2_log_vprintf(logger, logger->Warning, fmt, args);
- va_end(args);
- return ret;
-}
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-/**
- @}
-*/
-
-#endif /* LV2_LOG_LOGGER_H */
diff --git a/lv2/log/manifest.ttl b/lv2/log/manifest.ttl
deleted file mode 100644
index bcaeff3..0000000
--- a/lv2/log/manifest.ttl
+++ /dev/null
@@ -1,9 +0,0 @@
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-
-<http://lv2plug.in/ns/ext/log>
- a lv2:Specification ;
- lv2:minorVersion 2 ;
- lv2:microVersion 4 ;
- rdfs:seeAlso <log.ttl> .
-
diff --git a/lv2/log/meson.build b/lv2/log/meson.build
deleted file mode 100644
index 9b13db0..0000000
--- a/lv2/log/meson.build
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2022 David Robillard <d@drobilla.net>
-# SPDX-License-Identifier: CC0-1.0 OR ISC
-
-name = 'log'
-path = 'ns' / 'ext' / 'log'
-
-log_data = files(
- 'log.meta.ttl',
- 'log.ttl',
- 'manifest.ttl',
-)
-
-headers = files(
- 'log.h',
- 'logger.h',
-)
-
-# Install specification bundle
-install_data(log_data, install_dir: lv2dir / name + '.lv2')
-install_headers(headers, subdir: 'lv2' / name)
-if get_option('old_headers')
- install_headers(headers, subdir: 'lv2' / 'lv2plug.in' / path)
-endif
-
-# Build documentation
-if build_docs
- lv2_log_docs = custom_target(
- name + '.html',
- command: lv2specgen_command_prefix + [
- '--docdir=../../html',
- '--style-uri=../../aux/style.css',
- '@INPUT@',
- '@OUTPUT@',
- ],
- depends: doc_deps,
- input: files('log.ttl'),
- install: true,
- install_dir: lv2_docdir / 'ns' / 'ext',
- output: name + '.html',
- )
-endif