Browse Source

Single-page API documentation with unified style.

zrythm_meson
David Robillard 9 years ago
parent
commit
68a4dc89f5
  1. 194
      doc/DoxygenLayout.xml
  2. 172
      doc/doxy-style.css
  3. 1
      doc/header.html
  4. 11
      doc/reference.doxygen.in
  5. 71
      doc/style.css
  6. 12
      lv2/lv2plug.in/ns/ext/atom/atom.h
  7. 45
      lv2/lv2plug.in/ns/ext/atom/atom.ttl
  8. 7
      lv2/lv2plug.in/ns/ext/atom/forge.h
  9. 7
      lv2/lv2plug.in/ns/ext/atom/util.h
  10. 13
      lv2/lv2plug.in/ns/ext/buf-size/buf-size.h
  11. 2
      lv2/lv2plug.in/ns/ext/buf-size/lv2-buf-size.doap.ttl
  12. 14
      lv2/lv2plug.in/ns/ext/data-access/data-access.h
  13. 14
      lv2/lv2plug.in/ns/ext/dynmanifest/dynmanifest.h
  14. 22
      lv2/lv2plug.in/ns/ext/event/event.h
  15. 25
      lv2/lv2plug.in/ns/ext/instance-access/instance-access.h
  16. 12
      lv2/lv2plug.in/ns/ext/log/log.h
  17. 19
      lv2/lv2plug.in/ns/ext/log/logger.h
  18. 10
      lv2/lv2plug.in/ns/ext/midi/midi.h
  19. 2
      lv2/lv2plug.in/ns/ext/morph/lv2-morph.doap.ttl
  20. 13
      lv2/lv2plug.in/ns/ext/morph/morph.h
  21. 13
      lv2/lv2plug.in/ns/ext/options/options.h
  22. 13
      lv2/lv2plug.in/ns/ext/parameters/parameters.h
  23. 16
      lv2/lv2plug.in/ns/ext/patch/patch.h
  24. 13
      lv2/lv2plug.in/ns/ext/port-groups/port-groups.h
  25. 12
      lv2/lv2plug.in/ns/ext/port-props/port-props.h
  26. 2
      lv2/lv2plug.in/ns/ext/presets/lv2-presets.doap.ttl
  27. 11
      lv2/lv2plug.in/ns/ext/presets/presets.h
  28. 2
      lv2/lv2plug.in/ns/ext/resize-port/lv2-resize-port.doap.ttl
  29. 12
      lv2/lv2plug.in/ns/ext/resize-port/resize-port.h
  30. 12
      lv2/lv2plug.in/ns/ext/state/state.h
  31. 15
      lv2/lv2plug.in/ns/ext/time/time.h
  32. 11
      lv2/lv2plug.in/ns/ext/uri-map/uri-map.h
  33. 12
      lv2/lv2plug.in/ns/ext/urid/urid.h
  34. 24
      lv2/lv2plug.in/ns/ext/worker/worker.h
  35. 11
      lv2/lv2plug.in/ns/extensions/ui/ui.h
  36. 13
      lv2/lv2plug.in/ns/extensions/units/units.h
  37. 28
      lv2/lv2plug.in/ns/index.html.in
  38. 12
      lv2/lv2plug.in/ns/lv2core/lv2.h
  39. 2
      lv2/lv2plug.in/ns/meta/meta.ttl
  40. 132
      lv2specgen/lv2specgen.py
  41. 2
      lv2specgen/template.html
  42. 29
      wscript

194
doc/DoxygenLayout.xml

@ -0,0 +1,194 @@ @@ -0,0 +1,194 @@
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.8.8 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="user" url="../../ns/index.html" title="Index"/>
<tab type="mainpage" visible="no" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<detaileddescription title=""/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<defines title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>

172
doc/doxy-style.css

@ -88,11 +88,6 @@ div.qindex,div.navtab { @@ -88,11 +88,6 @@ div.qindex,div.navtab {
padding: 2px;
}
div.qindex,div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
@ -162,6 +157,10 @@ div.groupHeader { @@ -162,6 +157,10 @@ div.groupHeader {
font-weight: 700;
}
a + h2.groupheader {
display: none;
}
div.groupText {
margin-left: 16px;
font-style: italic;
@ -236,7 +235,7 @@ span.keyword { @@ -236,7 +235,7 @@ span.keyword {
}
span.keywordtype {
color: #604020;
color: #3E873E;
}
span.keywordflow {
@ -300,14 +299,12 @@ hr.footer { @@ -300,14 +299,12 @@ hr.footer {
/* @group Member Descriptions */
table.memberdecls {
border-spacing: 0;
font-size: small;
border-spacing: 0.125em;
}
.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams {
background-color: #FBFBFB;
margin: 0;
padding: 0.25ex;
padding: 0;
}
.mdescLeft,.mdescRight {
@ -315,7 +312,7 @@ table.memberdecls { @@ -315,7 +312,7 @@ table.memberdecls {
}
.memItemLeft,.memItemRight,.memTemplParams {
border-top: 1px solid #DDD;
border: 0;
}
.memItemLeft,.memTemplItemLeft {
@ -323,11 +320,19 @@ table.memberdecls { @@ -323,11 +320,19 @@ table.memberdecls {
padding-left: 2em;
}
.memItemLeft a.el {
font-weight: bold;
}
.memTemplParams {
color: #464646;
white-space: nowrap;
}
td.memSeparator {
display: none;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
@ -349,7 +354,8 @@ table.memberdecls { @@ -349,7 +354,8 @@ table.memberdecls {
.memitem {
padding: 0;
margin: 1ex 0 2ex 0;
border: 1px solid #CCC;
border: 1px solid #333;
border-radius: 6px;
}
.memname {
@ -362,12 +368,20 @@ table.memberdecls { @@ -362,12 +368,20 @@ table.memberdecls {
padding: 0.5ex;
font-weight: bold;
background-color: #F3F3F3;
border-radius: 6px 6px 0 0;
background: linear-gradient(to bottom, #444 0%, #000 100%);
color: #FFF;
}
.memproto .paramname {
color: #CCC;
}
.memdoc {
padding: 1ex;
background-color: #FBFBFB;
border-top-width: 0;
border-radius: 0 0 6px 6px;
}
.paramkey {
@ -375,6 +389,7 @@ table.memberdecls { @@ -375,6 +389,7 @@ table.memberdecls {
}
.paramtype {
color: #3E873E;
white-space: nowrap;
}
@ -397,9 +412,8 @@ table.memberdecls { @@ -397,9 +412,8 @@ table.memberdecls {
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
margin: 5px;
font-size: small;
margin: 0.5em;
}
.directory h3 {
@ -494,12 +508,13 @@ table.doxtable th { @@ -494,12 +508,13 @@ table.doxtable th {
font-size: 13px;
}
div.navpath {
padding: 0.25em;
}
.navpath ul {
font-size: 11px;
height: 30px;
line-height: 30px;
font-size: x-small;
color: #8AA0CC;
border: 1px solid #C2CDE4;
overflow: hidden;
margin: 0;
padding: 0;
@ -514,7 +529,6 @@ table.doxtable th { @@ -514,7 +529,6 @@ table.doxtable th {
}
.navpath a {
height: 32px;
display: block;
text-decoration: none;
outline: none;
@ -526,8 +540,8 @@ table.doxtable th { @@ -526,8 +540,8 @@ table.doxtable th {
div.summary {
float: right;
font-size: 8pt;
padding-right: 5px;
font-size: x-small;
padding: 0.25em 0.5em 0 0;
width: 50%;
text-align: right;
}
@ -540,40 +554,33 @@ div.header { @@ -540,40 +554,33 @@ div.header {
background-color: #F3F3F3;
margin: 0;
border-bottom: 1px solid #DDD;
border-radius: 0 0 6px 6px;
}
div.headertitle {
background-color: #ECF3F1;
padding: 5px 5px 5px 10px;
font-size: 180%;
font-weight: bold;
color: #FFF;
padding: 0.125em 0.25em 0.125em 0.25em;
background-color: #333;
background: linear-gradient(to bottom, #444 0%, #000 100%);
border: 0;
border-top: solid 2px #444;
border-bottom: solid 2px #444;
border-radius: 0 0 6px 6px;
}
div.line {
font-family: monospace, fixed;
font-size: 13px;
font-size: 13px;
min-height: 13px;
line-height: 1.0;
text-wrap: unrestricted;
white-space: -moz-pre-wrap; /* Moz */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: pre-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
white-space: pre-wrap;
text-indent: -53px;
padding-left: 53px;
padding-bottom: 0px;
margin: 0px;
-webkit-transition-property: background-color, box-shadow;
-webkit-transition-duration: 0.5s;
-moz-transition-property: background-color, box-shadow;
-moz-transition-duration: 0.5s;
-ms-transition-property: background-color, box-shadow;
-ms-transition-duration: 0.5s;
-o-transition-property: background-color, box-shadow;
-o-transition-duration: 0.5s;
transition-property: background-color, box-shadow;
transition-duration: 0.5s;
}
div.line.glow {
@ -587,7 +594,7 @@ span.lineno { @@ -587,7 +594,7 @@ span.lineno {
text-align: right;
border-right: 2px solid #0F0;
background-color: #E8E8E8;
white-space: pre;
white-space: pre;
}
span.lineno a {
background-color: #D8D8D8;
@ -596,3 +603,86 @@ span.lineno a { @@ -596,3 +603,86 @@ span.lineno a {
span.lineno a:hover {
background-color: #C8C8C8;
}
.tabs, .tabs2, .navpath {
background-image: none;
background-color: #333;
background: linear-gradient(to bottom, #444 0%, #000 100%);
border: 0;
border-bottom: solid 2px #000;
padding: 0;
padding-top: 2px;
}
#navrow1 {
border: 0;
}
th {
text-align: left;
}
.mlabel {
padding: 0.125em;
}
/* tabs*/
.tabs, .tabs2, .tabs3 {
width: 100%;
z-index: 101;
font-size: large;
}
.tabs2 {
font-size: 10px;
}
.tabs3 {
font-size: 9px;
}
.tablist {
margin: 0;
padding: 0;
display: table;
}
.tablist li {
float: left;
display: table-cell;
line-height: 2em;
list-style: none;
background-color: #333;
background: linear-gradient(to bottom, #555 0%, #111 100%);
border: solid 1px #000;
border-radius: 6px 6px 0 0;
color: #fff;
}
.tablist a {
display: block;
padding: 0 20px;
font-weight: bold;
color: #fff;
text-decoration: none;
outline: none;
}
.tabs3 .tablist a {
padding: 0 10px;
}
.tablist a:hover {
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
text-decoration: none;
}
.tablist li.current a {
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
span.icon {
display: none;
}

1
doc/header.html

@ -3,7 +3,6 @@ @@ -3,7 +3,6 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>LV2: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxy-style.css" rel="stylesheet" type="text/css" />
</head>
<body>

11
doc/reference.doxygen.in

@ -98,7 +98,7 @@ OUTPUT_LANGUAGE = English @@ -98,7 +98,7 @@ OUTPUT_LANGUAGE = English
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.
BRIEF_MEMBER_DESC = YES
BRIEF_MEMBER_DESC = NO
# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
# description of a member or function before the detailed description
@ -361,7 +361,7 @@ SUBGROUPING = YES @@ -361,7 +361,7 @@ SUBGROUPING = YES
# SEPARATE_MEMBER_PAGES.
# The default value is: NO.
INLINE_GROUPED_CLASSES = NO
INLINE_GROUPED_CLASSES = YES
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
# with only public data fields or simple typedef fields will be shown inline in
@ -672,7 +672,7 @@ FILE_VERSION_FILTER = @@ -672,7 +672,7 @@ FILE_VERSION_FILTER =
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty.
LAYOUT_FILE =
LAYOUT_FILE = DoxygenLayout.xml
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
@ -765,11 +765,15 @@ INPUT = @LV2_SRCDIR@/doc/mainpage.dox \ @@ -765,11 +765,15 @@ INPUT = @LV2_SRCDIR@/doc/mainpage.dox \
lv2/lv2plug.in/ns/ext/event/event.h \
lv2/lv2plug.in/ns/ext/instance-access/instance-access.h \
lv2/lv2plug.in/ns/ext/log/log.h \
lv2/lv2plug.in/ns/ext/log/logger.h \
lv2/lv2plug.in/ns/ext/midi/midi.h \
lv2/lv2plug.in/ns/ext/morph/morph.h \
lv2/lv2plug.in/ns/ext/options/options.h \
lv2/lv2plug.in/ns/ext/parameters/parameters.h \
lv2/lv2plug.in/ns/ext/patch/patch.h \
lv2/lv2plug.in/ns/ext/port-groups/port-groups.h \
lv2/lv2plug.in/ns/ext/port-props/port-props.h \
lv2/lv2plug.in/ns/ext/presets/presets.h \
lv2/lv2plug.in/ns/ext/resize-port/resize-port.h \
lv2/lv2plug.in/ns/ext/state/state.h \
lv2/lv2plug.in/ns/ext/time/time.h \
@ -777,6 +781,7 @@ INPUT = @LV2_SRCDIR@/doc/mainpage.dox \ @@ -777,6 +781,7 @@ INPUT = @LV2_SRCDIR@/doc/mainpage.dox \
lv2/lv2plug.in/ns/ext/urid/urid.h \
lv2/lv2plug.in/ns/ext/worker/worker.h \
lv2/lv2plug.in/ns/extensions/ui/ui.h \
lv2/lv2plug.in/ns/extensions/units/units.h \
lv2/lv2plug.in/ns/lv2core/lv2.h
# This tag can be used to specify the character encoding of the source files

71
doc/style.css

@ -130,14 +130,15 @@ h6 { @@ -130,14 +130,15 @@ h6 {
position: absolute;
right: 0;
top: 0;
padding: 1ex;
margin: 0.5ex 0.25ex 0 0.5ex;
padding: 0.5em;
font-size: x-small;
border-style: hidden;
}
#meta tr, #meta th, #meta td {
border: 0;
font-weight: normal;
padding: 0.125em 0.25em 0.125em 0.25em;
background-color: transparent;
}
#meta th {
text-align: right;
@ -148,8 +149,8 @@ h6 { @@ -148,8 +149,8 @@ h6 {
#title {
font-size: 200%;
font-weight: 700;
margin: 0 0 0.25ex 0;
padding: 0 0 0 0;
margin: 0;
padding: 0;
}
#subtitle {
font-size: small;
@ -472,8 +473,6 @@ ul, ol { @@ -472,8 +473,6 @@ ul, ol {
background-color: #222;
background: linear-gradient(to bottom, #444 0%, #000 100%);
border-bottom: solid 2px #444;
border-left: solid 2px #444;
border-right: solid 2px #444;
border-radius: 0 0 6px 6px;
color: #EEE;
margin: 0;
@ -499,6 +498,42 @@ ul, ol { @@ -499,6 +498,42 @@ ul, ol {
}
.index {
margin-left: 1em;
border-collapse: initial;
border-spacing: 0;
border-radius: 6px;
}
.index th {
color: #FFF;
background-color: #222;
background: linear-gradient(to bottom, #444 0%, #000 100%);
border: 0;
border-right: solid 1px #333;
border-bottom: solid 1px #333;
}
.index td {
vertical-align: top;
border: 0;
border-right: solid 1px #DDD;
border-bottom: solid 1px #DDD;
}
.index td:first-child {
border-left: solid 1px #DDD;
}
.index ul {
padding-left: 1em;
border-collapse: initial;
}
.index thead tr th:first-child {
border-radius: 6px 0 0 0;
}
.index thead tr th:last-child {
border-radius: 0 6px 0 0;
}
.index tbody tr:last-child td:first-child {
border-radius:0 0 0 6px;
}
.index tbody tr:last-child td:last-child {
border-radius:0 0 6px 0;
}
.prop {
margin: 0;
@ -527,12 +562,19 @@ ul, ol { @@ -527,12 +562,19 @@ ul, ol {
vertical-align: text-top;
}
.terminfo th {
padding: 0 1ex 0 0;
padding: 0.25em 0.75em 0.125em 0;
border: 0;
border-bottom: 1px solid #ddd;
}
.terminfo td {
padding: 0;
border: 0;
border-bottom: 1px solid #ddd;
}
.specterm {
background-color: #FBFBFB;
border: 0;
border: 1px solid #444;
border: 1px solid #333;
margin: 0;
padding: 0;
margin-bottom: 1em;
@ -545,7 +587,7 @@ ul, ol { @@ -545,7 +587,7 @@ ul, ol {
color: #FFF;
background-color: #222;
background: linear-gradient(to bottom, #444 0%, #000 100%);
border: solid 2px #444;
border: solid 1px #333;
border-radius: 6px 6px 0 0;
}
.spectermbody {
@ -581,15 +623,20 @@ div.head table { @@ -581,15 +623,20 @@ div.head table {
table {
border-collapse: collapse;
border-style: hidden;
border-spacing: 0;
margin: 0;
border: 0;
}
th {
vertical-align: text-top;
background-color: #F8F8F8;
}
td, th {
border: 1px dashed #ccc;
padding: 0.3ex 0.5em 0.3ex 0.5em;
border: 1px solid #ddd;
padding: 0.25em 0.5em 0.25em 0.5em;
}
th {
font-weight: bold;
text-align: left;
}
pre {
margin: 1em 1em 1em 4em;

12
lv2/lv2plug.in/ns/ext/atom/atom.h

@ -15,8 +15,12 @@ @@ -15,8 +15,12 @@
*/
/**
@file atom.h C header for the LV2 Atom extension
<http://lv2plug.in/ns/ext/atom>.
@defgroup atom Atom
A generic value container and several data types, see
<http://lv2plug.in/ns/ext/atom> for details.
@{
*/
#ifndef LV2_ATOM_H
@ -239,6 +243,10 @@ typedef struct { @@ -239,6 +243,10 @@ typedef struct {
LV2_Atom_Sequence_Body body; /**< Body. */
} LV2_Atom_Sequence;
/**
@}
*/
#ifdef __cplusplus
} /* extern "C" */
#endif

45
lv2/lv2plug.in/ns/ext/atom/atom.ttl

@ -14,31 +14,26 @@ @@ -14,31 +14,26 @@
<forge.h> ,
<lv2-atom.doap.ttl> ;
lv2:documentation """
<p>This specification defines a simple generic data container, called an
<q>Atom</q>. An atom:Atom can contain simple primitive types like integers,
<p>An #Atom is a simple generic data container for holding any type of Plain
Old Data (POD). An #Atom can contain simple primitive types like integers,
floating point numbers, and strings; as well as structured data like lists and
dictionary-like <q>Objects</q>. An Atom is, with one exception, Plain Old Data
(POD), meaning it can be easily copied (e.g. using <code>memcpy</code>) and is
suitable for use in real-time code.</p>
<p>Atoms are not limited to the types defined here, but allow implementations
to work with any type of POD data at all. This is possible because Atom types
are URIs, but mapped to integers using the <a href="../urid/urid.html">LV2
URID</a> extension for performance reasons.</p>
<p>Since atoms are simple to copy,
communication of any atom is simple to implement without requiring special code
for every type of data. For example, plugins that mutually understand a type
can be used together in a host that does not understand that type, because the
host is only required to copy atoms, not interpret their contents. Similarly,
plugins (such as routers, delays, or data structures) can meaningfully process
atoms of a type unknown to them.</p>
<p>Atoms can and should be used anywhere values of various types must be stored
or transmitted. The port type atom:AtomPort can be used to transmit atoms via
ports. An atom:AtomPort that contains an atom:Sequence can be used for sample
accurate event communication, such as MIDI, and replaces the earlier <a
href="../event/event.html">LV2 event</a> extension.</p>
dictionary-like <q>Objects</q>. Since Atoms are POD, they can be easily copied
(e.g. using <code>memcpy</code>) anywhere and are suitable for use in real-time
code.</p>
<p>Every atom starts with an LV2_Atom header, followed by the contents. This
allows code to process atoms without requiring special code for every type of
data. For example, plugins that mutually understand a type can be used
together in a host that does not understand that type, because the host is only
required to copy atoms, not interpret their contents. Similarly, plugins (such
as routers, delays, or data structures) can meaningfully process atoms of a
type unknown to them.</p>
<p>Atoms should be used anywhere values of various types must be stored or
transmitted. The port type #AtomPort can be used to transmit atoms via ports.
An #AtomPort that contains an #Sequence can be used for sample accurate event
communication, such as MIDI, and replaces the earlier event extension.</p>
<h3>Serialisation</h3>
@ -54,7 +49,7 @@ in plugin data files.</p> @@ -54,7 +49,7 @@ in plugin data files.</p>
<p>While it is possible to define new Atom types for any binary format, the
standard types defined here are powerful enough to describe almost anything.
Implementations SHOULD build structures out of the types provided here, rather
than define new binary formats (e.g. use atom:Tuple or atom:Object rather than
than define new binary formats (e.g. use #Tuple or #Object rather than
a new C <code>struct</code> type). Current implementations have support for
serialising all standard types, so new binary formats are an implementation
burden which harms interoperabilty. In particular, plugins SHOULD NOT expect

7
lv2/lv2plug.in/ns/ext/atom/forge.h

@ -39,6 +39,12 @@ @@ -39,6 +39,12 @@
This header is non-normative, it is provided for convenience.
*/
/**
@defgroup forge Forge
@ingroup atom
@{
*/
#ifndef LV2_ATOM_FORGE_H
#define LV2_ATOM_FORGE_H
@ -687,6 +693,7 @@ lv2_atom_forge_beat_time(LV2_Atom_Forge* forge, double beats) @@ -687,6 +693,7 @@ lv2_atom_forge_beat_time(LV2_Atom_Forge* forge, double beats)
/**
@}
@}
*/
#if defined(__clang__)

7
lv2/lv2plug.in/ns/ext/atom/util.h

@ -22,6 +22,12 @@ @@ -22,6 +22,12 @@
This header is non-normative, it is provided for convenience.
*/
/**
@defgroup util Utilities
@ingroup atom
@{
*/
#ifndef LV2_ATOM_UTIL_H
#define LV2_ATOM_UTIL_H
@ -437,6 +443,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...) @@ -437,6 +443,7 @@ lv2_atom_object_get(const LV2_Atom_Object* object, ...)
/**
@}
@}
*/
#ifdef __cplusplus

13
lv2/lv2plug.in/ns/ext/buf-size/buf-size.h

@ -17,6 +17,15 @@ @@ -17,6 +17,15 @@
#ifndef LV2_BUF_SIZE_H
#define LV2_BUF_SIZE_H
/**
@defgroup buf-size Buffer Size
Access to, and restrictions on, buffer sizes; see
<http://lv2plug.in/ns/ext/buf-size> for details.
@{
*/
#define LV2_BUF_SIZE_URI "http://lv2plug.in/ns/ext/buf-size"
#define LV2_BUF_SIZE_PREFIX LV2_BUF_SIZE_URI "#"
@ -27,4 +36,8 @@ @@ -27,4 +36,8 @@
#define LV2_BUF_SIZE__powerOf2BlockLength LV2_BUF_SIZE_PREFIX "powerOf2BlockLength"
#define LV2_BUF_SIZE__sequenceSize LV2_BUF_SIZE_PREFIX "sequenceSize"
/**
@}
*/
#endif /* LV2_BUF_SIZE_H */

2
lv2/lv2plug.in/ns/ext/buf-size/lv2-buf-size.doap.ttl

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
<http://lv2plug.in/ns/ext/buf-size>
a doap:Project ;
rdfs:seeAlso <../../meta/meta.ttl> ;
doap:name "LV2 Buf Size Extension" ;
doap:name "LV2 Buf Size" ;
doap:shortdesc "Access to, and restrictions on, buffer sizes." ;
doap:created "2012-08-07" ;
doap:developer <http://drobilla.net/drobilla#me> ;

14
lv2/lv2plug.in/ns/ext/data-access/data-access.h

@ -16,12 +16,12 @@ @@ -16,12 +16,12 @@
*/
/**
@file data-access.h
C header for the LV2 Extension Data extension
<http://lv2plug.in/ns/ext/data-access>.
@defgroup data-access Data Access
This extension defines a method for (e.g.) plugin UIs to have (possibly
marshalled) access to the extension_data function on a plugin instance.
Access to plugin extension_data() for UIs, see
<http://lv2plug.in/ns/ext/data-acess> for details.
@{
*/
#ifndef LV2_DATA_ACCESS_H
@ -61,3 +61,7 @@ typedef struct { @@ -61,3 +61,7 @@ typedef struct {
#endif
#endif /* LV2_DATA_ACCESS_H */
/**
@}
*/

14
lv2/lv2plug.in/ns/ext/dynmanifest/dynmanifest.h

@ -16,10 +16,12 @@ @@ -16,10 +16,12 @@
*/
/**
@file dynmanifest.h
C header for the LV2 Dynamic Manifest extension
<http://lv2plug.in/ns/ext/dynmanifest>.
Revision: 1.2
@defgroup dynmanifest Dynamic Manifest
Support for dynamic data generation, see
<http://lv2plug.in/ns/ext/dynmanifest> for details.
@{
*/
#ifndef LV2_DYN_MANIFEST_H_INCLUDED
@ -142,3 +144,7 @@ void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle); @@ -142,3 +144,7 @@ void lv2_dyn_manifest_close(LV2_Dyn_Manifest_Handle handle);
#endif
#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
/**
@}
*/

22
lv2/lv2plug.in/ns/ext/event/event.h

@ -16,18 +16,12 @@ @@ -16,18 +16,12 @@
*/
/**
@file event.h
C API for the LV2 Event extension <http://lv2plug.in/ns/ext/event>.
This extension is a generic transport mechanism for time stamped events
of any type (e.g. MIDI, OSC, ramps, etc). Each port can transport mixed
events of any type; the type of events and timestamps are defined by a URI
which is mapped to an integer by the host for performance reasons.
This extension requires the host to support the LV2 URI Map extension.
Any host which supports this extension MUST guarantee that any call to
the LV2 URI Map uri_to_id function with the URI of this extension as the
'map' argument returns a value within the range of uint16_t.
@defgroup event Event
Generic time-stamped events, see <http://lv2plug.in/ns/ext/event> for
details.
@{
*/
#ifndef LV2_EVENT_H
@ -292,3 +286,7 @@ typedef struct { @@ -292,3 +286,7 @@ typedef struct {
#endif
#endif /* LV2_EVENT_H */
/**
@}
*/

25
lv2/lv2plug.in/ns/ext/instance-access/instance-access.h

@ -15,23 +15,22 @@ @@ -15,23 +15,22 @@
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
@defgroup instance-access Instance Access
Access to the LV2_Handle of a plugin for UIs; see
<http://lv2plug.in/ns/ext/instance-access> for details.
@{
*/
#ifndef LV2_INSTANCE_ACCESS_H
#define LV2_INSTANCE_ACCESS_H
#define LV2_INSTANCE_ACCESS_URI "http://lv2plug.in/ns/ext/instance-access"
/**
@file instance-access.h
C header for the LV2 Instance Access extension
<http://lv2plug.in/ns/ext/instance-access>.
This extension defines a method for (e.g.) plugin UIs to get a direct
handle to an LV2 plugin instance (LV2_Handle), if possible.
To support this feature the host must pass an LV2_Feature struct to the
UI instantiate method with URI "http://lv2plug.in/ns/ext/instance-access"
and data pointed directly to the LV2_Handle of the plugin instance.
*/
#endif /* LV2_INSTANCE_ACCESS_H */
/**
@}
*/

12
lv2/lv2plug.in/ns/ext/log/log.h

@ -15,8 +15,12 @@ @@ -15,8 +15,12 @@
*/
/**
@file log.h C header for the LV2 Log extension
<http://lv2plug.in/ns/ext/log>.
@defgroup log Log
Interface for plugins to log via the host; see
<http://lv2plug.in/ns/ext/log> for details.
@{
*/
#ifndef LV2_LOG_H
@ -97,3 +101,7 @@ typedef struct _LV2_Log { @@ -97,3 +101,7 @@ typedef struct _LV2_Log {
#endif
#endif /* LV2_LOG_H */
/**
@}
*/

19
lv2/lv2plug.in/ns/ext/log/logger.h

@ -15,13 +15,14 @@ @@ -15,13 +15,14 @@
*/
/**
@file logger.h Convenience API for easy logging in plugin code.
@defgroup logger Logger
@ingroup log
This file provides simple wrappers for the most common log operations for
use in plugin implementations. If host support for logging is not
available, then these functions will print to stderr instead.
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 unavailabe.
This header is non-normative, it is provided for convenience.
@{
*/
#ifndef LV2_ATOM_LOGGER_H
@ -135,12 +136,12 @@ lv2_log_warning(LV2_Log_Logger* logger, const char* fmt, ...) @@ -135,12 +136,12 @@ lv2_log_warning(LV2_Log_Logger* logger, const char* fmt, ...)
return ret;
}
/**
@}
*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* LV2_LOG_LOGGER_H */
/**
@}
*/

10
lv2/lv2plug.in/ns/ext/midi/midi.h

@ -15,8 +15,10 @@ @@ -15,8 +15,10 @@
*/
/**
@file midi.h
C definitions for the LV2 MIDI extension <http://lv2plug.in/ns/ext/midi>.
@defgroup midi MIDI
Definitions of standard MIDI messages, see <http://lv2plug.in/ns/ext/midi>
for details.
*/
#ifndef LV2_MIDI_H
@ -224,3 +226,7 @@ lv2_midi_message_type(const uint8_t* msg) { @@ -224,3 +226,7 @@ lv2_midi_message_type(const uint8_t* msg) {
#endif
#endif /* LV2_MIDI_H */
/**
@}
*/

2
lv2/lv2plug.in/ns/ext/morph/lv2-morph.doap.ttl

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
<http://lv2plug.in/ns/ext/morph>
a doap:Project ;
rdfs:seeAlso <../../meta/meta.ttl> ;
doap:name "LV2 Morph Extension" ;
doap:name "LV2 Morph" ;
doap:shortdesc "Ports that can dynamically change type." ;
doap:created "2012-05-22" ;
doap:developer <http://drobilla.net/drobilla#me> ;

13
lv2/lv2plug.in/ns/ext/morph/morph.h

@ -14,6 +14,15 @@ @@ -14,6 +14,15 @@
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
@defgroup morph Morph
Ports that can dynamically change type, see <http://lv2plug.in/ns/ext/morph>
for details.
@{
*/
#ifndef LV2_MORPH_H
#define LV2_MORPH_H
@ -32,3 +41,7 @@ @@ -32,3 +41,7 @@
#define LV2_MORPH__currentType LV2_MORPH_PREFIX "currentType"
#endif /* LV2_MORPH_H */
/**
@}
*/

13
lv2/lv2plug.in/ns/ext/options/options.h

@ -14,6 +14,15 @@ @@ -14,6 +14,15 @@
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
@defgroup options Options
Instantiation time options, see <http://lv2plug.in/ns/ext/options> for
details.
@{
*/
#ifndef LV2_OPTIONS_H
#define LV2_OPTIONS_H
@ -130,3 +139,7 @@ typedef struct _LV2_Options_Interface { @@ -130,3 +139,7 @@ typedef struct _LV2_Options_Interface {
#endif
#endif /* LV2_OPTIONS_H */
/**
@}
*/

13
lv2/lv2plug.in/ns/ext/parameters/parameters.h

@ -14,6 +14,15 @@ @@ -14,6 +14,15 @@
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
@defgroup parameters Parameters
Common parameters for audio processing, see
<http://lv2plug.in/ns/ext/parameters>.
@{
*/
#ifndef LV2_PARAMETERS_H
#define LV2_PARAMETERS_H
@ -47,3 +56,7 @@ @@ -47,3 +56,7 @@
#define LV2_PARAMETERS__wetLevel LV2_PARAMETERS_PREFIX "wetLevel"
#endif /* LV2_PARAMETERS_H */
/**
@}
*/

16
lv2/lv2plug.in/ns/ext/patch/patch.h

@ -15,11 +15,15 @@ @@ -15,11 +15,15 @@
*/
/**
@file patch.h C header for the LV2 Patch extension
<http://lv2plug.in/ns/ext/patch>.
@defgroup patch Patch
The patch extension is purely data, this header merely defines URIs
for convenience.
Messages for accessing and manipulating properties, see
<http://lv2plug.in/ns/ext/patch> for details.
Note the patch extension is purely data, this header merely defines URIs for
convenience.
@{
*/
#ifndef LV2_PATCH_H
@ -54,3 +58,7 @@ @@ -54,3 +58,7 @@
#define LV2_PATCH__writable LV2_PATCH_PREFIX "writable"
#endif /* LV2_PATCH_H */
/**
@}
*/

13
lv2/lv2plug.in/ns/ext/port-groups/port-groups.h

@ -15,9 +15,12 @@ @@ -15,9 +15,12 @@
*/
/**
@file port-groups.h
C definitions for the LV2 Port Groups extension
<http://lv2plug.in/ns/ext/port-groups>.
@defgroup port-groups Port Groups
Multi-channel groups of LV2 ports, see
<http://lv2plug.in/ns/ext/port-groups> for details.
@{
*/
#ifndef LV2_PORT_GROUPS_H
@ -62,3 +65,7 @@ @@ -62,3 +65,7 @@
#define LV2_PORT_GROUPS__subGroupOf LV2_PORT_GROUPS_PREFIX "subGroupOf"
#endif /* LV2_PORT_GROUPS_H */
/**
@}
*/

12
lv2/lv2plug.in/ns/ext/port-props/port-props.h

@ -15,9 +15,11 @@ @@ -15,9 +15,11 @@
*/
/**
@file port-props.h
C definitions for the LV2 Port Props extension
<http://lv2plug.in/ns/ext/port-props>.
@defgroup port-props Port Properties
Various port properties.
@{
*/
#ifndef LV2_PORT_PROPS_H
@ -40,3 +42,7 @@ @@ -40,3 +42,7 @@
#define LV2_PORT_PROPS__trigger LV2_PORT_PROPS_PREFIX "trigger"
#endif /* LV2_PORT_PROPS_H */
/**
@}
*/

2
lv2/lv2plug.in/ns/ext/presets/lv2-presets.doap.ttl

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
rdfs:seeAlso <../../meta/meta.ttl> ;
doap:license <http://opensource.org/licenses/isc> ;
doap:name "LV2 Presets" ;
doap:shortdesc "Presets for LV2 plugins. " ;
doap:shortdesc "Presets for LV2 plugins." ;
doap:created "2009-00-00" ;
doap:developer <http://drobilla.net/drobilla#me> ;
doap:release [