Browse Source

Update Doxygen

Christian W. Zuckschwerdt 3 months ago
parent
commit
192553d439
8 changed files with 220 additions and 135 deletions
  1. 137 73
      Doxyfile.in
  2. 5 4
      include/baseband.h
  3. 2 0
      include/data.h
  4. 56 36
      include/pulse_demod.h
  5. 5 0
      include/pulse_detect.h
  6. 15 20
      src/baseband.c
  7. 0 1
      src/devices/digitech_xc0324.c
  8. 0 1
      src/pulse_detect_fsk.c

+ 137 - 73
Doxyfile.in

@@ -1,4 +1,4 @@
-# Doxyfile 1.8.13
+# Doxyfile 1.8.16
 
 # 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
@@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES    = NO
 
 OUTPUT_LANGUAGE        = English
 
+# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all generated output in the proper direction.
+# Possible values are: None, LTR, RTL and Context.
+# The default value is: None.
+
+OUTPUT_TEXT_DIRECTION  = None
+
 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
 # descriptions after the members that are listed in the file and class
 # documentation (similar to Javadoc). Set to NO to disable this.
@@ -179,6 +187,16 @@ SHORT_NAMES            = NO
 
 JAVADOC_AUTOBRIEF      = YES
 
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
+# such as
+# /***************
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
+# Javadoc-style will behave just like regular comments and it will not be
+# interpreted by doxygen.
+# The default value is: NO.
+
+JAVADOC_BANNER         = NO
+
 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
 # line (until the first dot) of a Qt-style comment as the brief description. If
 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
@@ -226,7 +244,12 @@ TAB_SIZE               = 8
 # 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.
+# 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                =
 
@@ -264,17 +287,26 @@ OPTIMIZE_FOR_FORTRAN   = NO
 
 OPTIMIZE_OUTPUT_VHDL   = NO
 
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE  = NO
+
 # Doxygen selects the parser to use depending on the extension of the files it
 # 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.
+# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice,
+# 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, tcl. 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.
 #
@@ -285,7 +317,7 @@ 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 +329,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 +359,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.
@@ -433,6 +465,12 @@ EXTRACT_ALL            = YES
 
 EXTRACT_PRIVATE        = NO
 
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
+# methods of a class will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIV_VIRTUAL   = NO
+
 # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
 # scope will be included in the documentation.
 # The default value is: NO.
@@ -511,7 +549,7 @@ INTERNAL_DOCS          = NO
 # 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.
+# (including Cygwin) ands Mac users are advised to set this option to NO.
 # The default value is: system dependent.
 
 CASE_SENSE_NAMES       = YES
@@ -698,7 +736,7 @@ LAYOUT_FILE            =
 # 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.
@@ -743,7 +781,8 @@ 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.
+# parameter documentation, but not about the absence of documentation. If
+# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
 # The default value is: NO.
 
 WARN_NO_PARAMDOC       = NO
@@ -752,7 +791,7 @@ WARN_NO_PARAMDOC       = NO
 # a warning is encountered.
 # The default value is: NO.
 
-WARN_AS_ERROR          = NO
+WARN_AS_ERROR          = YES
 
 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
 # can produce. The string should contain the $file, $line, and $text tags, which
@@ -786,7 +825,7 @@ INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/include \
 # 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
+# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
 # possible encodings.
 # The default value is: UTF-8.
 
@@ -804,9 +843,9 @@ INPUT_ENCODING         = UTF-8
 # *.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.
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice.
 
-FILE_PATTERNS          =
+FILE_PATTERNS          = *.h *.c
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.
@@ -837,7 +876,7 @@ EXCLUDE_SYMLINKS       = NO
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories for example use the pattern */test/*
 
-EXCLUDE_PATTERNS       =
+EXCLUDE_PATTERNS       = mongoose.*
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -959,7 +998,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 = YES
@@ -991,12 +1030,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
 #
@@ -1136,7 +1175,7 @@ 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
+# 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,6 +1211,17 @@ HTML_COLORSTYLE_GAMMA  = 80
 
 HTML_TIMESTAMP         = YES
 
+# 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_DYNAMIC_MENUS     = YES
+
 # 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
 # page has loaded.
@@ -1195,13 +1245,13 @@ 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
+# 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.
 
@@ -1240,7 +1290,7 @@ 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
+# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on
 # Windows.
 #
 # The HTML Help Workshop contains a compiler that can convert all HTML output
@@ -1316,7 +1366,7 @@ 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.
 
@@ -1324,7 +1374,7 @@ QHP_NAMESPACE          = org.doxygen.Project
 
 # 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 (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.
@@ -1333,7 +1383,7 @@ 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 (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.
 
@@ -1341,7 +1391,7 @@ 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 (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.
 
@@ -1349,7 +1399,7 @@ 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  =
@@ -1442,7 +1492,7 @@ EXT_LINKS_IN_WINDOW    = NO
 
 FORMULA_FONTSIZE       = 10
 
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
 # generated for formulas are transparent PNGs. Transparent PNGs are not
 # supported properly for IE 6.0, but are supported on all modern browsers.
 #
@@ -1454,7 +1504,7 @@ FORMULA_FONTSIZE       = 10
 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
@@ -1481,8 +1531,8 @@ 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: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
@@ -1543,7 +1593,7 @@ 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.
@@ -1556,7 +1606,7 @@ 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
+# 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.
 
@@ -1608,21 +1658,35 @@ 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.
 
 MAKEINDEX_CMD_NAME     = makeindex
 
+# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
+# generate index for LaTeX. In case there is no backslash (\) as first character
+# it will be automatically added in the LaTeX code.
+# Note: This tag is used in the generated output file (.tex).
+# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
+# The default value is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_MAKEINDEX_CMD    = makeindex
+
 # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
 # documents. This may be useful for small projects and may help to save some
 # trees in general.
@@ -1743,7 +1807,7 @@ 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.
 
@@ -1757,6 +1821,14 @@ LATEX_BIB_STYLE        = plain
 
 LATEX_TIMESTAMP        = NO
 
+# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
+# path from which the emoji images will be read. If a relative path is entered,
+# it will be relative to the LATEX_OUTPUT directory. If left blank the
+# LATEX_OUTPUT directory will be used.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EMOJI_DIRECTORY  =
+
 #---------------------------------------------------------------------------
 # Configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -1796,9 +1868,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.
@@ -1807,8 +1879,8 @@ 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    =
@@ -1894,6 +1966,13 @@ XML_OUTPUT             = xml
 
 XML_PROGRAMLISTING     = YES
 
+# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
+# namespace members in file scope as well, matching the HTML output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_NS_MEMB_FILE_SCOPE = NO
+
 #---------------------------------------------------------------------------
 # Configuration options related to the DOCBOOK output
 #---------------------------------------------------------------------------
@@ -1926,9 +2005,9 @@ DOCBOOK_PROGRAMLISTING = NO
 #---------------------------------------------------------------------------
 
 # 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
@@ -1979,7 +2058,7 @@ PERLMOD_MAKEVAR_PREFIX =
 # C-preprocessor directives found in the sources and include files.
 # The default value is: YES.
 
-ENABLE_PREPROCESSING   = NO
+ENABLE_PREPROCESSING   = YES
 
 # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
 # in the source code. If set to NO, only conditional compilation will be
@@ -2095,12 +2174,6 @@ 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
 #---------------------------------------------------------------------------
@@ -2114,15 +2187,6 @@ PERL_PATH              = /usr/bin/perl
 
 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.

+ 5 - 4
include/baseband.h

@@ -17,9 +17,9 @@
 
 /** This will give a noisy envelope of OOK/ASK signals.
 
-    Subtract the bias (-128) and get an envelope estimation (absolute squared)
+    Subtract the bias (-128) and get an envelope estimation (absolute squared).
     @param iq_buf input samples (I/Q samples in interleaved uint8)
-    @param[out] y_buf output
+    @param[out] y_buf output buffer
     @param len number of samples to process
 */
 void envelope_detect(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len);
@@ -47,7 +47,7 @@ typedef struct demodfm_state {
 
 /** Lowpass filter.
 
-    Function is stateful
+    Function is stateful.
     @param x_buf input samples to be filtered
     @param[out] y_buf output from filter
     @param len number of samples to process
@@ -57,11 +57,12 @@ void baseband_low_pass_filter(uint16_t const *x_buf, int16_t *y_buf, uint32_t le
 
 /** FM demodulator.
 
-    Function is stateful
+    Function is stateful.
     @param x_buf input samples (I/Q samples in interleaved uint8)
     @param[out] y_buf output from FM demodulator
     @param num_samples number of samples to process
     @param[in,out] state State to store between chunk processing
+    @param fpdm Index of filter setting to use
 */
 void baseband_demod_FM(uint8_t const *x_buf, int16_t *y_buf, unsigned long num_samples, demodfm_state_t *state, unsigned fpdm);
 

+ 2 - 0
include/data.h

@@ -109,6 +109,8 @@ data_t *data_prepend(data_t *first, const char *key, const char *pretty_key, ...
 
 /** Constructs an array from given data of the given uniform type.
 
+    @param num_values The number of values to be copied.
+    @param type The type of values to be copied.
     @param ptr The contents pointed by the argument are copied in.
 
     @return The constructed data array object, typically placed inside a data_t or NULL

+ 56 - 36
include/pulse_demod.h

@@ -26,9 +26,12 @@
 /// The presence of a pulse is:
 /// - Presence of a pulse equals 1
 /// - Absence of a pulse equals 0
-/// @param device->short_width Nominal width of pulse [us]
-/// @param device->long_width  Nominal width of bit period [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
+///
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of pulse [us]
+/// - long_width:  Nominal width of bit period [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
 /// @return number of events processed
 int pulse_demod_pcm(const pulse_data_t *pulses, r_device *device);
 
@@ -39,11 +42,14 @@ int pulse_demod_pcm(const pulse_data_t *pulses, r_device *device);
 /// Gap between pulses determine the encoding:
 /// - Short gap will add a 0 bit
 /// - Long  gap will add a 1 bit
-/// @param device->short_width Nominal width of '0' [us]
-/// @param device->long_width  Nominal width of '1' [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
-/// @param device->gap_limit   Maximum gap size before new row of bits [us]
-/// @param device->tolerance   Maximum deviation from nominal widths (optional, raw if 0) [us]
+///
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of '0' [us]
+/// - long_width:  Nominal width of '1' [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
+/// - gap_limit:   Maximum gap size before new row of bits [us]
+/// - tolerance:   Maximum deviation from nominal widths (optional, raw if 0) [us]
 /// @return number of events processed
 int pulse_demod_ppm(const pulse_data_t *pulses, r_device *device);
 
@@ -54,12 +60,15 @@ int pulse_demod_ppm(const pulse_data_t *pulses, r_device *device);
 /// - Short pulse will add a 1 bit
 /// - Long pulse will add a 0 bit
 /// - Sync pulse (optional) will add a new row to bitbuffer
-/// @param device->short_width Nominal width of '1' [us]
-/// @param device->long_width  Nominal width of '0' [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
-/// @param device->gap_limit   Maximum gap size before new row of bits [us]
-/// @param device->sync_width  Nominal width of sync pulse (optional) [us]
-/// @param device->tolerance   Maximum deviation from nominal widths (optional, raw if 0) [us]
+///
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of '1' [us]
+/// - long_width:  Nominal width of '0' [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
+/// - gap_limit:   Maximum gap size before new row of bits [us]
+/// - sync_width:  Nominal width of sync pulse (optional) [us]
+/// - tolerance:   Maximum deviation from nominal widths (optional, raw if 0) [us]
 /// @return number of events processed
 int pulse_demod_pwm(const pulse_data_t *pulses, r_device *device);
 
@@ -72,9 +81,12 @@ int pulse_demod_pwm(const pulse_data_t *pulses, r_device *device);
 /// than 1.5 times the clock half period (short_width) it is declared a data edge where:
 /// - Rising edge means bit = 0
 /// - Falling edge means bit = 1
-/// @param device->short_width Nominal width of clock half period [us]
-/// @param device->long_width  Not used
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
+///
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of clock half period [us]
+/// - long_width:  Not used
+/// - reset_limit: Maximum gap size before End Of Message [us].
 /// @return number of events processed
 int pulse_demod_manchester_zerobit(const pulse_data_t *pulses, r_device *device);
 
@@ -84,18 +96,20 @@ int pulse_demod_manchester_zerobit(const pulse_data_t *pulses, r_device *device)
 /// One level shift within the clock cycle translates to a logic 1
 /// Each clock cycle begins with a level shift
 ///
-/// +---+   +---+   +-------+       +  high
-/// |   |   |   |   |       |       |
-/// |   |   |   |   |       |       |
-/// +   +---+   +---+       +-------+  low
+///     +---+   +---+   +-------+       +  high
+///     |   |   |   |   |       |       |
+///     |   |   |   |   |       |       |
+///     +   +---+   +---+       +-------+  low
 ///
-/// ^       ^       ^       ^       ^  clock cycle
-/// |   1   |   1   |   0   |   0   |  translates as
+///     ^       ^       ^       ^       ^  clock cycle
+///     |   1   |   1   |   0   |   0   |  translates as
 ///
-/// @param device->short_width Width in samples of '1' [us]
-/// @param device->long_width  Width in samples of '0' [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
-/// @param device->tolerance   Maximum deviation from nominal widths [us]
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Width in samples of '1' [us]
+/// - long_width:  Width in samples of '0' [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
+/// - tolerance:   Maximum deviation from nominal widths [us]
 /// @return number of events processed
 int pulse_demod_dmc(const pulse_data_t *pulses, r_device *device);
 
@@ -104,10 +118,12 @@ int pulse_demod_dmc(const pulse_data_t *pulses, r_device *device);
 /// Each level shift is a new bit.
 /// A short interval is a logic 1, a long interval a logic 0
 ///
-/// @param device->short_width Nominal width of a bit [us]
-/// @param device->long_width  Maximum width of a run of bits [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
-/// @param device->tolerance   Maximum deviation from nominal widths [us]
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of a bit [us]
+/// - long_width:  Maximum width of a run of bits [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
+/// - tolerance:   Maximum deviation from nominal widths [us]
 /// @return number of events processed
 int pulse_demod_piwm_raw(const pulse_data_t *pulses, r_device *device);
 
@@ -116,10 +132,12 @@ int pulse_demod_piwm_raw(const pulse_data_t *pulses, r_device *device);
 /// Each level shift is a new bit.
 /// A short interval is a logic 1, a long interval a logic 0
 ///
-/// @param device->short_width Nominal width of '1' [us]
-/// @param device->long_width  Nominal width of '0' [us]
-/// @param device->reset_limit Maximum gap size before End Of Message [us].
-/// @param device->tolerance   Maximum deviation from nominal widths [us]
+/// @param pulses The pulse sequence to demodulate
+/// @param device Modulation parameters of
+/// - short_width: Nominal width of '1' [us]
+/// - long_width:  Nominal width of '0' [us]
+/// - reset_limit: Maximum gap size before End Of Message [us].
+/// - tolerance:   Maximum deviation from nominal widths [us]
 /// @return number of events processed
 int pulse_demod_piwm_dc(const pulse_data_t *pulses, r_device *device);
 
@@ -130,7 +148,9 @@ int pulse_demod_osv1(const pulse_data_t *pulses, r_device *device);
 /// The (optionally "0x" prefixed) hex code is processed into a bitbuffer_t.
 /// Each row is optionally prefixed with a length enclosed in braces "{}" or
 /// separated with a slash "/" character. Whitespace is ignored.
-/// Device params are disregarded.
+///
+/// @param code The pulse sequence to demodulate in text format
+/// @param device Device params are disregarded.
 /// @return number of events processed
 int pulse_demod_string(const char *code, r_device *device);
 

+ 5 - 0
include/pulse_detect.h

@@ -104,12 +104,17 @@ void pulse_detect_free(pulse_detect_t *pulse_detect);
 /// Demodulate On/Off Keying (OOK) and Frequency Shift Keying (FSK) from an envelope signal.
 ///
 /// Function is stateful and can be called with chunks of input data.
+///
+/// @param pulse_detect The pulse_detect instance
 /// @param envelope_data Samples with amplitude envelope of carrier
 /// @param fm_data Samples with frequency offset from center frequency
 /// @param len Number of samples in input buffers
+/// @param level_limit
 /// @param samp_rate Sample rate in samples per second
+/// @param sample_offset
 /// @param[in,out] pulses Will return a pulse_data_t structure
 /// @param[in,out] fsk_pulses Will return a pulse_data_t structure for FSK demodulated data
+/// @param fpdm Index of filter setting to use
 /// @return 0 if all input sample data is processed
 /// @return 1 if OOK package is detected (but all sample data is still not completely processed)
 /// @return 2 if FSK package is detected (but all sample data is still not completely processed)

+ 15 - 20
src/baseband.c

@@ -18,7 +18,7 @@
 
 static uint16_t scaled_squares[256];
 
-/** precalculate lookup table for envelope detection. */
+/// precalculate lookup table for envelope detection.
 static void calc_squares()
 {
     int i;
@@ -26,11 +26,8 @@ static void calc_squares()
         scaled_squares[i] = (127 - i) * (127 - i);
 }
 
-/** This will give a noisy envelope of OOK/ASK signals.
-    Subtract the bias (-128) and get an envelope estimation
-    The output will be written in the input buffer
-    @returns   pointer to the input buffer
-*/
+// This will give a noisy envelope of OOK/ASK signals.
+// Subtract the bias (-128) and get an envelope estimation.
 void envelope_detect(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
 {
     unsigned long i;
@@ -39,10 +36,9 @@ void envelope_detect(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
     }
 }
 
-/** This will give a noisy envelope of OOK/ASK signals.
-    Subtracts the bias (-128) and calculates the norm (scaled by 16384).
-    Using a LUT is slower for O1 and above.
-*/
+/// This will give a noisy envelope of OOK/ASK signals.
+/// Subtracts the bias (-128) and calculates the norm (scaled by 16384).
+/// Using a LUT is slower for O1 and above.
 void envelope_detect_nolut(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
 {
     unsigned long i;
@@ -53,9 +49,8 @@ void envelope_detect_nolut(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
     }
 }
 
-/** 122/128, 51/128 Magnitude Estimator for CU8 (SIMD has min/max).
-    Note that magnitude emphasizes quiet signals / deemphasizes loud signals.
-*/
+/// 122/128, 51/128 Magnitude Estimator for CU8 (SIMD has min/max).
+/// Note that magnitude emphasizes quiet signals / deemphasizes loud signals.
 void magnitude_est_cu8(uint8_t const *iq_buf, uint16_t *y_buf, uint32_t len)
 {
     unsigned long i;
@@ -114,11 +109,11 @@ void magnitude_true_cs16(int16_t const *iq_buf, uint16_t *y_buf, uint32_t len)
 /** Something that might look like a IIR lowpass filter.
 
     [b,a] = butter(1, Wc) # low pass filter with cutoff pi*Wc radians
-    Q1.15*Q15.0 = Q16.15
-    Q16.15>>1 = Q15.14
-    Q15.14 + Q15.14 + Q15.14 could possibly overflow to 17.14
-    but the b coeffs are small so it wont happen
-    Q15.14>>14 = Q15.0 \o/
+    - Q1.15*Q15.0 = Q16.15
+    - Q16.15>>1 = Q15.14
+    - Q15.14 + Q15.14 + Q15.14 could possibly overflow to 17.14
+    - but the b coeffs are small so it wont happen
+    - Q15.14>>14 = Q15.0
 */
 void baseband_low_pass_filter(uint16_t const *x_buf, int16_t *y_buf, uint32_t len, filter_state_t *state)
 {
@@ -154,7 +149,7 @@ void baseband_low_pass_filter(uint16_t const *x_buf, int16_t *y_buf, uint32_t le
     @param x Denominator (real value of complex vector)
     @return angle in radians (Pi equals INT16_MAX)
 */
-int16_t atan2_int16(int16_t y, int16_t x)
+static int16_t atan2_int16(int16_t y, int16_t x)
 {
     static int32_t const I_PI_4 = INT16_MAX/4;      // M_PI/4
     static int32_t const I_3_PI_4 = 3*INT16_MAX/4;  // 3*M_PI/4
@@ -236,7 +231,7 @@ void baseband_demod_FM(uint8_t const *x_buf, int16_t *y_buf, unsigned long num_s
 #define FIX32(x) ((int)(x * S_CONST32))
 
 /// for evaluation.
-int32_t atan2_int32(int32_t y, int32_t x)
+static int32_t atan2_int32(int32_t y, int32_t x)
 {
     static int64_t const I_PI_4 = INT32_MAX / 4;          // M_PI/4
     static int64_t const I_3_PI_4 = 3ll * INT32_MAX / 4;  // 3*M_PI/4

+ 0 - 1
src/devices/digitech_xc0324.c

@@ -72,7 +72,6 @@ running this decoder with debug level :
 
 static const uint8_t preamble_pattern[1] = {XC0324_DEVICE_STARTBYTE};
 
-/// @param[out] data returns the decoded information as a data_t*
 static int decode_xc0324_message(r_device *decoder, bitbuffer_t *bitbuffer,
         unsigned row, uint16_t bitpos, const int latest_event, data_t **data)
 {

+ 0 - 1
src/pulse_detect_fsk.c

@@ -147,7 +147,6 @@ void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t
 
 /// Wrap up FSK modulation and store last data at End Of Package.
 ///
-/// @param fm_n One single sample of FM data
 /// @param fsk_pulses Pulse_data_t structure for FSK demodulated data
 /// @param s Internal state
 void pulse_FSK_wrap_up(pulse_data_t *fsk_pulses, pulse_FSK_state_t *s)