aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/c/doxy-style.css1091
-rw-r--r--doc/c/footer.html20
-rw-r--r--doc/c/header.html37
-rw-r--r--doc/c/layout.xml (renamed from doc/DoxygenLayout.xml)44
-rw-r--r--doc/c/mainpage.md3
-rw-r--r--doc/c/meson.build39
-rw-r--r--doc/c/reference.doxygen.in (renamed from doc/reference.doxygen.in)543
-rw-r--r--doc/doxy-style.css691
-rw-r--r--doc/header.html23
-rw-r--r--doc/htaccess.in7
-rw-r--r--doc/index.html.in79
-rw-r--r--doc/mainpage.dox21
-rw-r--r--doc/ns/ext/meson.build68
-rw-r--r--doc/ns/extensions/meson.build49
-rw-r--r--doc/ns/meson.build81
-rw-r--r--doc/pygments.css62
-rw-r--r--doc/style.css694
-rw-r--r--doc/style/asciidoc.css (renamed from doc/asciidoc.css)2
-rw-r--r--doc/style/meson.build13
-rw-r--r--doc/style/pygments.css558
-rw-r--r--doc/style/style.css805
21 files changed, 3108 insertions, 1822 deletions
diff --git a/doc/c/doxy-style.css b/doc/c/doxy-style.css
new file mode 100644
index 0000000..6f15ee4
--- /dev/null
+++ b/doc/c/doxy-style.css
@@ -0,0 +1,1091 @@
+html {
+ background: #FFF;
+ color: #222;
+}
+
+body {
+ font-style: normal;
+ line-height: 1.6em;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 1em;
+ max-width: 60em;
+ font-family: "SF Pro Text", Verdana, "DejaVu Sans", sans-serif;
+ text-rendering: optimizeLegibility;
+}
+
+h1 {
+ font-size: 1.68em;
+ font-weight: 500;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ line-height: 2em;
+ margin: 0 0 0.25em 0;
+}
+
+h2 {
+ line-height: 1.68em;
+ font-size: 1.41em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+h3 {
+ line-height: 1.41em;
+ font-size: 1.18em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+h4 {
+ line-height: 1.18em;
+ font-size: 1em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+h5, h6 {
+ font-size: 0.7em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+a {
+ color: #546E00;
+ text-decoration: none;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #444;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link {
+ color: #444;
+}
+
+h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
+ color: #444;
+}
+
+p {
+ margin: 0.5em 0 0.5em 0;
+}
+
+dt {
+ font-weight: 600;
+}
+
+dd {
+ margin-left: 2em;
+}
+
+caption {
+ font-weight: 700;
+}
+
+.title, #projectname {
+ line-height: 1.0125em;
+ margin: 0.75em 0 0 0;
+}
+
+.titlearea .header .titlebox, #projectname {
+ font-size: 1.68em;
+ font-weight: 400;
+ margin-bottom: 0.25em;
+ margin-top: 0;
+}
+
+#header {
+ padding: 0 0 0.5em 0;
+ border-bottom: 1px solid #EEE;
+}
+
+.header .headertitle .title {
+ line-height: 1.68em;
+ font-size: 1.68em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+}
+
+.ingroups {
+ display: none;
+}
+
+.title .ingroups a {
+ font-size: small;
+ margin-left: 1em;
+}
+
+#titlebox, #metabox {
+ display: inline-block;
+}
+
+#titlebox {
+ display: inline-block;
+ width: 75%;
+ left: 0;
+ top: 0;
+}
+
+#title {
+ margin-bottom: 0.25em;
+ line-height: 1.25em;
+ font-size: 2.5em;
+ color: #333;
+ font-weight: 600;
+}
+
+.PageDoc {
+ margin-top: 1.5em;
+}
+
+.PageDoc .header .headertitle .title {
+ display: none;
+}
+
+#shortdesc {
+ margin: 0;
+ color: #666;
+ display: inline-block;
+ font-style: italic;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ padding: 0;
+}
+
+#titlearea {
+ margin: 0.25em auto 0 auto;
+ padding: 0;
+ position: relative;
+ clear: both;
+ line-height: 1em;
+}
+
+.legend {
+ font-size: small;
+ text-align: center;
+}
+
+.version {
+ font-size: small;
+ text-align: center;
+}
+
+div.qindex,div.navtab {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+a.qindexHL {
+ background-color: #9CAFD4;
+ color: #FFF;
+ border: 1px double #869DCA;
+}
+
+code {
+ color: #444;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+}
+
+dl.el {
+ margin-left: -1cm;
+}
+
+.fragment {
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+}
+
+.ttc {
+ display: none;
+}
+
+pre.fragment {
+ border: 1px solid #C4C4C4;
+ background-color: #F9F9F9;
+ padding: 0.5em;
+ overflow: auto;
+}
+
+div.ah {
+ background-color: #000;
+ font-weight: 700;
+ color: #FFF;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: thin solid #333;
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: 700;
+}
+
+h2.groupheader {
+ line-height: 1.18em;
+ font-size: 1em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+a + h2.groupheader {
+ display: none;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+div.contents, #content {
+ max-width: 60em;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.groupheader + p {
+ font-style: italic;
+ color: #666;
+ margin: 0 0 1em 0;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: 700;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0;
+ padding: 2px 10px;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0;
+}
+
+table.memname {
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+ border-spacing: 0;
+}
+
+table.memname tbody tr:last-child {
+ display: none;
+}
+
+table.memname tbody tr:only-child {
+ display: table-cell;
+}
+
+table.memname tbody tr:nth-last-child(2)::after {
+ content: ")";
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0;
+}
+
+div.center img {
+ border: 0;
+}
+
+address.footer {
+ text-align: right;
+}
+
+img.footer {
+ border: 0;
+ vertical-align: middle;
+}
+
+span.keyword {
+ color: #586E75;
+}
+
+span.keywordtype {
+ color: #546E00;
+}
+
+span.keywordflow {
+ color: #586E75;
+}
+
+span.comment {
+ color: #6C71C4;
+}
+
+span.preprocessor {
+ color: #D33682;
+}
+
+span.stringliteral {
+ color: #CB4B16;
+}
+
+span.charliteral {
+ color: #CB4B16;
+}
+
+td.tiny {
+ font-size: x-small;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: 700;
+}
+
+hr {
+ height: 0;
+ border: none;
+ border-top: 1px solid #DDD;
+ margin: 2em 0;
+}
+
+#footer {
+ bottom: 0;
+ clear: both;
+ font-size: x-small;
+ margin: 2em 0 0;
+ padding: 0 1em 1em 1em;
+ vertical-align: top;
+ color: #888;
+}
+
+td.ititle {
+ padding-bottom: 0.75em;
+}
+
+table.memberdecls {
+ border-spacing: 0.125em;
+ line-height: 1.3em;
+}
+
+table.memberdecls h3 {
+ line-height: 1.18em;
+ font-size: 1em;
+ font-weight: 600;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 1.25em 0 0.5em 0;
+}
+
+tr.inherit_header td {
+ padding: 1em 0 0.5em 0;
+}
+
+.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams {
+ margin: 0;
+ padding: 0;
+}
+
+.mdescLeft,.mdescRight {
+ color: #555;
+}
+
+.memItemLeft,.memItemRight,.memTemplParams {
+ border: 0;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+}
+
+.memItemLeft,.memTemplItemLeft {
+ white-space: nowrap;
+ padding-left: 2em;
+}
+
+.memItemLeft a.el {
+ font-weight: bold;
+}
+
+.memTemplParams {
+ color: #464646;
+ white-space: nowrap;
+}
+
+td.memSeparator {
+ display: none;
+}
+
+td.mlabels-left {
+ margin-left: 0;
+ padding-left: 0;
+}
+
+td.mlabels-right {
+ color: #B4C342;
+ font-weight: normal;
+ margin-left: 1em;
+ vertical-align: bottom;
+}
+
+.memtitle {
+ border-bottom: 1px solid #EEE;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ font-size: 1.18em;
+ font-weight: 600;
+ line-height: 1.41em;
+ margin: 1.5em 0 0 0;
+}
+
+.permalink {
+ display: none;
+}
+
+.memtemplate {
+ color: #888;
+ font-style: italic;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+ font-size: small;
+}
+
+.memnav {
+ background-color: #EEE;
+ border: 1px solid #B4C342;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.memitem {
+ padding: 0;
+ margin: 0 0 3em 0;
+}
+
+.memproto {
+ border-bottom: 1px solid #EEE;
+ border-left: 1px solid #EEE;
+ color: #444;
+ float: right;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+ font-size: small;
+ margin-bottom: 1em;
+ margin-left: 1em;
+ padding: 0.25em 0 0.25em 0.25em;
+}
+
+.memproto .paramname {
+ font-style: normal;
+ padding-right: 0.25em;
+}
+
+.mlabels {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.memdoc {
+ padding: 0;
+}
+
+.memdoc > p:first-child, .memdoc .textblock > p:first-child {
+ font-style: italic;
+ color: #444;
+ margin-bottom: 0.75em;
+ margin-top: 0;
+ padding-top: 0.25em;
+ font-weight: normal;
+}
+
+.memdoc > p:first-child, .memdoc .textblock > h3:first-child {
+ color: #444;
+ margin-bottom: 0.75em;
+ margin-top: 0;
+ padding-top: 0.25em;
+ font-weight: normal;
+ font-size: 0.9em;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ color: #666;
+ padding: 0 0.25em 0 0.25em;
+ white-space: nowrap;
+}
+
+.params .paramname {
+ color: #111;
+ white-space: nowrap;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+ font-style: italic;
+ padding-right: 0.5em;
+ vertical-align: top;
+}
+
+.fieldname {
+ color: #000;
+}
+
+.fieldtable {
+ margin-top: 1em;
+ border-collapse: collapse;
+}
+
+.fieldtable tbody tr:first-child {
+ display: none;
+}
+
+td.fieldname {
+ vertical-align: top;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+}
+
+td.fielddoc {
+ padding: 0.125em 0.5em 0 0.5em;
+ vertical-align: top;
+}
+
+.fieldtable tbody tr td {
+ border-top: 1px dashed #DDD;
+ border-bottom: 1px dashed #DDD;
+}
+
+td.fieldtype {
+ color: #666;
+ padding: 0 0.5em 0 0;
+ vertical-align: top;
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+}
+
+td.fielddoc p {
+ margin: 0;
+ padding: 0 0.5em 0 0;
+}
+
+p.reference {
+ font-size: x-small;
+ font-style: italic;
+}
+
+.ftvtree {
+ font-family: "DejaVu Sans", Verdana, Helvetica, Arial, sans-serif;
+ margin: 0;
+}
+
+.directory {
+ margin: 0.5em;
+}
+
+.directory h3 {
+ margin: 0;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory > h3 {
+ margin-top: 0;
+}
+
+.directory p {
+ margin: 0;
+ white-space: nowrap;
+}
+
+.directory div {
+ display: none;
+ margin: 0;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+td.entry {
+ font-family: "DejaVu Sans", Verdana, Helvetica, Arial, sans-serif;
+ font-weight: 400;
+ padding-right: 1em;
+}
+
+.arrow {
+ color: #CCC;
+ user-select: none;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+ vertical-align: top;
+ visibility: hidden;
+}
+
+td.entry b {
+ font-family: "DejaVu Sans", Verdana, Helvetica, Arial, sans-serif;
+ font-weight: 400;
+ font-size: 130%;
+}
+
+.directory-alt {
+ font-size: 100%;
+ font-weight: bold;
+}
+
+.directory-alt h3 {
+ margin: 0;
+ margin-top: 1em;
+ font-size: 11pt;
+}
+
+.directory-alt > h3 {
+ margin-top: 0;
+}
+
+.directory-alt p {
+ margin: 0;
+ white-space: nowrap;
+}
+
+.directory-alt div {
+ display: none;
+ margin: 0;
+}
+
+.directory-alt img {
+ vertical-align: -30%;
+}
+
+div.dynheader {
+ margin-top: 8px;
+}
+
+address {
+ font-style: normal;
+ color: #444;
+}
+
+table.doxtable {
+ border-collapse: collapse;
+ margin: 0.5em;
+}
+
+table.doxtable td,table.doxtable th {
+ border: 1px solid #DDD;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #F3F3F3;
+ color: #000;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align: left;
+ font-weight: bold;
+}
+
+.tabsearch {
+ top: 0;
+ left: 10px;
+ height: 36px;
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+div.navpath {
+ color: #DDD;
+}
+
+.navpath ul {
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+}
+
+.navpath li {
+ float: left;
+ padding-left: 0;
+ margin-left: 0.5em;
+ padding-right: 1em;
+}
+
+.navpath a {
+ display: block;
+ text-decoration: none;
+ outline: none;
+}
+
+div.summary {
+ font-size: small;
+ font-family: "DejaVu Sans", Verdana, Helvetica, Arial, sans-serif;
+ margin: 0;
+ padding: 0.25em 0;
+ display: none;
+}
+
+div.summary a {
+ white-space: nowrap;
+}
+
+#metabox {
+ display: inline-block;
+ font-size: x-small;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ position: absolute;
+ right: 0;
+ bottom: 0.25em;
+ color: #666;
+ font-style: italic;
+}
+
+#meta {
+ border-style: hidden;
+ margin-right: 0.25em;
+}
+
+#meta tr, #meta th, #meta td {
+ background-color: transparent;
+ border: 0;
+ margin: 0;
+ font-weight: normal;
+}
+
+#meta th {
+ text-align: right;
+}
+
+#meta th::after {
+ content: ":";
+}
+
+div.line {
+ font-family: "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace, fixed;
+ line-height: 1.4em;
+ white-space: pre-wrap;
+}
+
+.glow {
+ background-color: #2AA198;
+ box-shadow: 0 0 10px #2AA198;
+}
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #546E00;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+.tabs, .tabs2, .navpath {
+ padding: 0.25em 0;
+ font-size: small;
+ font-family: Helvetica, Arial, "DejaVu Sans Condensed", Verdana, sans-serif;
+ margin: 0;
+}
+
+th {
+ text-align: left;
+ font-size: 110%;
+ font-weight: 500;
+}
+
+.mlabel {
+ padding: 0.125em;
+}
+
+#navrow1, #navrow2 {
+ /* Disable menu from Doxygen 1.8.15, it is faked in the template */
+ display: none;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ display: table-cell;
+ line-height: 2em;
+ list-style: none;
+ border-bottom: 0;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 1em 0 0;
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist li.current a {
+ color: #222;
+}
+
+span.icon {
+ display: none;
+}
+
+/* Dark mode */
+@media (prefers-color-scheme: dark) {
+ html {
+ background: #222;
+ color: #DDD;
+ }
+
+ a {
+ color: #B4C342;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #DDD;
+ }
+
+ h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link {
+ color: #DDD;
+ }
+
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
+ color: #DDD;
+ }
+
+ #header {
+ border-bottom-color: #333;
+ }
+
+ #title {
+ color: #CCC;
+ }
+
+ #shortdesc {
+ color: #BBB;
+ }
+
+ code {
+ color: #DDD;
+ }
+
+ pre.fragment {
+ border: 1px solid #444;
+ background-color: #333;
+ }
+
+ div.ah {
+ background-color: #000;
+ color: #FFF;
+ border-color: #333;
+ }
+
+ .groupheader + p {
+ color: #BBB;
+ }
+
+ td.indexkey {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ }
+
+ td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ }
+
+ tr.memlist {
+ background-color: #EEF1F7;
+ }
+
+ span.keyword {
+ color: #586E75;
+ }
+
+ span.keywordtype {
+ color: #546E00;
+ }
+
+ span.keywordflow {
+ color: #586E75;
+ }
+
+ span.comment {
+ color: #6C71C4;
+ }
+
+ span.preprocessor {
+ color: #D33682;
+ }
+
+ span.stringliteral {
+ color: #CB4B16;
+ }
+
+ span.charliteral {
+ color: #CB4B16;
+ }
+
+ .dirtab {
+ border: 1px solid #A3B4D7;
+ }
+
+ th.dirtab {
+ background: #EBEFF6;
+ }
+
+ hr {
+ border-top: 1px solid #DDD;
+ }
+
+ #footer {
+ color: #888;
+ }
+
+ .mdescLeft,.mdescRight {
+ color: #555;
+ }
+
+ .memTemplParams {
+ color: #464646;
+ }
+
+ td.mlabels-right {
+ color: #B4C342;
+ }
+
+ .memtitle {
+ border-bottom: 1px solid #666;
+ }
+
+ .memtemplate {
+ color: #888;
+ }
+
+ .memnav {
+ background-color: #666;
+ border: 1px solid #B4C342;
+ }
+
+ .memproto {
+ border-bottom: 1px solid #666;
+ border-left: 1px solid #666;
+ color: #BBB;
+ }
+
+ .memdoc > p:first-child, .memdoc .textblock > p:first-child {
+ color: #BBB;
+ }
+
+ .memdoc > p:first-child, .memdoc .textblock > h3:first-child {
+ color: #BBB;
+ }
+
+ .paramtype {
+ color: #BBB;
+ }
+
+ .params .paramname {
+ color: #E8E8E8;
+ }
+
+ .fieldname {
+ color: #FFF;
+ }
+
+ .fieldtable tbody tr td {
+ border-top-color: #555;
+ border-bottom-color: #555;
+ }
+
+ td.fieldtype {
+ color: #BBB;
+ }
+
+ .arrow {
+ color: #666;
+ }
+
+ address {
+ color: #444;
+ }
+
+ table.doxtable td,table.doxtable th {
+ border-color: #DDD;
+ }
+
+ table.doxtable th {
+ background-color: #F3F3F3;
+ color: #000;
+ }
+
+ div.navpath {
+ color: #444;
+ }
+
+ #metabox {
+ color: #666;
+ }
+
+ .glow {
+ background-color: #00736F;
+ box-shadow: 0 0 10px #00736F;
+ }
+
+ span.lineno {
+ border-right: 2px solid #B4C342;
+ background-color: #383838;
+ }
+
+ span.lineno a {
+ background-color: #404040;
+ }
+
+ span.lineno a:hover {
+ background-color: #484848;
+ }
+
+}
+
+/* Hard black for dark mode on mobile (since it's likely to be an OLED screen) */
+@media only screen and (hover: none) and (pointer: coarse) and (prefers-color-scheme: dark) {
+ html {
+ background: #000;
+ color: #CCC;
+ }
+}
diff --git a/doc/c/footer.html b/doc/c/footer.html
new file mode 100644
index 0000000..0dc6919
--- /dev/null
+++ b/doc/c/footer.html
@@ -0,0 +1,20 @@
+<!-- HTML footer for doxygen 1.8.15-->
+<!-- start footer part -->
+<!--BEGIN GENERATE_TREEVIEW-->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ $navpath
+ <li class="footer">$generatedby
+ <a href="http://www.doxygen.org/index.html">Doxygen $doxygenversion</li>
+ </ul>
+</div>
+<!--END GENERATE_TREEVIEW-->
+<!--BEGIN !GENERATE_TREEVIEW-->
+<div id="footer">
+ <address class="footer">$generatedby
+ <a href="http://www.doxygen.org/">Doxygen</a> $doxygenversion
+ </address>
+</div>
+<!--END !GENERATE_TREEVIEW-->
+</body>
+</html>
diff --git a/doc/c/header.html b/doc/c/header.html
new file mode 100644
index 0000000..2e419e3
--- /dev/null
+++ b/doc/c/header.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+ <!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+ <!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+ <link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+ $extrastylesheet
+ </head>
+ <body>
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+ <!--BEGIN TITLEAREA-->
+ <div id="titlearea">
+ <div id="header">
+ <div id="titlebox">
+ <!--BEGIN PROJECT_LOGO-->
+ <div id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></div>
+ <!--END PROJECT_LOGO-->
+ <!--BEGIN PROJECT_NAME-->
+ <h1 id="title">$projectname</h1>
+ <!--END PROJECT_NAME-->
+ <!--BEGIN PROJECT_BRIEF-->
+ <div id="shortdesc">$projectbrief</div>
+ <!--END PROJECT_BRIEF-->
+ </div>
+ <div id="metabox">
+ <table id="meta">
+ <!--BEGIN PROJECT_NUMBER-->
+ <tr><th>Version</th><td>$projectnumber</td></tr>
+ <!--END PROJECT_NUMBER-->
+ </table>
+ </div>
+ </div>
+ </div>
+ <!--END TITLEAREA-->
+ <!-- end header part -->
diff --git a/doc/DoxygenLayout.xml b/doc/c/layout.xml
index 3b3d6c7..938dbce 100644
--- a/doc/DoxygenLayout.xml
+++ b/doc/c/layout.xml
@@ -1,9 +1,8 @@
<doxygenlayout version="1.0">
- <!-- Generated by doxygen 1.8.8 -->
+ <!-- Generated by doxygen 1.8.17 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
- <tab type="user" url="../../ns/index.html" title="Index"/>
- <tab type="mainpage" visible="no" title=""/>
+ <tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
@@ -12,7 +11,7 @@
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
- <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
+ <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
@@ -20,12 +19,13 @@
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
- <tab type="examples" visible="yes" title="" intro=""/>
+ <tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
+ <detaileddescription title=""/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
@@ -33,7 +33,6 @@
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
- <interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
@@ -63,13 +62,11 @@
<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=""/>
@@ -82,33 +79,10 @@
<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"/>
+ <detaileddescription title=""/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
@@ -124,7 +98,6 @@
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
- <detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
@@ -138,6 +111,7 @@
<!-- Layout definition for a group page -->
<group>
+ <briefdescription visible="yes"/>
<detaileddescription title=""/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
@@ -146,12 +120,12 @@
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
+ <defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
- <defines title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
@@ -184,11 +158,11 @@
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
+ <detaileddescription title=""/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
- <detaileddescription title=""/>
</directory>
</doxygenlayout>
diff --git a/doc/c/mainpage.md b/doc/c/mainpage.md
new file mode 100644
index 0000000..561bc93
--- /dev/null
+++ b/doc/c/mainpage.md
@@ -0,0 +1,3 @@
+This is the API documentation for LV2.
+
+For an index and higher level documentation, see the corresponding [specification documentation](../../ns/index.html).
diff --git a/doc/c/meson.build b/doc/c/meson.build
new file mode 100644
index 0000000..2642c3a
--- /dev/null
+++ b/doc/c/meson.build
@@ -0,0 +1,39 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+if doxygen.found()
+ reference_doxygen_in = files('reference.doxygen.in')
+
+ config = configuration_data(
+ {
+ 'LV2_SRCDIR': lv2_source_root,
+ 'LV2_BUILDDIR': lv2_build_root,
+ 'LV2_VERSION': meson.project_version(),
+ },
+ )
+
+ reference_doxygen = configure_file(
+ configuration: config,
+ input: reference_doxygen_in,
+ output: 'reference.doxygen',
+ )
+
+ docs = custom_target(
+ 'html',
+ command: [doxygen, '@INPUT@'],
+ input: reference_doxygen,
+ install: true,
+ install_dir: lv2_docdir / 'c',
+ output: ['html', 'tags'],
+ )
+
+ # TODO: doc_deps is needed because Meson did not support using custom target
+ # outputs as dependencies until 0.60.0. When 0.60.0 is required, this can be
+ # cleaned up by removing doc_deps and using lv2_tags (not its path) as a
+ # command argument, which Meson will correctly make a dependency for.
+
+ lv2_tags = docs[1]
+ doc_deps = [docs]
+else
+ doc_deps = []
+endif
diff --git a/doc/reference.doxygen.in b/doc/c/reference.doxygen.in
index ff210f4..333fe1c 100644
--- a/doc/reference.doxygen.in
+++ b/doc/c/reference.doxygen.in
@@ -1,4 +1,4 @@
-# Doxyfile 1.8.12
+# Doxyfile 1.9.3
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
@@ -17,11 +17,11 @@
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
@@ -44,7 +44,7 @@ PROJECT_NUMBER = @LV2_VERSION@
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF =
+PROJECT_BRIEF = "An open and extensible audio plugin standard"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -58,7 +58,7 @@ PROJECT_LOGO =
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = .
+OUTPUT_DIRECTORY = @LV2_BUILDDIR@
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -222,20 +222,19 @@ TAB_SIZE = 4
# the documentation. An alias has the form:
# name=value
# For example adding
-# "sideeffect=@par Side Effects:\n"
+# "sideeffect=@par Side Effects:^^"
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
+# "Side Effects:". Note that you cannot put \n's in the value part of an alias
+# to insert newlines (in the resulting output). You can put ^^ in the value part
+# of an alias to insert a newline as if a physical newline was in the original
+# file. When you need a literal { or } or , in the value part of an alias you
+# have to escape them by means of a backslash (\), this can lead to conflicts
+# with the commands \{ and \} for these it is advised to use the version @{ and
+# @} or use a double escape (\\{ and \\})
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -268,24 +267,28 @@ OPTIMIZE_OUTPUT_VHDL = NO
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
+# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
+# the files are not read by doxygen. When specifying no_extension you should add
+# * to the FILE_PATTERNS.
+#
+# Note see also the list of default file extension mappings.
EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@@ -297,7 +300,7 @@ MARKDOWN_SUPPORT = YES
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
-# Minimum value: 0, maximum value: 99, default value: 0.
+# Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 0
@@ -327,7 +330,7 @@ BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
@@ -487,8 +490,8 @@ HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
@@ -507,11 +510,18 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
+# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
+# able to match the capabilities of the underlying filesystem. In case the
+# filesystem is case sensitive (i.e. it supports files in the same directory
+# whose names only differ in casing), the option must be set to YES to properly
+# deal with such files in case they appear in the input. For filesystems that
+# are not case sensitive the option should be be set to NO to properly deal with
+# output files written for symbols that only differ in casing, such as for two
+# classes, one named CLASS and the other named Class, and to also support
+# references to files without having to specify the exact matching casing. On
+# Windows (including Cygwin) and MacOS, users should typically set this option
+# to NO, whereas on Linux or other Unix flavors it should typically be set to
+# YES.
# The default value is: system dependent.
CASE_SENSE_NAMES = YES
@@ -687,18 +697,19 @@ FILE_VERSION_FILTER =
# output files in an output format independent way. To create the layout file
# that represents doxygen's defaults, run doxygen with the -l option. You can
# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
+# will be used as the name of the layout file. See also section "Changing the
+# layout of pages" for information.
#
# Note that if you run doxygen from a directory containing a file called
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty.
-LAYOUT_FILE = @LV2_SRCDIR@/doc/DoxygenLayout.xml
+LAYOUT_FILE = @LV2_SRCDIR@/doc/c/layout.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
# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
@@ -733,23 +744,28 @@ WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
+# potential errors in the documentation, such as documenting some parameters in
+# a documented function twice, or documenting parameters that don't exist or
+# using markup commands wrongly.
# The default value is: YES.
WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
+# value. If set to NO, doxygen will only warn about wrong parameter
+# documentation, but not about the absence of documentation. If EXTRACT_ALL is
+# set to YES then this flag will automatically be disabled. See also
+# WARN_IF_INCOMPLETE_DOC
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
-# a warning is encountered.
+# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
+# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
+# at the end of the doxygen process doxygen will return with a non-zero status.
+# Possible values are: NO, YES and FAIL_ON_WARNINGS.
# The default value is: NO.
WARN_AS_ERROR = NO
@@ -766,7 +782,10 @@ WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning and error
# messages should be written. If left blank the output is written to standard
-# error (stderr).
+# error (stderr). In case the file specified cannot be opened for writing the
+# warning and error messages are written to standard error. When as file - is
+# specified the warning and error messages are written to standard output
+# (stdout).
WARN_LOGFILE =
@@ -780,41 +799,42 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
-INPUT = @LV2_SRCDIR@/doc/mainpage.dox \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/atom/atom.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/atom/forge.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/atom/util.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/buf-size/buf-size.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/data-access/data-access.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/dynmanifest/dynmanifest.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/event/event-helpers.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/event/event.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/instance-access/instance-access.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/log/log.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/log/logger.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/midi/midi.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/morph/morph.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/options/options.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/parameters/parameters.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/patch/patch.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/port-groups/port-groups.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/port-props/port-props.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/presets/presets.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/resize-port/resize-port.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/state/state.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/time/time.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/uri-map/uri-map.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/urid/urid.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/ext/worker/worker.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/extensions/ui/ui.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/extensions/units/units.h \
- @LV2_SRCDIR@/lv2/lv2plug.in/ns/lv2core/lv2.h
+INPUT = @LV2_SRCDIR@/doc/c/mainpage.md \
+ @LV2_SRCDIR@/include/lv2/atom/atom.h \
+ @LV2_SRCDIR@/include/lv2/atom/forge.h \
+ @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 \
+ @LV2_SRCDIR@/include/lv2/event/event.h \
+ @LV2_SRCDIR@/include/lv2/instance-access/instance-access.h \
+ @LV2_SRCDIR@/include/lv2/log/log.h \
+ @LV2_SRCDIR@/include/lv2/log/logger.h \
+ @LV2_SRCDIR@/include/lv2/midi/midi.h \
+ @LV2_SRCDIR@/include/lv2/morph/morph.h \
+ @LV2_SRCDIR@/include/lv2/options/options.h \
+ @LV2_SRCDIR@/include/lv2/parameters/parameters.h \
+ @LV2_SRCDIR@/include/lv2/patch/patch.h \
+ @LV2_SRCDIR@/include/lv2/port-groups/port-groups.h \
+ @LV2_SRCDIR@/include/lv2/port-props/port-props.h \
+ @LV2_SRCDIR@/include/lv2/presets/presets.h \
+ @LV2_SRCDIR@/include/lv2/resize-port/resize-port.h \
+ @LV2_SRCDIR@/include/lv2/state/state.h \
+ @LV2_SRCDIR@/include/lv2/time/time.h \
+ @LV2_SRCDIR@/include/lv2/ui/ui.h \
+ @LV2_SRCDIR@/include/lv2/units/units.h \
+ @LV2_SRCDIR@/include/lv2/uri-map/uri-map.h \
+ @LV2_SRCDIR@/include/lv2/urid/urid.h \
+ @LV2_SRCDIR@/include/lv2/worker/worker.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
+# documentation (see:
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
@@ -827,11 +847,15 @@ INPUT_ENCODING = UTF-8
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
+# Note the list of default checked file patterns might differ from the list of
+# default file extension mappings.
+#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
-# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
+# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml,
+# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C
+# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,
+# *.vhdl, *.ucf, *.qsf and *.ice.
FILE_PATTERNS =
@@ -870,7 +894,7 @@ EXCLUDE_PATTERNS =
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
+# ANamespace::AClass, ANamespace::*Test
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
@@ -957,7 +981,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.
-USE_MDFILE_AS_MAINPAGE =
+USE_MDFILE_AS_MAINPAGE = @LV2_SRCDIR@/doc/c/mainpage.md
#---------------------------------------------------------------------------
# Configuration options related to source browsing
@@ -986,7 +1010,7 @@ INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
+# entity all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = NO
@@ -1018,12 +1042,12 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
+# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
@@ -1056,13 +1080,6 @@ VERBATIM_HEADERS = NO
ALPHABETICAL_INDEX = NO
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1086,7 +1103,7 @@ GENERATE_HTML = YES
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_OUTPUT = html
+HTML_OUTPUT = @LV2_BUILDDIR@/doc/c/html
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
@@ -1113,7 +1130,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER = @LV2_SRCDIR@/doc/header.html
+HTML_HEADER = @LV2_SRCDIR@/doc/c/header.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1123,7 +1140,7 @@ HTML_HEADER = @LV2_SRCDIR@/doc/header.html
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_FOOTER =
+HTML_FOOTER = @LV2_SRCDIR@/doc/c/footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
@@ -1135,7 +1152,7 @@ HTML_FOOTER =
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_STYLESHEET = @LV2_SRCDIR@/doc/doxy-style.css
+HTML_STYLESHEET = @LV2_SRCDIR@/doc/c/doxy-style.css
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
@@ -1162,8 +1179,8 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# this color. Hue is specified as an angle on a color-wheel, see
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
@@ -1172,7 +1189,7 @@ HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 160
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
+# in the HTML output. For a value of 0 the output will use gray-scales only. A
# value of 255 will produce the most vivid colors.
# Minimum value: 0, maximum value: 255, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1190,14 +1207,16 @@ 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.
+# 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
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have JavaScript,
+# like the Qt help browser.
+# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_TIMESTAMP = NO
+HTML_DYNAMIC_MENUS = NO
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
@@ -1222,13 +1241,14 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
+# environment (see:
+# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
+# create a documentation set, doxygen will generate a Makefile in the HTML
+# output directory. Running make will produce the docset in that directory and
+# running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1267,8 +1287,12 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
+# on Windows. In the beginning of 2021 Microsoft took the original page, with
+# a.o. the download links, offline the HTML help workshop was already many years
+# in maintenance mode). You can download the HTML help workshop from the web
+# archives at Installation executable (see:
+# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
+# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@@ -1298,7 +1322,7 @@ CHM_FILE =
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
+# (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@@ -1343,7 +1367,8 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1351,8 +1376,8 @@ QHP_NAMESPACE =
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
+# Folders (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
@@ -1360,30 +1385,30 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
+# The QHG_LOCATION tag can be used to specify the location (absolute path
+# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
+# run qhelpgenerator on the generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION =
@@ -1426,11 +1451,11 @@ DISABLE_INDEX = NO
# to work a browser that supports JavaScript, DHTML, CSS and frames is required
# (i.e. any modern browser). Windows users are probably better off using the
# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
+# further fine tune the look of the index (see "Fine-tuning the output"). As an
+# example, the default style sheet generated by doxygen has an example that
+# shows how to put an image at the root of the tree instead of the PROJECT_NAME.
+# Since the tree basically has the same information as the tab index, you could
+# consider setting DISABLE_INDEX to YES when enabling this option.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
@@ -1469,19 +1494,8 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
-# Use the FORMULA_TRANPARENT 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
-# http://www.mathjax.org) which uses client side Javascript for the rendering
+# 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
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
@@ -1492,10 +1506,17 @@ FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# the MathJax output. For more details about the output format see MathJax
+# version 2 (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3
+# (see:
+# http://docs.mathjax.org/en/latest/web/components/output.html).
# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
+# compatibility. This is the name for Mathjax version 2, for MathJax version 3
+# this will be translated into chtml), NativeMML (i.e. MathML. Only supported
+# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This
+# is the name for Mathjax version 3, for MathJax version 2 this will be
+# translated into HTML-CSS) and SVG.
# The default value is: HTML-CSS.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -1508,22 +1529,29 @@ MATHJAX_FORMAT = HTML-CSS
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# MathJax from https://www.mathjax.org before deployment. The default value is:
+# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
+# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
+# for MathJax version 2 (see
+# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# For example for MathJax version 3 (see
+# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
+# MATHJAX_EXTENSIONS = ams
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -1551,7 +1579,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = NO
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
+# implemented using a web server instead of a web client using JavaScript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
@@ -1570,7 +1598,8 @@ SERVER_BASED_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
+# Xapian (see:
+# https://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
@@ -1583,8 +1612,9 @@ EXTERNAL_SEARCH = NO
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
+# Xapian (see:
+# https://xapian.org/). See the section "External Indexing and Searching" for
+# details.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL =
@@ -1635,16 +1665,20 @@ LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
+# Note that when not enabling USE_PDFLATEX the default is latex when enabling
+# USE_PDFLATEX the default is pdflatex and when in the later case latex is
+# chosen this is overwritten by pdflatex. For specific output languages the
+# default can have been set differently, this depends on the implementation of
+# the output language.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
+# Note: This tag is used in the Makefile / make.bat.
+# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
+# (.tex).
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1665,7 +1699,7 @@ COMPACT_LATEX = NO
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.
-PAPER_TYPE = a4wide
+PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. The package can be specified just
@@ -1679,29 +1713,31 @@ PAPER_TYPE = a4wide
EXTRA_PACKAGES =
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
+# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for
+# the generated LaTeX document. The header should contain everything until the
+# first chapter. If it is left blank doxygen will generate a standard header. It
+# is highly recommended to start with a default header using
+# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
+# and then modify the file new_header.tex. See also section "Doxygen usage" for
+# information on how to generate the default header that doxygen normally uses.
#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
+# Note: Only use a user-defined header if you know what you are doing!
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. The following
+# commands have a special meaning inside the header (and footer): For a
+# description of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER =
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
+# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for
+# the generated LaTeX document. The footer should contain everything after the
+# last chapter. If it is left blank doxygen will generate a standard footer. See
# LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
+# special commands can be used inside the footer. See also section "Doxygen
+# usage" for information on how to generate the default footer that doxygen
+# normally uses. Note: Only use a user-defined footer if you know what you are
+# doing!
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_FOOTER =
@@ -1734,9 +1770,11 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
+# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
+# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
+# files. Set this option to YES, to get a higher quality PDF documentation.
+#
+# See also section LATEX_CMD_NAME for selecting the engine.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1744,8 +1782,7 @@ USE_PDFLATEX = YES
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
+# if errors occur, instead of asking the user for help.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
@@ -1758,32 +1795,14 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
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
#---------------------------------------------------------------------------
@@ -1823,9 +1842,9 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# configuration file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
@@ -1834,22 +1853,12 @@ RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
+# similar to doxygen's configuration file. A template extensions file can be
+# generated using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
-# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-# with syntax highlighting in the RTF output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_SOURCE_CODE = NO
-
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
@@ -1939,23 +1948,14 @@ GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
@@ -2015,7 +2015,7 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-MACRO_EXPANSION = NO
+MACRO_EXPANSION = YES
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
@@ -2023,7 +2023,7 @@ MACRO_EXPANSION = NO
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-EXPAND_ONLY_PREDEF = NO
+EXPAND_ONLY_PREDEF = YES
# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
@@ -2055,7 +2055,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-PREDEFINED =
+PREDEFINED = LV2_DISABLE_DEPRECATION_WARNINGS
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2099,7 +2099,7 @@ TAGFILES =
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.
-GENERATE_TAGFILE = tags
+GENERATE_TAGFILE = @LV2_BUILDDIR@/doc/c/tags
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
@@ -2122,34 +2122,10 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH = /usr/bin/perl
-
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
@@ -2182,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.
@@ -2206,11 +2165,14 @@ DOT_FONTSIZE = 10
DOT_FONTPATH =
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# If the CLASS_GRAPH tag is set to YES (or GRAPH) then doxygen will generate a
+# graph for each documented class showing the direct and indirect inheritance
+# relations. In case HAVE_DOT is set as well dot will be used to draw the graph,
+# otherwise the built-in generator will be used. If the CLASS_GRAPH tag is set
+# to TEXT the direct and indirect inheritance relations will be shown as texts /
+# links.
+# Possible values are: NO, YES, TEXT and GRAPH.
# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
@@ -2247,7 +2209,7 @@ UML_LOOK = NO
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
+# This tag requires that the tag UML_LOOK is set to YES.
UML_LIMIT_NUM_FIELDS = 10
@@ -2370,13 +2332,18 @@ MSCFILE_DIRS =
DIAFILE_DIRS =
# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
+# path where java can find the plantuml.jar file or to the filename of jar file
+# to be used. If left blank, it is assumed PlantUML is not used or called during
+# a preprocessing step. Doxygen will generate a warning when it encounters a
+# \startuml command in this case and will not generate output for the diagram.
PLANTUML_JAR_PATH =
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
@@ -2406,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
@@ -2430,14 +2385,18 @@ DOT_MULTI_TARGETS = YES
# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
# explaining the meaning of the various boxes and arrows in the dot generated
# graphs.
+# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal
+# graphical representation for inheritance and collaboration diagrams is used.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
# files that are used to generate the various graphs.
+#
+# Note: This setting is not only used for dot files but also for msc temporary
+# files.
# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
diff --git a/doc/doxy-style.css b/doc/doxy-style.css
deleted file mode 100644
index f6ff8bb..0000000
--- a/doc/doxy-style.css
+++ /dev/null
@@ -1,691 +0,0 @@
-body {
- max-width: 80em;
- margin: 0;
- margin-left: auto;
- margin-right: auto;
- background: #FFF;
- color: #000;
-}
-
-#titlearea {
- display: none;
-}
-
-h1 {
- font-size: 180%;
- font-weight: 900;
-}
-
-h2 {
- font-size: 140%;
- font-weight: 700;
-}
-
-h3 {
- font-size: 120%;
- font-weight: 700;
-}
-
-h4 {
- font-size: 110%;
- font-weight: 700;
-}
-
-h5 {
- font-size: 100%;
- font-weight: 700;
-}
-
-h6 {
- font-size: 100%;
- font-weight: 600;
-}
-
-p {
- margin: 0 0 1em 0;
-}
-
-dt {
- font-weight: 700;
-}
-
-p.startli,p.startdd,p.starttd {
- margin-top: 2px;
-}
-
-p.endli {
- margin-bottom: 0;
-}
-
-p.enddd {
- margin-bottom: 4px;
-}
-
-p.endtd {
- margin-bottom: 2px;
-}
-
-caption {
- font-weight: 700;
-}
-
-span.legend {
- font-size: small;
- text-align: center;
-}
-
-h3.version {
- font-size: small;
- text-align: center;
-}
-
-div.qindex,div.navtab {
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
- margin: 2px;
- padding: 2px;
-}
-
-div.navtab {
- margin-right: 15px;
-}
-
-/* @group Link Styling */
-a {
- color: #546E00;
- text-decoration: none;
-}
-
-.contents a:visited {
- color: #344E00;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-a.qindexHL {
- background-color: #9CAFD4;
- color: #FFF;
- border: 1px double #869DCA;
-}
-
-code {
- color: #444;
-}
-
-a.code {
- color: #4665A2;
-}
-
-a.codeRef {
- color: #4665A2;
-}
-
-/* @end */
-dl.el {
- margin-left: -1cm;
-}
-
-.fragment {
- font-family: monospace, fixed;
-}
-
-pre.fragment {
- border: 1px solid #C4C4C4;
- background-color: #F9F9F9;
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- overflow: auto;
- line-height: 125%;
-}
-
-div.ah {
- background-color: #000;
- font-weight: 700;
- color: #FFF;
- margin-bottom: 3px;
- margin-top: 3px;
- padding: .2em;
- border: thin solid #333;
-}
-
-div.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: 700;
-}
-
-a + h2.groupheader {
- display: none;
-}
-
-div.groupText {
- margin-left: 16px;
- font-style: italic;
-}
-
-div.contents {
- margin-top: 10px;
- margin-left: 10px;
- margin-right: 10px;
-}
-
-td.indexkey {
- background-color: #EBEFF6;
- font-weight: 700;
- border: 1px solid #C4CFE5;
- margin: 2px 0;
- padding: 2px 10px;
-}
-
-td.indexvalue {
- background-color: #EBEFF6;
- border: 1px solid #C4CFE5;
- padding: 2px 10px;
- margin: 2px 0;
-}
-
-tr.memlist {
- background-color: #EEF1F7;
-}
-
-p.formulaDsp {
- text-align: center;
-}
-
-img.formulaInl {
- vertical-align: middle;
-}
-
-div.center {
- text-align: center;
- margin-top: 0;
- margin-bottom: 0;
- padding: 0;
-}
-
-div.center img {
- border: 0;
-}
-
-address.footer {
- text-align: right;
- padding-right: 12px;
-}
-
-img.footer {
- border: 0;
- vertical-align: middle;
-}
-
-/* @group Code Colorization */
-span.keyword {
- color: green;
-}
-
-span.keywordtype {
- color: #3E873E;
-}
-
-span.keywordflow {
- color: #e08000;
-}
-
-span.comment {
- color: maroon;
-}
-
-span.preprocessor {
- color: #806020;
-}
-
-span.stringliteral {
- color: #002080;
-}
-
-span.charliteral {
- color: teal;
-}
-
-span.vhdldigit {
- color: #F0F;
-}
-
-span.vhdlkeyword {
- color: #700070;
-}
-
-span.vhdllogic {
- color: red;
-}
-
-/* @end */
-td.tiny {
- font-size: x-small;
-}
-
-.dirtab {
- padding: 4px;
- border-collapse: collapse;
- border: 1px solid #A3B4D7;
-}
-
-th.dirtab {
- background: #EBEFF6;
- font-weight: 700;
-}
-
-hr {
- height: 0;
- border: none;
- border-top: 1px solid #DDD;
- margin: 2em 0 1em;
-}
-
-hr.footer {
- height: 1px;
-}
-
-/* @group Member Descriptions */
-table.memberdecls {
- border-spacing: 0.125em;
-}
-
-h2.groupheader {
- margin: 0.5em 0 0.25em 0;
-}
-
-.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams {
- margin: 0;
- padding: 0;
-}
-
-.mdescLeft,.mdescRight {
- color: #555;
-}
-
-.memItemLeft,.memItemRight,.memTemplParams {
- border: 0;
- font-family: monospace, fixed;
-}
-
-.memItemLeft,.memTemplItemLeft {
- white-space: nowrap;
- padding-left: 2em;
- padding-right: 1em;
-}
-
-.memItemLeft a.el {
- font-weight: bold;
-}
-
-.memTemplParams {
- color: #464646;
- white-space: nowrap;
-}
-
-td.memSeparator {
- display: none;
-}
-
-td.mlabels-right {
- vertical-align: top;
- padding-top: 4px;
- color: #AA6;
-}
-
-.memtitle {
- display: none;
-}
-
-/* @end */
-/* @group Member Details */
-/* Styles for detailed member documentation */
-.memtemplate {
- color: #4665A2;
- font-weight: bold;
-}
-
-.memnav {
- background-color: #EBEFF6;
- border: 1px solid #A3B4D7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-
-.memitem {
- padding: 0;
- margin: 1em 0 1em 0;
-}
-
-.memproto {
- padding: 0;
- font-weight: bold;
- color: #000;
-}
-
-.memproto .paramname {
- color: #444;
- font-style: normal;
-}
-
-.memdoc {
- padding: 0 0 0.5em 2em;
-}
-
-.paramkey {
- text-align: right;
-}
-
-.paramtype {
- color: #3E873E;
- white-space: nowrap;
-}
-
-.paramname {
- color: #444;
- white-space: nowrap;
- font-weight: bold;
-}
-
-td.paramname {
- vertical-align: top;
-}
-
-.fieldname {
- color: #000;
-}
-
-td.fieldname {
- padding-right: 1em;
- vertical-align: top;
-}
-
-td.fieldtype {
- vertical-align: top;
- color: #444;
- padding-right: 0.5em;
-}
-
-td.fielddoc p {
- margin: 0;
-}
-
-/* @end */
-/* @group Directory (tree) */
-/* for the tree view */
-.ftvtree {
- font-family: sans-serif;
- margin: 0;
-}
-
-/* these are for tree view when used as main index */
-.directory {
- font-size: small;
- margin: 0.5em;
-}
-
-.directory h3 {
- margin: 0;
- margin-top: 1em;
- font-size: 11pt;
-}
-
-.directory > h3 {
- margin-top: 0;
-}
-
-.directory p {
- margin: 0;
- white-space: nowrap;
-}
-
-.directory div {
- display: none;
- margin: 0;
-}
-
-.directory img {
- vertical-align: -30%;
-}
-
-/* these are for tree view when not used as main index */
-.directory-alt {
- font-size: 100%;
- font-weight: bold;
-}
-
-.directory-alt h3 {
- margin: 0;
- margin-top: 1em;
- font-size: 11pt;
-}
-
-.directory-alt > h3 {
- margin-top: 0;
-}
-
-.directory-alt p {
- margin: 0;
- white-space: nowrap;
-}
-
-.directory-alt div {
- display: none;
- margin: 0;
-}
-
-.directory-alt img {
- vertical-align: -30%;
-}
-
-/* @end */
-div.dynheader {
- margin-top: 8px;
-}
-
-address {
- font-style: normal;
- color: #2A3D61;
-}
-
-table.doxtable {
- border-collapse: collapse;
- margin: 0.5em;
-}
-
-table.doxtable td,table.doxtable th {
- border: 1px solid #DDD;
- padding: 3px 7px 2px;
-}
-
-table.doxtable th {
- background-color: #F3F3F3;
- color: #000;
- padding-bottom: 4px;
- padding-top: 5px;
- text-align: left;
- font-weight: bold;
-}
-
-.tabsearch {
- top: 0;
- left: 10px;
- height: 36px;
- z-index: 101;
- overflow: hidden;
- font-size: 13px;
-}
-
-div.navpath {
- padding: 0.25em;
-}
-
-.navpath ul {
- font-size: x-small;
- color: #8AA0CC;
- overflow: hidden;
- margin: 0;
- padding: 0;
-}
-
-.navpath li {
- list-style-type: none;
- float: left;
- padding-left: 10px;
- padding-right: 15px;
- color: #364D7C;
-}
-
-.navpath a {
- display: block;
- text-decoration: none;
- outline: none;
-}
-
-.navpath a:hover {
- color: #6884BD;
-}
-
-div.summary {
- float: right;
- font-size: x-small;
- padding: 0.25em 0.5em 0 0;
- width: 50%;
- text-align: right;
-}
-
-div.summary a {
- white-space: nowrap;
-}
-
-div.header {
- background-color: #F3F3F3;
- margin: 0;
- border: 0;
-}
-
-div.headertitle {
- 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, #333 0%, #111 100%);
- border: solid 1px #444;
- border-top: 0;
- border-radius: 0 0 6px 6px;
-}
-
-div.line {
- font-family: monospace, fixed;
- font-size: 13px;
- min-height: 13px;
- line-height: 1.0;
- text-wrap: avoid;
- white-space: pre-wrap;
- text-indent: -53px;
- padding-left: 53px;
- padding-bottom: 0;
- margin: 0;
-}
-
-.glow {
- background-color: cyan;
- box-shadow: 0 0 10px cyan;
-}
-
-span.lineno {
- padding-right: 4px;
- text-align: right;
- border-right: 2px solid #0F0;
- background-color: #E8E8E8;
- white-space: pre;
-}
-span.lineno a {
- background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
- background-color: #C8C8C8;
-}
-
-.tabs, .tabs2, .navpath {
- background-image: none;
- background-color: #333;
- background: linear-gradient(to bottom, #333 0%, #111 100%);
- border: 0;
- border-bottom: solid 2px #000;
- padding: 0;
- padding-top: 2px;
- font-size: small;
-}
-
-#navrow1 {
- border: 0;
-}
-
-th {
- text-align: left;
-}
-
-.mlabel {
- padding: 0.125em;
-}
-
-/* tabs*/
-
-.tablist {
- margin: 0;
- padding: 0;
- display: table;
-}
-
-.tablist li {
- display: table-cell;
- line-height: 2em;
- list-style: none;
- background-color: #333;
- background: linear-gradient(to bottom, #444 0%, #222 100%);
- border: 1px solid #222;
- border-bottom: 0;
- border-radius: 6px 6px 0 0;
- color: #DDD;
-}
-
-.tablist a {
- display: block;
- padding: 0 20px;
- font-weight: bold;
- color: #859900;
- text-decoration: none;
- outline: none;
-}
-
-.header a {
- color: #859900;
-}
-
-.tabs3 .tablist a {
- padding: 0 10px;
-}
-
-.tablist a:hover {
- color: #fff;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 1.0);
- text-decoration: none;
-}
-
-.tablist li.current a {
- color: #fff;
- text-shadow: 0 1px 1px rgba(0, 0, 0, 1.0);
-}
-
-span.icon {
- display: none;
-}
diff --git a/doc/header.html b/doc/header.html
deleted file mode 100644
index d91ed6a..0000000
--- a/doc/header.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>LV2: File List</title>
-<link href="doxy-style.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">LV2
- &#160;<span id="projectnumber">1.0.13</span>
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
diff --git a/doc/htaccess.in b/doc/htaccess.in
index 7a21951..ae5affe 100644
--- a/doc/htaccess.in
+++ b/doc/htaccess.in
@@ -13,12 +13,13 @@ RewriteCond %{HTTP_ACCEPT} !application/rdf\+xml.*(text/html|application/xhtml\+
RewriteCond %{HTTP_ACCEPT} text/html [OR]
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.*
-RewriteRule ^$ @NAME@.html [L]
+RewriteRule ^([^.]+)$ $1.html [L]
# Rewrite rule to serve Turtle content from the vocabulary URI if requested
RewriteCond %{HTTP_ACCEPT} text/turtle [OR]
RewriteCond %{HTTP_ACCEPT} application/x-turtle
-RewriteRule ^$ @NAME@.ttl [L]
+RewriteRule ^([^.]*)$ $1.ttl [L]
# Serve HTML page by default
-RewriteRule ^$ @NAME@.html [L]
+RewriteRule ^$ index.html [L]
+RewriteRule ^([^.]+)$ $1.html [L]
diff --git a/doc/index.html.in b/doc/index.html.in
new file mode 100644
index 0000000..3be99f4
--- /dev/null
+++ b/doc/index.html.in
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>LV2 Specifications</title>
+ <meta http-equiv="Content-Type"
+ content="application/xhtml+xml;charset=utf-8" />
+ <link rel="stylesheet" type="text/css"
+ href="../style/style.css" />
+ </head>
+ <body>
+
+ <!-- HEADER -->
+ <div id="topbar">
+ <div id="header">
+ <div id="titlebox">
+ <h1 id="title">LV2 Specifications</h1>
+ </div>
+ <div id="metabox">
+ <table id="meta">
+ <tr><th>Version</th><td>@LV2_VERSION@</td></tr>
+ <tr><th>Discuss</th>
+ <td>
+ <a href="mailto:devel@lists.lv2plug.in">devel@lists.lv2plug.in</a>
+ <a href="http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in">(subscribe)</a>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </div>
+
+ <div id="content">
+
+ <!-- INDEX -->
+ <div class="section">
+ <a id="sec-index"></a>
+ <table class="index" summary="An index of LV2 specifications">
+ <thead>
+ <tr>
+ <th>Specification</th>
+ <th>API</th>
+ <th>Description</th>
+ <th>Version</th>
+ <th>Status</th>
+ </tr>
+ </thead>
+ <tbody>
+ @ROWS@
+ </tbody>
+ </table>
+ </div>
+
+ <!-- FOOTER -->
+ <div id="footer">
+ <div>
+ This document is available under the
+ <a about="" rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">
+ Creative Commons Attribution-ShareAlike License
+ </a>
+ </div>
+ <div>
+ Valid
+ <a about="" rel="dcterms:conformsTo" resource="http://www.w3.org/TR/rdfa-syntax"
+ href="http://validator.w3.org/check?uri=referer">
+ XHTML+RDFa
+ </a>
+ and
+ <a about="" rel="dcterms:conformsTo" resource="http://www.w3.org/TR/CSS2"
+ href="http://jigsaw.w3.org/css-validator/check/referer">
+ CSS
+ </a>
+ generated from the LV2 source distribution.
+ </div>
+ </div>
+
+ </div>
+ </body>
+</html>
diff --git a/doc/mainpage.dox b/doc/mainpage.dox
deleted file mode 100644
index 920ef1d..0000000
--- a/doc/mainpage.dox
+++ /dev/null
@@ -1,21 +0,0 @@
-/** @mainpage
- *
- * This is the documentation for the LV2 specification and its
- * official extensions.
- *
- * An LV2 extension generally has two parts: the specification in
- * <a href="http://www.w3.org/TeamSubmission/turtle/">Turtle</a>
- * (e.g. ext.lv2/ext.ttl), and an accompanying
- * <a href="http://en.wikipedia.org/wiki/C99">C</a> header (e.g. ext.lv2/ext.h).
- * The header documentation is generated with <a href="http://doxygen.org">
- * Doxygen</a> and hyperlinked (in both directions) with the specification
- * documentation generated from Turtle with
- * <a href="http://drobilla.net/software/lv2specgen">lv2specgen</a>.
- *
- * \li <a href="../../ns/index.html">LV2 Specifications</a>
- * \li <a href="annotated.html">Data Structures</a>
- * \li <a href="files.html">Headers</a>
- */
-
-#define NOTHING_HERE
-
diff --git a/doc/ns/ext/meson.build b/doc/ns/ext/meson.build
new file mode 100644
index 0000000..58aa40d
--- /dev/null
+++ b/doc/ns/ext/meson.build
@@ -0,0 +1,68 @@
+# Copyright 2022-2025 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+config = configuration_data({'BASE': '/ns/ext'})
+
+spec_names = [
+ 'atom',
+ 'buf-size',
+ 'data-access',
+ 'dynmanifest',
+ 'event',
+ 'instance-access',
+ 'log',
+ 'midi',
+ 'morph',
+ 'options',
+ 'parameters',
+ 'patch',
+ 'port-groups',
+ 'port-props',
+ 'presets',
+ 'resize-port',
+ 'state',
+ 'time',
+ 'uri-map',
+ 'urid',
+ 'worker',
+]
+
+if build_docs
+ if get_option('online_docs')
+ htaccess = configure_file(
+ configuration: config,
+ input: files('..' / '..' / 'htaccess.in'),
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: '.htaccess',
+ )
+ endif
+
+ foreach name : spec_names
+ spec_file = files(lv2_source_root / 'lv2' / name + '.lv2' / name + '.ttl')
+
+ custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../c/html',
+ '--style-uri=../../style/style.css',
+ ] + [
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: spec_file,
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: name + '.html',
+ )
+
+ if get_option('online_docs')
+ configure_file(
+ copy: true,
+ input: spec_file,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: '@PLAINNAME@',
+ )
+ endif
+ endforeach
+endif
diff --git a/doc/ns/extensions/meson.build b/doc/ns/extensions/meson.build
new file mode 100644
index 0000000..3bf66b4
--- /dev/null
+++ b/doc/ns/extensions/meson.build
@@ -0,0 +1,49 @@
+# Copyright 2022-2025 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+config = configuration_data({'BASE': '/ns/extensions'})
+
+spec_names = [
+ 'ui',
+ 'units',
+]
+
+if build_docs
+ if get_option('online_docs')
+ htaccess = configure_file(
+ configuration: config,
+ input: files('..' / '..' / 'htaccess.in'),
+ install_dir: lv2_docdir / 'ns' / 'extensions',
+ output: '.htaccess',
+ )
+ endif
+
+ foreach name : spec_names
+ spec_file = files(lv2_source_root / 'lv2' / name + '.lv2' / name + '.ttl')
+
+ custom_target(
+ name + '.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../../c/html',
+ '--style-uri=../../style/style.css',
+ ] + [
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ depends: doc_deps,
+ input: spec_file,
+ install: true,
+ install_dir: lv2_docdir / 'ns' / 'extensions',
+ output: name + '.html',
+ )
+
+ if get_option('online_docs')
+ configure_file(
+ copy: true,
+ input: spec_file,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: '@PLAINNAME@',
+ )
+ endif
+ endforeach
+endif
diff --git a/doc/ns/meson.build b/doc/ns/meson.build
new file mode 100644
index 0000000..3189cc2
--- /dev/null
+++ b/doc/ns/meson.build
@@ -0,0 +1,81 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+config = configuration_data({'BASE': '/ns'})
+
+######################
+# Core Documentation #
+######################
+
+if build_docs
+ spec_file = files(lv2_source_root / 'lv2' / 'core.lv2' / 'lv2core.ttl')
+
+ lv2_core_docs = custom_target(
+ 'lv2core.html',
+ command: lv2specgen_command_prefix + [
+ '--docdir=../c/html',
+ '--style-uri=../style/style.css',
+ ] + [
+ '@INPUT@',
+ '@OUTPUT@',
+ ],
+ input: spec_file,
+ output: 'lv2core.html',
+ depends: doc_deps,
+ install: true,
+ install_dir: lv2_docdir / 'ns',
+ )
+
+ if get_option('online_docs')
+ htaccess = configure_file(
+ configuration: config,
+ input: files('..' / 'htaccess.in'),
+ install_dir: lv2_docdir / 'ns',
+ output: '.htaccess',
+ )
+
+ configure_file(
+ copy: true,
+ input: spec_file,
+ install_dir: lv2_docdir / 'ns' / 'ext',
+ output: '@PLAINNAME@',
+ )
+ endif
+endif
+
+###########################
+# Extension Documentation #
+###########################
+
+subdir('ext')
+subdir('extensions')
+
+#########
+# Index #
+#########
+
+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],
+]
+
+if get_option('online_docs')
+ lv2_build_index_command += [
+ '--online',
+ ]
+endif
+
+index = custom_target(
+ 'index.html',
+ capture: true,
+ command: lv2_build_index_command + ['@INPUT@'],
+ input: spec_files,
+ install: true,
+ install_dir: lv2_docdir / 'ns',
+ output: 'index.html',
+)
diff --git a/doc/pygments.css b/doc/pygments.css
deleted file mode 100644
index 18dd6c2..0000000
--- a/doc/pygments.css
+++ /dev/null
@@ -1,62 +0,0 @@
-.hll { background-color: #ffffcc }
-.c { color: #408080; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #BB712B; } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.cp { color: #D33682 } /* Comment.Preproc */
-.c1 { color: #408080; font-style: italic } /* Comment.Single */
-.cs { color: #408080; font-style: italic } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #808080 } /* Generic.Output */
-.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.kp { color: #008000 } /* Keyword.Pseudo */
-.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #3E873E } /* Keyword.Type */
-.m { color: #666666 } /* Literal.Number */
-.s { color: #BA2121 } /* Literal.String */
-.na { color: #7D9029 } /* Name.Attribute */
-.nb { color: #008000 } /* Name.Builtin */
-.nc { color: #000000; font-weight: bold } /* Name.Class */
-.no { color: #880000 } /* Name.Constant */
-.nd { color: #AA22FF } /* Name.Decorator */
-.ni { color: #999999; font-weight: bold } /* Name.Entity */
-.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.nf { color: #222222; font-weight: bold } /* Name.Function */
-.nl { color: #A0A000 } /* Name.Label */
-.nn { color: #000000 } /* Name.Namespace */
-.nt { color: #334433; } /* Name.Tag */
-.nv { color: #19177C } /* Name.Variable */
-.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #666666 } /* Literal.Number.Float */
-.mh { color: #666666 } /* Literal.Number.Hex */
-.mi { color: #666666 } /* Literal.Number.Integer */
-.mo { color: #666666 } /* Literal.Number.Oct */
-.sb { color: #BA2121 } /* Literal.String.Backtick */
-.sc { color: #BA2121 } /* Literal.String.Char */
-.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #BA2121 } /* Literal.String.Double */
-.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #BA2121 } /* Literal.String.Heredoc */
-.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.sx { color: #008000 } /* Literal.String.Other */
-.sr { color: #BB6688 } /* Literal.String.Regex */
-.s1 { color: #BA2121 } /* Literal.String.Single */
-.ss { color: #19177C } /* Literal.String.Symbol */
-.bp { color: #008000 } /* Name.Builtin.Pseudo */
-.vc { color: #19177C } /* Name.Variable.Class */
-.vg { color: #19177C } /* Name.Variable.Global */
-.vi { color: #19177C } /* Name.Variable.Instance */
-.il { color: #666666 } /* Literal.Number.Integer.Long */
-.p { color: #999999 } /* Punctuation */
diff --git a/doc/style.css b/doc/style.css
deleted file mode 100644
index 7f154ec..0000000
--- a/doc/style.css
+++ /dev/null
@@ -1,694 +0,0 @@
-/* Pygments Style */
-
-.hll { background-color: #ffffcc }
-.c { color: #408080; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #BB712B; } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.cp { color: #D33682 } /* Comment.Preproc */
-.c1 { color: #408080; font-style: italic } /* Comment.Single */
-.cs { color: #408080; font-style: italic } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #808080 } /* Generic.Output */
-.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.kp { color: #008000 } /* Keyword.Pseudo */
-.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #3E873E } /* Keyword.Type */
-.m { color: #666666 } /* Literal.Number */
-.s { color: #BA2121 } /* Literal.String */
-.na { color: #7D9029 } /* Name.Attribute */
-.nb { color: #008000 } /* Name.Builtin */
-.nc { color: #000000; font-weight: bold } /* Name.Class */
-.no { color: #880000 } /* Name.Constant */
-.nd { color: #AA22FF } /* Name.Decorator */
-.ni { color: #999999; font-weight: bold } /* Name.Entity */
-.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.nf { color: #222222; font-weight: bold } /* Name.Function */
-.nl { color: #A0A000 } /* Name.Label */
-.nn { color: #000000 } /* Name.Namespace */
-.nt { color: #334433; } /* Name.Tag */
-.nv { color: #19177C } /* Name.Variable */
-.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #666666 } /* Literal.Number.Float */
-.mh { color: #666666 } /* Literal.Number.Hex */
-.mi { color: #666666 } /* Literal.Number.Integer */
-.mo { color: #666666 } /* Literal.Number.Oct */
-.sb { color: #BA2121 } /* Literal.String.Backtick */
-.sc { color: #BA2121 } /* Literal.String.Char */
-.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #BA2121 } /* Literal.String.Double */
-.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #BA2121 } /* Literal.String.Heredoc */
-.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.sx { color: #008000 } /* Literal.String.Other */
-.sr { color: #BB6688 } /* Literal.String.Regex */
-.s1 { color: #BA2121 } /* Literal.String.Single */
-.ss { color: #19177C } /* Literal.String.Symbol */
-.bp { color: #008000 } /* Name.Builtin.Pseudo */
-.vc { color: #19177C } /* Name.Variable.Class */
-.vg { color: #19177C } /* Name.Variable.Global */
-.vi { color: #19177C } /* Name.Variable.Instance */
-.il { color: #666666 } /* Literal.Number.Integer.Long */
-.p { color: #999999 } /* Punctuation */
-
-/* Specgen style */
-
-html, body {
- background: #FFF;
- color: #000;
- margin: 0;
- padding: 0;
- max-width: 60em;
- margin-left: auto;
- margin-right: auto;
-}
-a:link, a:visited {
- text-decoration: none;
-}
-a:link {
- color: #546E00;
-}
-a:visited {
- color: #354500;
-}
-a:hover {
- text-decoration: underline;
-}
-img {
- border: 0;
-}
-h1, h2, h3, h4, h5, h6 {
- line-height: 1em;
- margin: 0.75em 0 0.5em 0;
-}
-h1 {
- font-size: 180%;
- font-weight: 900;
-}
-h2 {
- font-size: 140%;
- font-weight: 700;
-}
-h3 {
- font-size: 120%;
- font-weight: 700;
-}
-h4 {
- font-size: 110%;
- font-weight: 700;
-}
-h5 {
- font-size: 100%;
- font-weight: 700;
-}
-h6 {
- font-size: 100%;
- font-weight: 600;
-}
-#titlebox, #meta {
- display: inline-block;
-}
-#titlebox{
- display: inline-block;
- width: 75%;
- left: 0;
- top: 0;
-}
-#meta {
- display: inline-block;
- position: absolute;
- right: 0;
- top: 0;
- padding: 0.125em;
- 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;
-}
-#meta th:after {
- content: ": ";
-}
-#subtitle {
- font-size: small;
-}
-#shortdesc {
- font-size: small;
- margin-top: 0.25em;
-}
-#logo {
- height: 63px;
- margin-left: 1em;
- margin-top: 10px;
- width: 100px;
-}
-#content-body {
- border-bottom: 0;
- display: block;
- font-size: 75%;
- left: 0;
- margin-left: 2em;
- min-width: 660px;
- padding: 3px 10px 0 0;
- position: absolute;
- top: 63px;
- width: 93.900002%;
- z-index: 0;
-}
-#body-main {
- font-size: 100%;
- line-height: 1.4em;
- margin-left: 19em;
- padding: 0 .55em 40px 0;
-}
-#left-hand-navigation {
- left: 1ex;
- position: absolute;
- top: 100px;
- z-index: 1;
-}
-#menu {
- font-size: 75%;
- margin-bottom: 5px;
- padding: 0;
- width: 16em;
-}
-#menu ul {
- border: 0;
- list-style: none;
- margin: 0;
- padding: 0;
-}
-#menu ul.level-one a {
- background-color: #f5f5f5;
- border: 1px solid #dadada;
- color: #4b5a6a;
- display: block;
- margin: 0 0 4px 1.4em;
- padding: 2px 2px 2px 4px;
- text-transform: uppercase;
- width: 13.4em!important;
-}
-#menu ul.level-one a.selected {
- background-color: #FFF;
- border-left: 3px solid #ffdb4c;
- color: #000;
-}
-#menu ul.level-two li:first-child a {
- border-top: 0;
-}
-#menu ul.level-two a {
- background: none;
- background-color: transparent;
- border: 0;
- border-top: 1px solid #ddd;
- color: #3c4b7b;
- display: block;
- margin: 0 3em 0 1.5em;
- padding: .1em;
- text-transform: none;
- width: 11em!important;
-}
-#menu ul.level-two a:visited {
- color: #4c3b5b;
-}
-#menu ul.level-one ul.level-two a.selected {
- background-color: #FFF;
- border-left: 0;
- color: #000;
- font-weight: 700;
-}
-#menu li ul {
- margin-bottom: 7px;
-}
-#menu a {
- text-decoration: none;
-}
-#menu ul.level-three a {
- border: 0;
- color: #5e72a5;
- display: block;
- font-size: 95%;
- margin: 0 3em 0 1.8em;
- padding: .1em .1em .1em 1em;
- width: 10em!important;
-}
-#menu ul.level-three li.selected a.selected {
- color: #000;
- font-weight: 400;
-}
-#menu ul.level-three {
- margin-top: 5px;
-}
-#left-hand-navigation h4 {
- color: #4c5b6b;
- font-size: 77%;
- margin: .2em 0 .3em;
- padding: .4em 0 0 1.5em;
-}
-#left-hand-navigation h4 a {
- color: #4c5b6b;
- font-weight: 700;
- text-decoration: none;
-}
-#body-main ul, #body-main li {
- margin-left: 1em;
- padding-left: 0;
-}
-#utility-menu {
- font-size: 88%;
- height: 85px;
- margin: 0;
- padding: 0;
- position: absolute;
- right: 4%;
- top: 0;
- width: 400px;
- z-index: 1;
-}
-#utility-menu a {
- color: #436a85;
- padding: 0 .5em;
- text-decoration: none;
-}
-#utility-menu a:hover {
- text-decoration: underline;
-}
-#utility-menu #screen-switcher {
- bottom: 0;
- margin: 0;
- padding: 0;
- position: absolute;
- right: 0;
-}
-#screen-switcher dl {
- margin: 0;
- padding: 0;
-}
-#searchbox {
- font-weight: 700;
- position: absolute;
- right: 0;
- text-align: right;
- top: 0;
- vertical-align: middle;
- white-space: nowrap;
- width: 28.1em;
-}
-#search {
- color: #a38e60;
- padding: 5px 5px 0 0;
-}
-#search .input-text {
- background-color: #FFF;
- border: 1px solid #c4cccc;
- font-size: 116%;
- font-weight: 400;
- margin-top: 3px;
- vertical-align: top;
- width: 11em;
-}
-#search .input-button {
- background-color: #f8f7f7;
- border-bottom: 1px solid #6f7777;
- border-left: 1px solid #c4cccc;
- border-right: 1px solid #6f7777;
- border-top: 1px solid #c4cccc;
- color: #234;
- font-weight: 700;
- margin: 3px .4em 0;
- padding: 0 .2em;
- vertical-align: text-top;
-}
-input.formbutton {
- background-color: #f8f7f7;
- border-bottom: 1px solid #6f7777;
- border-left: 1px solid #c4cccc;
- border-right: 1px solid #6f7777;
- border-top: 1px solid #c4cccc;
- color: #234;
- font-weight: 700;
- vertical-align: text-top;
-}
-.formtextinput {
- background-color: #FFF;
- border: 1px solid #c4cccc;
- font-size: 116%;
- font-weight: 400;
- vertical-align: top;
-}
-#content table {
- clear: right;
-}
-#body-main h1.pageheading {
- margin: 40px 0 10px;
-}
-.content-section {
- margin-top: 15px;
-}
-.content-section h1 {
- margin: 0 0 10px;
-}
-.content-section p {
- margin: 0 0 5px;
- padding-left: 12px;
-}
-.content-section .pubdate {
- color: #696969;
- margin: 0 0 8px;
- padding: 0 0 0 12px;
-}
-blockquote {
- border-left: 1px solid #ccc;
- margin-left: 1em;
- padding-left: 1em;
-}
-#utility-menu dl {
- font-size: 80%;
- font-weight: 700;
- text-align: right;
-}
-#utility-menu dd {
- display: inline;
- font-weight: 400;
- padding: 0 0 0 8px;
-}
-#utility-menu dd a {
- color: #888;
- margin: 0;
- padding: 0;
-}
-#utility-menu dt {
- margin: 0;
-}
-#footer {
- bottom: 0;
- clear: both;
- font-size: x-small;
- margin: 2em 0 0;
- padding: 0 1em 1em 1em;
- vertical-align: top;
- color: #888;
-}
-
-#searchbox a.reference, #searchbox span.reference {
- color: #339;
- font-size: 85%;
- font-weight: 400;
- position: absolute;
- right: 8.3em;
- text-decoration: none;
- top: 2.9em;
-}
-#body-main .success p {
- margin: 4px 8px;
-}
-body {
- background: #FFF;
- color: #000;
- margin: 0;
-}
-:link {
- background: transparent;
- color: #00C;
-}
-:visited {
- background: transparent;
- color: #609;
-}
-a:active {
- background: transparent;
- color: #C00;
-}
-.sec {
- color: #000;
- margin: 0.5em 0 0.5em 0;
- padding: 1ex 0 0.5ex 0;
-}
-ul, ol {
- margin-top: 0;
- padding-top: 0;
- margin: 0 0 0.5ex 0;
-}
-@media print {
- #topbar {
- color: #000;
- margin: 0;
- margin-left: auto;
- margin-right: auto;
- padding: 0.25em 0.5em 0.5em 0.5em;
- max-width: 60em;
- position: relative;
- border-bottom: solid 1px #DDD;
- }
- #topbar a, #topbar a:visited {
- color: #000
- }
- #title a, #title a:visited {
- color: #000;
- }
- #contents {
- display: none;
- }
-}
-@media screen {
- #topbar {
- background-color: #222;
- background: linear-gradient(to bottom, #333 0%, #111 100%);
- border-bottom: solid 2px #333;
- border-left: solid 2px #333;
- border-right: solid 2px #333;
- border-radius: 0 0 6px 6px;
- color: #EEE;
- margin: 0;
- margin-left: auto;
- margin-right: auto;
- padding: 0.25em 0.5em 0 0.5em;
- max-width: 60em;
- position: relative;
- }
- #topbar a, #topbar a:visited {
- color: #9DB359;
- }
- #title a, #title a:visited {
- color: #FFF;
- }
- #contents {
- margin-top: 0.25em;
- padding: 0.25ex 0 0 0;
- vertical-align: middle;
- font-size: small;
- }
- #contents li {
- display: inline;
- list-style-type: none;
- margin-right: 1.25em;
- padding: 0.25ex;
- }
-}
-#title {
- font-size: 200%;
- font-weight: 700;
- margin: 0;
- padding: 0;
-}
-.content {
- padding: 0 0.5em 0 0.5em;
- margin: 0;
- max-width: 60em;
- margin-left: auto;
- margin-right: auto;
-}
-.label {
- font-style: italic;
-}
-.index, table {
- border-collapse: initial;
- border-spacing: 0;
- border-radius: 6px;
-}
-table th {
- border: 0;
- border-right: 1px solid #666;
- border-bottom: 1px solid #666;
-}
-table tr:first-child th {
- border-top: 1px solid #666;
-}
-table td {
- vertical-align: top;
- border: 0;
- border-right: 1px solid #666;
- border-bottom: 1px solid #666;
-}
-table td:first-child {
- border-left: 1px solid #666;
-}
-.index ul {
- padding-left: 1em;
- border-collapse: initial;
-}
-table thead tr th:first-child,
-table tbody:first-child tr:first-child th:first-child {
- border-top-left-radius: 6px;
- border-left: 1px solid #666;
-}
-table thead tr th:last-child,
-table tbody:first-child tr:first-child th:last-child,
-table tbody:first-child tr:first-child td:last-child {
- border-top: 1px solid #666;
- border-top-right-radius: 6px;
-}
-table tbody tr:last-child td:first-child,
-table tbody tr:last-child th:first-child {
- border-bottom-left-radius: 6px;
- border-left: 1px solid #666;
-}
-table tbody tr th:first-child {
- border-left: 1px solid #666;
-}
-table tbody tr:last-child td:last-child,
-table tr:last-child td:last-child {
- border-bottom-right-radius: 6px;
-}
-.prop {
- margin: 0;
- padding: 0;
-}
-.description {
- margin-top: 0.25em;
- margin-bottom: 0.75em;
-}
-.blankdesc {
- margin: 0 0 0.5em 0;
- padding: 0 0 0.5em 0;
-}
-.blankdesc tbody tr td, .blankdef {
- border: 0!important;
-}
-.terminfo, .restriction {
- border-collapse: collapse;
- border-style: hidden;
-}
-.restriction {
- margin: 0 0 0.5ex 0;
- padding: 0;
- vertical-align: text-top;
-}
-.restriction td {
- vertical-align: text-top;
-}
-.terminfo th {
- padding: 0 0.75em 0.125em 0;
- border: 0;
- vertical-align: top;
-}
-.terminfo td, .terminfo td:first-child {
- padding: 0 1em 0 0;
- border: 0;
-}
-.specterm {
- border: 0;
- margin: 0;
- padding: 0;
- margin-bottom: 1em;
-}
-.specterm h3 {
- font-size: large;
- font-weight: bold;
- margin: 0;
-}
-.spectermbody {
- padding: 0 1em 1em 2em;
-}
-dl {
- margin: 0;
- padding: 0;
-}
-dt {
- font-weight: 700;
- margin-top: .75ex;
-}
-hr {
- background-color: #DDD;
- border: 0;
- color: gray;
- height: 1px;
- margin-bottom: 1.5ex;
- margin-top: 1.5ex;
-}
-div.head {
- margin-bottom: 1em;
-}
-div.head h1 {
- clear: both;
- margin-top: 2em;
-}
-div.head table {
- margin-left: 2em;
- margin-top: 2em;
-}
-table {
- border-collapse: initial;
- border-spacing: 0;
- margin: 0;
- border: 0;
-}
-td, th {
- border: 1px solid #666;
- padding: 0.25em 0.5em 0.25em 0.5em;
-}
-th {
- font-weight: bold;
- text-align: left;
-}
-pre {
- margin: 1em 1em 1em 4em;
- padding: 0;
- color: #444;
- font-family: fixed,monospace;
-}
-code {
- color: #444;
- font-family: fixed,monospace;
-}
-#menu li, #searchbox form, #iconbar li, #body-main .success p a {
- display: inline;
-}
-#menu ul.level-one a:hover, #menu ul.level-two a:hover, #menu ul.level-three a:hover, #left-hand-navigation h4 a:hover {
- color: #000;
- text-decoration: underline;
-}
-h1, h2, h3, h4, h5, h6, th {
- text-align: left;
-}
-.error {
- color: #DC322F;
- font-weight: bold;
-}
-.warning {
- color: #B58900;
- font-weight: bold;
-}
-.success {
- color: #859900;
- font-weight: bold;
-}
diff --git a/doc/asciidoc.css b/doc/style/asciidoc.css
index 59bf677..2e64544 100644
--- a/doc/asciidoc.css
+++ b/doc/style/asciidoc.css
@@ -435,7 +435,7 @@ th.tableblock {
td.tableblock, th.tableblock {
border: 1px dashed #ccc;
}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
+/* Because the table frame attribute is overridden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
diff --git a/doc/style/meson.build b/doc/style/meson.build
new file mode 100644
index 0000000..39e9242
--- /dev/null
+++ b/doc/style/meson.build
@@ -0,0 +1,13 @@
+# Copyright 2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
+
+style_files = files('pygments.css', 'style.css')
+
+foreach file : style_files
+ configure_file(
+ copy: true,
+ input: file,
+ install_dir: lv2_docdir / 'style',
+ output: '@PLAINNAME@',
+ )
+endforeach
diff --git a/doc/style/pygments.css b/doc/style/pygments.css
new file mode 100644
index 0000000..2472b1a
--- /dev/null
+++ b/doc/style/pygments.css
@@ -0,0 +1,558 @@
+/* Light (default) theme */
+
+.n {
+ color: #222;
+}
+
+.c {
+ color: #3F4D91;
+ font-style: italic;
+}
+
+.err {
+ border: 1px solid #DC322F;
+}
+
+.k {
+ color: #586E75;
+}
+
+.o {
+ color: #586E75;
+}
+
+.cm {
+ color: #3F4D91;
+ font-style: italic;
+}
+
+.cp {
+ color: #586E75;
+}
+
+.cpf {
+ color: #93115C;
+}
+
+.c1 {
+ color: #3F4D91;
+ font-style: italic;
+}
+
+.cs {
+ color: #3F4D91;
+ font-style: italic;
+}
+
+.gd {
+ color: #990A1B;
+}
+
+.ge {
+ font-style: italic;
+}
+
+.gr {
+ color: #DC322F;
+}
+
+.gh {
+ color: #3F4D91;
+ font-weight: bold;
+}
+
+.gi {
+ color: #859900;
+}
+
+.go {
+ color: #666;
+}
+
+.gp {
+ color: #666;
+ font-weight: bold;
+}
+
+.gs {
+ font-weight: bold;
+}
+
+.gu {
+ color: #444;
+ font-weight: bold;
+}
+
+.gt {
+ color: #268BD2;
+}
+
+.kc {
+ color: #586E75;
+ font-weight: bold;
+}
+
+.kd {
+ color: #586E75;
+ font-weight: bold;
+}
+
+.kn {
+ color: #586E75;
+ font-weight: bold;
+}
+
+.kp {
+ color: #586E75;
+}
+
+.kr {
+ color: #586E75;
+ font-weight: bold;
+}
+
+.kt {
+ color: #586E75;
+}
+
+.m {
+ color: #666;
+}
+
+.s {
+ color: #93115C;
+}
+
+.na {
+ color: #444;
+}
+
+.nb {
+ color: #3F4D91;
+}
+
+.nc {
+ color: #000;
+}
+
+.no {
+ color: #880;
+}
+
+.nd {
+ color: #A2F;
+}
+
+.ni {
+ color: #666;
+ font-weight: bold;
+}
+
+.ne {
+ color: #D2413A;
+ font-weight: bold;
+}
+
+.nf {
+ color: #000;
+}
+
+.nl {
+ color: #546E00;
+}
+
+.nn {
+ color: #444;
+}
+
+.nt {
+ color: #444;
+}
+
+.nv {
+ color: #222;
+}
+
+.ow {
+ color: #3F4D91;
+}
+
+.w {
+ color: #BBB;
+}
+
+.mb {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.mf {
+ color: #93115C;
+}
+
+.mh {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.mi {
+ color: #93115C;
+}
+
+.mo {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.sb {
+ color: #93115C;
+}
+
+.sc {
+ color: #93115C;
+}
+
+.sd {
+ color: #3F4D91;
+ font-style: italic;
+}
+
+.s2 {
+ color: #93115C;
+}
+
+.se {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.sh {
+ color: #93115C;
+}
+
+.si {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.sx {
+ color: #93115C;
+}
+
+.sr {
+ color: #93115C;
+ font-weight: bold;
+}
+
+.s1 {
+ color: #93115C;
+}
+
+.ss {
+ color: #444;
+ font-weight: bold;
+}
+
+.bp {
+ color: #859900;
+}
+
+.vc {
+ color: #00629D;
+}
+
+.vg {
+ color: #00629D;
+}
+
+.vi {
+ color: #00629D;
+}
+
+.il {
+ color: #000;
+}
+
+.p {
+ color: #444;
+}
+
+/* Dark theme */
+@media (prefers-color-scheme: dark) {
+ .n {
+ color: #BBB;
+ }
+
+ .c {
+ color: #6C71C4;
+ font-style: italic;
+ }
+
+ .err {
+ border: 1px solid #FF6E64;
+ }
+
+ .k {
+ color: #93A1A1;
+ }
+
+ .o {
+ color: #93A1A1;
+ }
+
+ .cm {
+ color: #6C71C4;
+ font-style: italic;
+ }
+
+ .cp {
+ color: #93A1A1;
+ }
+
+ .cpf {
+ color: #D33682;
+ }
+
+ .c1 {
+ color: #6C71C4;
+ font-style: italic;
+ }
+
+ .cs {
+ color: #6C71C4;
+ font-style: italic;
+ }
+
+ .gd {
+ color: #DC322F;
+ }
+
+ .ge {
+ font-style: italic;
+ }
+
+ .gr {
+ color: #FF6E64;
+ }
+
+ .gh {
+ color: #6C71C4;
+ font-weight: bold;
+ }
+
+ .gi {
+ color: #859900;
+ }
+
+ .go {
+ color: #666;
+ }
+
+ .gp {
+ color: #666;
+ font-weight: bold;
+ }
+
+ .gs {
+ font-weight: bold;
+ }
+
+ .gu {
+ color: #BBB;
+ font-weight: bold;
+ }
+
+ .gt {
+ color: #69B7F0;
+ }
+
+ .kc {
+ color: #93A1A1;
+ font-weight: bold;
+ }
+
+ .kd {
+ color: #93A1A1;
+ font-weight: bold;
+ }
+
+ .kn {
+ color: #93A1A1;
+ font-weight: bold;
+ }
+
+ .kp {
+ color: #93A1A1;
+ }
+
+ .kr {
+ color: #93A1A1;
+ font-weight: bold;
+ }
+
+ .kt {
+ color: #93A1A1;
+ }
+
+ .m {
+ color: #999;
+ }
+
+ .s {
+ color: #D33682;
+ }
+
+ .na {
+ color: #BBB;
+ }
+
+ .nb {
+ color: #6C71C4;
+ }
+
+ .nc {
+ color: #FFF;
+ }
+
+ .no {
+ color: #880;
+ }
+
+ .nd {
+ color: #A2F;
+ }
+
+ .ni {
+ color: #999;
+ font-weight: bold;
+ }
+
+ .ne {
+ color: #D2413A;
+ font-weight: bold;
+ }
+
+ .nf {
+ color: #FFF;
+ }
+
+ .nl {
+ color: #546E00;
+ }
+
+ .nn {
+ color: #BBB;
+ }
+
+ .nt {
+ color: #BBB;
+ }
+
+ .nv {
+ color: #DDD;
+ }
+
+ .ow {
+ color: #6C71C4;
+ }
+
+ .w {
+ color: #BBB;
+ }
+
+ .mb {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .mf {
+ color: #D33682;
+ }
+
+ .mh {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .mi {
+ color: #D33682;
+ }
+
+ .mo {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .sb {
+ color: #D33682;
+ }
+
+ .sc {
+ color: #D33682;
+ }
+
+ .sd {
+ color: #6C71C4;
+ font-style: italic;
+ }
+
+ .s2 {
+ color: #D33682;
+ }
+
+ .se {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .sh {
+ color: #D33682;
+ }
+
+ .si {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .sx {
+ color: #D33682;
+ }
+
+ .sr {
+ color: #D33682;
+ font-weight: bold;
+ }
+
+ .s1 {
+ color: #D33682;
+ }
+
+ .ss {
+ color: #BBB;
+ font-weight: bold;
+ }
+
+ .bp {
+ color: #859900;
+ }
+
+ .vc {
+ color: #268BD2;
+ }
+
+ .vg {
+ color: #268BD2;
+ }
+
+ .vi {
+ color: #268BD2;
+ }
+
+ .il {
+ color: #FFF;
+ }
+
+ .p {
+ color: #BBB;
+ }
+}
diff --git a/doc/style/style.css b/doc/style/style.css
new file mode 100644
index 0000000..fca399e
--- /dev/null
+++ b/doc/style/style.css
@@ -0,0 +1,805 @@
+@import "./pygments.css";
+
+/* Generic page style */
+
+html {
+ background: #FFF;
+ color: #222;
+}
+
+body {
+ font-family: "DejaVu Sans", "SF Pro Text", Verdana, sans-serif;
+ font-style: normal;
+ line-height: 1.6em;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 60em;
+ padding: 1em;
+}
+
+h1 {
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ font-size: 2.38em;
+ font-weight: 600;
+ line-height: 1.41em;
+ margin: 0 0 0.25em;
+}
+
+h2 {
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ font-size: 1.68em;
+ font-weight: 600;
+ line-height: 1.3em;
+ margin: 1.25em 0 0.5em;
+}
+
+h3 {
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ font-size: 1.41em;
+ font-weight: 600;
+ line-height: 1.19em;
+ margin: 1.25em 0 0.5em;
+}
+
+h4 {
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ font-size: 1.19em;
+ font-weight: 600;
+ line-height: 1.09em;
+ margin: 1.25em 0 0.5em;
+}
+
+h5, h6 {
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ font-size: 1em;
+ font-weight: 600;
+ line-height: 1em;
+ margin: 1.25em 0 0.5em;
+}
+
+a {
+ color: #546E00;
+ text-decoration: none;
+}
+
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #222;
+}
+
+a:link {
+ color: #546E00;
+ text-decoration: none;
+}
+
+a:visited {
+ color: #546E00;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link {
+ color: #222;
+}
+
+h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
+ color: #222;
+}
+
+img {
+ border: 0;
+}
+
+p {
+ margin: 0.5em 0;
+}
+
+blockquote {
+ border-left: 1px solid #CCC;
+ margin-left: 1em;
+ padding-left: 1em;
+}
+
+pre, code, kbd, samp {
+ color: #444;
+ font-family: "DejaVu Sans Mono", "SF Mono", Consolas, monospace;
+ margin: 1em 0;
+ white-space: pre;
+}
+
+ul, ol {
+ margin: 0 0 0.5em;
+ padding-top: 0;
+}
+
+dt {
+ font-weight: 600;
+ margin: 0.75em 0 0.125em;
+}
+
+dt::after {
+ content: ": ";
+ margin-right: 0.5em;
+}
+
+hr {
+ background-color: #EEE;
+ border: 0;
+ color: #666;
+ height: 1px;
+ margin-bottom: 1.5ex;
+ margin-top: 1.5ex;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 1em 1em;
+ border-style: hidden;
+ border: 0;
+ margin: 0;
+}
+
+th {
+ border: 1px solid #EEE;
+ padding: 0.25em 0.5em;
+ text-align: left;
+}
+
+table tbody tr th {
+ text-align: left;
+}
+
+td {
+ border: 1px solid #EEE;
+ padding: 0.25em 0.5em;
+ vertical-align: top;
+}
+
+caption {
+ caption-side: bottom;
+ font-size: small;
+ font-style: italic;
+ margin: 0.75em 0;
+}
+
+footer {
+ color: #444;
+ font-size: small;
+}
+
+/* Specgen style */
+
+#titlebox {
+ display: inline-block;
+ max-width: 60%;
+ left: 0;
+ top: 0;
+}
+
+#metabox {
+ display: inline-block;
+ font-size: x-small;
+ font-family: "DejaVu Sans Condensed", Helvetica, Arial, sans-serif;
+ position: absolute;
+ right: 0;
+ bottom: 0.25em;
+ color: #666;
+ font-style: italic;
+}
+
+#meta {
+ border-style: hidden;
+}
+
+#meta tr, #meta th, #meta td {
+ border: 0;
+ font-weight: normal;
+ padding: 0 0 0.125em;
+ background-color: transparent;
+}
+
+#meta th {
+ padding-right: 0.5em;
+ text-align: right;
+}
+
+#meta th::after {
+ content: ": ";
+}
+
+#subtitle {
+ font-size: small;
+}
+
+#shortdesc {
+ padding: 0;
+ margin: 0 0 0.5em;
+ font-style: italic;
+ color: #666;
+ display: inline-block;
+}
+
+#logo {
+ height: 63px;
+ margin-left: 1em;
+ margin-top: 10px;
+ width: 100px;
+}
+
+#titlesep {
+ color: #EEE;
+}
+
+#content-body {
+ border-bottom: 0;
+ display: block;
+ font-size: 75%;
+ left: 0;
+ margin-left: 2em;
+ min-width: 660px;
+ padding: 3px 10px 0 0;
+ position: absolute;
+ top: 63px;
+ width: 93.9%;
+ z-index: 0;
+}
+
+#menu {
+ font-size: 75%;
+ margin-bottom: 5px;
+ padding: 0;
+ width: 16em;
+}
+
+#menu ul {
+ border: 0;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+#menu a {
+ text-decoration: none;
+}
+
+#menu ul.level-one a {
+ background-color: #F5F5F5;
+ border: 1px solid #DADADA;
+ color: #4B5A6A;
+ display: block;
+ margin: 0 0 4px 1.4em;
+ padding: 2px 2px 2px 4px;
+ text-transform: uppercase;
+ width: 13.4em !important;
+}
+
+#menu ul.level-two a {
+ background: none;
+ background-color: transparent;
+ border: 0;
+ border-top: 1px solid #DDD;
+ color: #3C4B7B;
+ display: block;
+ margin: 0 3em 0 1.5em;
+ padding: 0.1em;
+ text-transform: none;
+ width: 11em !important;
+}
+
+#menu ul.level-three a {
+ border: 0;
+ color: #5E72A5;
+ display: block;
+ font-size: 95%;
+ margin: 0 3em 0 1.8em;
+ padding: 0.1em 0.1em 0.1em 1em;
+ width: 10em !important;
+}
+
+#menu ul.level-one a:hover,
+#menu ul.level-two a:hover,
+#menu ul.level-three a:hover {
+ color: #000;
+ text-decoration: underline;
+}
+
+#menu ul.level-one a.selected {
+ background-color: #FFF;
+ border-left: 3px solid #FFDB4C;
+ color: #000;
+}
+
+#menu ul.level-two a:visited {
+ color: #4C3B5B;
+}
+
+#menu ul.level-two li:first-child a {
+ border-top: 0;
+}
+
+#menu ul.level-one ul.level-two a.selected {
+ background-color: #FFF;
+ border-left: 0;
+ color: #000;
+ font-weight: 700;
+}
+
+#menu li ul {
+ margin-bottom: 7px;
+}
+
+#menu ul.level-three li.selected a.selected {
+ color: #000;
+ font-weight: 400;
+}
+
+#menu ul.level-three {
+ margin-top: 5px;
+}
+
+#searchbox {
+ font-weight: 700;
+ position: absolute;
+ right: 0;
+ text-align: right;
+ top: 0;
+ vertical-align: middle;
+ white-space: nowrap;
+ width: 28.1em;
+}
+
+#search {
+ color: #A38E60;
+ padding: 5px 5px 0 0;
+}
+
+#search .input-text {
+ background-color: #FFF;
+ border: 1px solid #C4CCCC;
+ font-size: 116%;
+ font-weight: 400;
+ margin-top: 3px;
+ vertical-align: top;
+ width: 11em;
+}
+
+#search .input-button {
+ background-color: #F8F7F7;
+ border-bottom: 1px solid #6F7777;
+ border-left: 1px solid #C4CCCC;
+ border-right: 1px solid #6F7777;
+ border-top: 1px solid #C4CCCC;
+ color: #234;
+ font-weight: 700;
+ margin: 3px 0.4em 0;
+ padding: 0 0.2em;
+ vertical-align: text-top;
+}
+
+input.formbutton {
+ background-color: #F8F7F7;
+ border-bottom: 1px solid #6F7777;
+ border-left: 1px solid #C4CCCC;
+ border-right: 1px solid #6F7777;
+ border-top: 1px solid #C4CCCC;
+ color: #234;
+ font-weight: 700;
+ vertical-align: text-top;
+}
+
+.formtextinput {
+ background-color: #FFF;
+ border: 1px solid #C4CCCC;
+ font-size: 116%;
+ font-weight: 400;
+ vertical-align: top;
+}
+
+#content table {
+ clear: right;
+}
+
+.content-section {
+ margin-top: 15px;
+}
+
+.content-section h1 {
+ margin: 0 0 10px;
+}
+
+.content-section p {
+ margin: 0 0 5px;
+ padding-left: 12px;
+}
+
+.content-section .pubdate {
+ color: #696969;
+ margin: 0 0 8px;
+ padding: 0 0 0 12px;
+}
+
+#footer {
+ bottom: 0;
+ clear: both;
+ font-size: x-small;
+ margin: 2em 0 0;
+ padding: 0;
+ color: #888;
+}
+
+#searchbox a.reference, #searchbox span.reference {
+ color: #339;
+ font-size: 85%;
+ font-weight: 400;
+ position: absolute;
+ right: 8.3em;
+ text-decoration: none;
+ top: 2.9em;
+}
+
+#topbar {
+ line-height: 1em;
+ border-bottom: 1px solid #EEE;
+}
+
+@media print {
+ #topbar {
+ color: #000;
+ margin: 0.25em auto;
+ padding: 0.25em 0.5em 0.5em;
+ max-width: 60em;
+ position: relative;
+ }
+
+ #contentsbox {
+ display: none;
+ }
+
+ #topbar a, #title a, #topbar a:visited, #title a:visited {
+ color: #000;
+ }
+
+ #contents {
+ display: none;
+ }
+}
+
+@media screen {
+ #topbar {
+ margin: 0.25em auto;
+ padding: 0;
+ max-width: 60em;
+ position: relative;
+ }
+
+ #contentsbox {
+ color: #546E00;
+ font-size: small;
+ margin: 0 0 1.5em;
+ }
+
+ #contents {
+ display: inline;
+ padding: 0;
+ }
+
+ #contents li {
+ display: inline;
+ list-style-type: none;
+ margin-left: 0;
+ margin-right: 0.5em;
+ padding: 0.25ex 0.25ex 0.25ex 0;
+ }
+}
+
+#content {
+ clear: both;
+ padding: 0;
+ max-width: 60em;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.section {
+ clear: right;
+ padding: 0 0 1.5em;
+}
+
+.category {
+ font-size: small;
+ color: #AAA;
+ float: right;
+ vertical-align: bottom;
+ padding: 0;
+ margin: 0;
+ padding-right: 0.25em;
+}
+
+.label {
+ font-style: italic;
+ margin-top: 0.25em;
+ color: #666;
+}
+
+table.index {
+ border: 0;
+ line-height: 1.5em;
+ margin-top: 2em;
+}
+
+.index ul {
+ padding-left: 1.25em;
+ margin-left: 0;
+ list-style-type: circle;
+}
+
+.index ul li {
+ padding-left: 0;
+ color: #888;
+}
+
+.prop {
+ margin: 0;
+ padding: 0;
+}
+
+.description {
+ margin-top: 0;
+ margin-bottom: 0.75em;
+}
+
+.blankdesc, .blankdef {
+ border-spacing: 0;
+ margin: 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.blankdesc tbody tr td, .blankdef {
+ border: 0 !important;
+}
+
+.blankdesc td {
+ padding-right: 0.5em;
+}
+
+.blankdesc tbody tr td:first-child {
+ border-left: 1px solid #BBB;
+ text-align: right;
+}
+
+.terminfo, .restriction {
+ border-collapse: collapse;
+ border-spacing: 0;
+ font-size: small;
+ color: #666;
+ border-radius: 0;
+ border-bottom-left-radius: 6px;
+}
+
+table.terminfo {
+ border-top: 0;
+ border-collapse: collapse;
+ margin: -1px 0 2em 2em;
+ padding: 0.25em 0;
+ float: right;
+ border-bottom: 1px solid #EEE;
+ border-left: 1px solid #EEE;
+ border-bottom-left-radius: 6px;
+ max-width: 50%;
+ line-height: 1.4em;
+ min-width: 25%;
+}
+
+table.terminfo td {
+ padding: 0 0.5em;
+}
+
+.restriction {
+ border-style: hidden;
+ margin: 0 0 0.5ex;
+ padding: 0;
+ vertical-align: text-top;
+}
+
+.restriction td {
+ vertical-align: text-top;
+}
+
+.terminfo th {
+ padding: 0 0.5em;
+ text-align: right;
+ vertical-align: top;
+}
+
+.specterm {
+ border: 0;
+ margin: 0;
+ padding: 1em 0;
+ clear: both;
+}
+
+.specterm h3 {
+ display: inline-block;
+ margin-bottom: 0.25em;
+ width: 80%;
+}
+
+.spectermtype {
+ color: #888;
+ display: inline-block;
+ font-size: small;
+ font-style: italic;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0 0.25em 0 0;
+ text-align: right;
+ vertical-align: bottom;
+ width: 20%;
+}
+
+.spectermbody {
+ border-top: 1px solid #EEE;
+ padding: 0;
+}
+
+.spectermbody .description .comment > p:first-child {
+ color: #444;
+ font-style: italic;
+ margin-bottom: 0.75em;
+}
+
+dl {
+ margin: 0;
+ padding: 0;
+}
+
+div.head {
+ margin-bottom: 1em;
+}
+
+div.head h1 {
+ clear: both;
+ margin-top: 2em;
+}
+
+div.head table {
+ margin-left: 2em;
+ margin-top: 2em;
+}
+
+#menu li {
+ display: inline;
+}
+
+.error {
+ color: #990A1B;
+}
+
+.warning {
+ color: #7B6000;
+}
+
+.success {
+ color: #546E00;
+}
+
+.highlight, .codehilite {
+ margin-left: 2em;
+}
+
+/* Dark mode */
+@media (prefers-color-scheme: dark) {
+ /* Dark generic page style */
+
+ html {
+ background: #222;
+ color: #DDD;
+ }
+
+ a {
+ color: #B4C342;
+ }
+
+ a:link {
+ color: #B4C342;
+ }
+
+ a:visited {
+ color: #B4C342;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: #DDD;
+ }
+
+ h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link {
+ color: #DDD;
+ }
+
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
+ color: #DDD;
+ }
+
+ blockquote {
+ border-left: 1px solid #444;
+ }
+
+ pre, code, kbd, samp {
+ color: #DDD;
+ }
+
+ hr {
+ background-color: #333;
+ border: 0;
+ color: #666;
+ }
+
+ th {
+ border: 1px solid #444;
+ }
+
+ td {
+ border: 1px solid #444;
+ }
+
+ footer {
+ color: #BBB;
+ }
+
+ /* Dark specgen style */
+
+ #metabox {
+ color: #999;
+ }
+
+ #shortdesc {
+ color: #999;
+ }
+
+ #titlesep {
+ color: #444;
+ }
+
+ .terminfo, .restriction {
+ color: #999;
+ }
+
+ table.terminfo {
+ border-bottom: 1px solid #444;
+ border-left: 1px solid #444;
+ }
+
+ .spectermbody {
+ border-top: 1px solid #444;
+ }
+
+ .spectermbody .description .comment > p:first-child {
+ color: #BBB;
+ }
+
+ .error {
+ color: #DC322F;
+ }
+
+ .warning {
+ color: #B58900;
+ }
+
+ .success {
+ color: #859900;
+ }
+
+ #topbar {
+ border-bottom: 1px solid #444;
+ }
+}
+
+/* Hard black for dark mode on mobile (since it's likely to be an OLED screen) */
+@media only screen and (hover: none) and (pointer: coarse) and (prefers-color-scheme: dark) {
+ html {
+ background: #000;
+ color: #CCC;
+ }
+}