Changeset b201912


Ignore:
Timestamp:
Apr 11, 2017, 1:49:44 AM (7 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
sampler
Children:
04d0c89
Parents:
fbafd2c (diff), b762f8d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into sampler

Fixed conflicts:

python/lib/gen_external.py
src/io/source_avcodec.c

Files:
4 added
28 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    rfbafd2c rb201912  
     12017-04-10 Paul Brossier <piem@aubio.org>
     2
     3        [Overview]
     4
     5        * VERSION: bump to 0.4.5
     6        * src/io/source_avcodec.c: add support for libswresample
     7        * aubio: new python command line tool to extract information
     8        * src/onset/onset.c: add spectral whitening and compression, improve default
     9        parameters
     10        * this_version.py: use centralized script to get current version, adding git
     11        sha when building from git repo (thanks to MartinHN)
     12
     13        [Interface]
     14
     15        * src/spectral/awhithening.h: add adaptive whitening
     16        * src/{cvec,mathutils,musicutils}.h: add cvec_logmag, fvec_logmag, and fvec_push
     17        * src/onset/onset.h: add aubio_onset_set_default_parameters to load optimal
     18        parameters of each novelty function, _{set,get}_compression and
     19        _{set,get}_awhitening to turn on/off compression and adaptive whitening
     20        * src/spectral/specdesc.h: add weighted phase
     21
     22        [Library]
     23
     24        * src/onset/onset.c: improve default onset parameters (thanks to @superbock
     25        for access to his evaluation database), see commit dccfad2 for more details
     26        * src/pitch/pitch.c: avoid segfault when using invalid parameters
     27        * src/temporal/biquad.c: fix biquad parameters initialization (thanks to
     28        @jurlhardt)
     29
     30        [Tools]
     31
     32        * examples/aubio{onset,track}.c: add options --miditap-note and
     33        --miditap-velo to set which midi note is triggered at onset/beat (thanks to
     34        @tseaver)
     35        * examples/aubioonset.c: show actual parameters in verbose mode
     36        * examples/utils.c: improve memory usage to emit midi notes
     37
     38        [Python]
     39
     40        * python/ext/py-source.c: add with (PEP 343) and iter (PEP 234) interface
     41        * python/ext/py-sink.c: add with interface (PEP 343)
     42        * python/lib/aubio/cmd.py: new `aubio` command line tool
     43        * python/lib/aubio/cut.py: moved from python/scripts/aubiocut
     44
     45        [Documentation]
     46
     47        * doc/*.rst: reorganize and improve sphinx manual
     48        * doc/*.txt: update manpages, add simple manpage for aubio command line
     49        * doc/full.cfg: derive from doc/web.cfg
     50        * README.md: simplify and add contribute information
     51
     52        [Build system]
     53
     54        * wscript: prefer libswresample over libavsamplerate when available, use
     55        current version in manpages, doxygen, and sphinx, update to newest waf
     56        * setup.py: use entry_points console_scripts to generate scripts, use
     57        centralized version from this_version.py, clean up
     58        * python/lib/moresetuptools.py: detect if libswresample is available
     59
    1602017-01-08 Paul Brossier <piem@aubio.org>
    261
  • README.md

    rfbafd2c rb201912  
    33
    44[![Travis build status](https://travis-ci.org/aubio/aubio.svg?branch=master)](https://travis-ci.org/aubio/aubio "Travis build status")
    5 [![Appveyor build status](https://ci.appveyor.com/api/projects/status/f3lhy3a57rkgn5yi?svg=true)](https://ci.appveyor.com/project/piem/aubio "Appveyor build status")
     5[![Appveyor build status](https://img.shields.io/appveyor/ci/piem/aubio/master.svg)](https://ci.appveyor.com/project/piem/aubio "Appveyor build status")
    66[![Landscape code health](https://landscape.io/github/aubio/aubio/master/landscape.svg?style=flat)](https://landscape.io/github/aubio/aubio/master "Landscape code health")
    7 [![Documentation Status](https://readthedocs.org/projects/aubio/badge/?version=latest)](http://aubio.readthedocs.io/en/latest/?badge=latest "Documentation status")
    8 [![Commits since last release](https://img.shields.io/github/commits-since/aubio/aubio/0.4.4.svg?maxAge=2592000)](https://github.com/aubio/aubio "Commits since last release")
     7[![Commits since last release](https://img.shields.io/github/commits-since/aubio/aubio/0.4.5.svg)](https://github.com/aubio/aubio "Commits since last release")
     8
     9[![Documentation](https://readthedocs.org/projects/aubio/badge/?version=latest)](http://aubio.readthedocs.io/en/latest/?badge=latest "Latest documentation")
     10[![DOI](https://zenodo.org/badge/396389.svg)](https://zenodo.org/badge/latestdoi/396389)
    911
    1012aubio is a library to label music and sounds. It listens to audio signals and
     
    2729  - spectral filtering
    2830  - transient/steady-state separation
    29   - sound file and audio devices read and write access
     31  - sound file read and write access
    3032  - various mathematics utilities for music applications
    3133
     
    3638-------------
    3739
    38 A python module to access the library functions is also provided. Please see
    39 the file [`python/README.md`](python/README.md) for more information on how to
    40 use it.
     40A python module for aubio is provided. For more information on how to use it,
     41please see the file [`python/README.md`](python/README.md) and the
     42[manual](https://aubio.org/manual/latest/) .
    4143
    42 Examples tools
    43 --------------
     44Tools
     45-----
    4446
    45 A few simple command line tools are included along with the library:
     47The python module comes with the following command line tools:
     48
     49 - `aubio` extracts informations from sound files
     50 - `aubiocut` slices sound files at onset or beat timestamps
     51
     52Additional command line tools are included along with the library:
    4653
    4754 - `aubioonset` outputs the time stamp of detected note onsets
     
    5360 - `aubioquiet` extracts quiet and loud regions
    5461
    55 Additionally, the python module comes with the following script:
     62Documentation
     63-------------
    5664
    57  - `aubiocut` slices sound files at onset or beat timestamps
     65  - [manual](https://aubio.org/manual/latest/), generated with sphinx
     66  - [developer documentation](https://aubio.org/doc/latest/), generated with Doxygen
    5867
    5968The latest version of the documentation can be found at:
     
    7483    ./setup.py build
    7584
    76 See also the [manual](https://aubio.org/manual/latest/) for more information
    77 about [compiling](https://aubio.org/manual/latest/building.html) and
    78 [installing](https://aubio.org/manual/latest/installing.html).
     85See the [manual](https://aubio.org/manual/latest/) for more information about
     86[installing aubio](https://aubio.org/manual/latest/installing.html).
    7987
    80 Credits and Publications
    81 ------------------------
     88Citation
     89--------
    8290
    83 This library gathers music signal processing algorithms designed at the Centre
    84 for Digital Music and elsewhere. This software project was developed along the
    85 research I did at the Centre for Digital Music, Queen Mary, University of
    86 London. Most of this C code was written by myself, starting from published
    87 papers and existing code. The header files of each algorithm contains brief
    88 descriptions and references to the corresponding papers.
     91Please use the DOI link above to cite this release in your publications. For
     92more information, see also the [about
     93page](https://aubio.org/manual/latest/about.html) in [aubio
     94manual](https://aubio.org/manual/latest/).
    8995
    90 Special thanks go Juan Pablo Bello, Chris Duxbury, Samer Abdallah, Alain de
    91 Cheveigne for their help and publications. Also many thanks to Miguel Ramirez
    92 and Nicolas Wack for their bug fixing.
    93 
    94 Substantial informations about the algorithms and their evaluation are gathered
    95 in:
    96 
    97   - Paul Brossier, _[Automatic annotation of musical audio for interactive
    98     systems](https://aubio.org/phd)_, PhD thesis, Centre for Digital music,
    99 Queen Mary University of London, London, UK, 2006.
    100 
    101 Additional results obtained with this software were discussed in the following
    102 papers:
    103 
    104   - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Real-time temporal
    105     segmentation of note objects in music signals](https://aubio.org/articles/brossier04fastnotes.pdf),
    106 in _Proceedings of the International Computer Music Conference_, 2004, Miami,
    107 Florida, ICMA
    108 
    109   -  P. M. Brossier and J. P. Bello and M. D. Plumbley, [Fast labelling of note
    110      objects in music signals] (https://aubio.org/articles/brossier04fastnotes.pdf),
    111 in _Proceedings of the International Symposium on Music Information Retrieval_,
    112 2004, Barcelona, Spain
    113 
    114 
    115 Contact Info and Mailing List
    116 -----------------------------
     96Homepage
     97--------
    11798
    11899The home page of this project can be found at: https://aubio.org/
    119100
    120 Questions, comments, suggestions, and contributions are welcome. Use the
    121 mailing list: <aubio-user@aubio.org>.
    122 
    123 To subscribe to the list, use the mailman form:
    124 https://lists.aubio.org/listinfo/aubio-user/
    125 
    126 Alternatively, feel free to contact directly the author.
    127 
    128 
    129 Copyright and License Information
    130 ---------------------------------
    131 
    132 Copyright (C) 2003-2016 Paul Brossier <piem@aubio.org>
     101License
     102-------
    133103
    134104aubio is free software: you can redistribute it and/or modify it under the
     
    136106Foundation, either version 3 of the License, or (at your option) any later
    137107version.
     108
     109Contributing
     110------------
     111
     112Patches are welcome: please fork the latest git repository and create a feature
     113branch. Submitted requests should pass all continuous integration tests.
  • VERSION

    rfbafd2c rb201912  
    11AUBIO_MAJOR_VERSION=0
    22AUBIO_MINOR_VERSION=4
    3 AUBIO_PATCH_VERSION=5
     3AUBIO_PATCH_VERSION=6
    44AUBIO_VERSION_STATUS='~alpha'
    55LIBAUBIO_LT_CUR=5
    6 LIBAUBIO_LT_REV=1
    7 LIBAUBIO_LT_AGE=5
     6LIBAUBIO_LT_REV=2
     7LIBAUBIO_LT_AGE=6
  • doc/full.cfg

    rfbafd2c rb201912  
    1 # Doxyfile 1.8.8
    2 
    3 # This file describes the settings to be used by the documentation system
    4 # doxygen (www.doxygen.org) for a project.
    5 #
    6 # All text after a double hash (##) is considered a comment and is placed in
    7 # front of the TAG it is preceding.
    8 #
    9 # All text after a single hash (#) is considered a comment and will be ignored.
    10 # The format is:
    11 # TAG = value [value, ...]
    12 # For lists, items can also be appended using:
    13 # TAG += value [value, ...]
    14 # Values that contain spaces should be placed between quotes (\" \").
    15 
    16 #---------------------------------------------------------------------------
    17 # Project related configuration options
    18 #---------------------------------------------------------------------------
    19 
    20 # This tag specifies the encoding used for all characters in the config file
    21 # that follow. The default is UTF-8 which is also the encoding used for all text
    22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
    23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
    24 # for the list of possible encodings.
    25 # The default value is: UTF-8.
    26 
    27 DOXYFILE_ENCODING      = UTF-8
    28 
    29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
    30 # double-quotes, unless you are using Doxywizard) that should identify the
    31 # project for which the documentation is generated. This name is used in the
    32 # title of most generated pages and in a few other places.
    33 # The default value is: My Project.
    34 
    35 PROJECT_NAME           = aubio
    36 
    37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
    38 # could be handy for archiving the generated documentation or if some version
    39 # control system is used.
    40 
    41 PROJECT_NUMBER         = "0.4.5~alpha"
    42 
    43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
    44 # for a project that appears at the top of each page and should give viewer a
    45 # quick idea about the purpose of the project. Keep the description short.
    46 
    47 PROJECT_BRIEF          =
    48 
    49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
    50 # the documentation. The maximum height of the logo should not exceed 55 pixels
    51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
    52 # to the output directory.
    53 
    54 PROJECT_LOGO           =
    55 
    56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
    57 # into which the generated documentation will be written. If a relative path is
    58 # entered, it will be relative to the location where doxygen was started. If
    59 # left blank the current directory will be used.
     1@INCLUDE_PATH = ./doc
     2@INCLUDE = web.cfg
    603
    614OUTPUT_DIRECTORY       = full
    62 
    63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
    64 # directories (in 2 levels) under the output directory of each output format and
    65 # will distribute the generated files over these directories. Enabling this
    66 # option can be useful when feeding doxygen a huge amount of source files, where
    67 # putting all generated files in the same directory would otherwise causes
    68 # performance problems for the file system.
    69 # The default value is: NO.
    70 
    71 CREATE_SUBDIRS         = NO
    72 
    73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
    74 # characters to appear in the names of generated files. If set to NO, non-ASCII
    75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
    76 # U+3044.
    77 # The default value is: NO.
    78 
    79 ALLOW_UNICODE_NAMES    = NO
    80 
    81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
    82 # documentation generated by doxygen is written. Doxygen will use this
    83 # information to generate all constant output in the proper language.
    84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
    85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
    86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
    87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
    88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
    89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
    90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
    91 # Ukrainian and Vietnamese.
    92 # The default value is: English.
    93 
    94 OUTPUT_LANGUAGE        = English
    95 
    96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
    97 # descriptions after the members that are listed in the file and class
    98 # documentation (similar to Javadoc). Set to NO to disable this.
    99 # The default value is: YES.
    100 
    101 BRIEF_MEMBER_DESC      = YES
    102 
    103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
    104 # description of a member or function before the detailed description
    105 #
    106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
    107 # brief descriptions will be completely suppressed.
    108 # The default value is: YES.
    109 
    110 REPEAT_BRIEF           = YES
    111 
    112 # This tag implements a quasi-intelligent brief description abbreviator that is
    113 # used to form the text in various listings. Each string in this list, if found
    114 # as the leading text of the brief description, will be stripped from the text
    115 # and the result, after processing the whole list, is used as the annotated
    116 # text. Otherwise, the brief description is used as-is. If left blank, the
    117 # following values are used ($name is automatically replaced with the name of
    118 # the entity):The $name class, The $name widget, The $name file, is, provides,
    119 # specifies, contains, represents, a, an and the.
    120 
    121 ABBREVIATE_BRIEF       =
    122 
    123 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
    124 # doxygen will generate a detailed section even if there is only a brief
    125 # description.
    126 # The default value is: NO.
    127 
    128 ALWAYS_DETAILED_SEC    = NO
    129 
    130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
    131 # inherited members of a class in the documentation of that class as if those
    132 # members were ordinary class members. Constructors, destructors and assignment
    133 # operators of the base classes will not be shown.
    134 # The default value is: NO.
    135 
    136 INLINE_INHERITED_MEMB  = NO
    137 
    138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
    139 # before files name in the file list and in the header files. If set to NO the
    140 # shortest path that makes the file name unique will be used
    141 # The default value is: YES.
    142 
    143 FULL_PATH_NAMES        = YES
    144 
    145 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
    146 # Stripping is only done if one of the specified strings matches the left-hand
    147 # part of the path. The tag can be used to show relative paths in the file list.
    148 # If left blank the directory from which doxygen is run is used as the path to
    149 # strip.
    150 #
    151 # Note that you can specify absolute paths here, but also relative paths, which
    152 # will be relative from the directory where doxygen is started.
    153 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
    154 
    155 STRIP_FROM_PATH        = ../src
    156 
    157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
    158 # path mentioned in the documentation of a class, which tells the reader which
    159 # header file to include in order to use a class. If left blank only the name of
    160 # the header file containing the class definition is used. Otherwise one should
    161 # specify the list of include paths that are normally passed to the compiler
    162 # using the -I flag.
    163 
    164 STRIP_FROM_INC_PATH    =
    165 
    166 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
    167 # less readable) file names. This can be useful is your file systems doesn't
    168 # support long names like on DOS, Mac, or CD-ROM.
    169 # The default value is: NO.
    170 
    171 SHORT_NAMES            = NO
    172 
    173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
    174 # first line (until the first dot) of a Javadoc-style comment as the brief
    175 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
    176 # style comments (thus requiring an explicit @brief command for a brief
    177 # description.)
    178 # The default value is: NO.
    179 
    180 JAVADOC_AUTOBRIEF      = YES
    181 
    182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
    183 # line (until the first dot) of a Qt-style comment as the brief description. If
    184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
    185 # requiring an explicit \brief command for a brief description.)
    186 # The default value is: NO.
    187 
    188 QT_AUTOBRIEF           = NO
    189 
    190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
    191 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as
    192 # a brief description. This used to be the default behavior. The new default is
    193 # to treat a multi-line C++ comment block as a detailed description. Set this
    194 # tag to YES if you prefer the old behavior instead.
    195 #
    196 # Note that setting this tag to YES also means that rational rose comments are
    197 # not recognized any more.
    198 # The default value is: NO.
    199 
    200 MULTILINE_CPP_IS_BRIEF = NO
    201 
    202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
    203 # documentation from any documented member that it re-implements.
    204 # The default value is: YES.
    205 
    206 INHERIT_DOCS           = YES
    207 
    208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
    209 # new page for each member. If set to NO, the documentation of a member will be
    210 # part of the file/class/namespace that contains it.
    211 # The default value is: NO.
    212 
    213 SEPARATE_MEMBER_PAGES  = NO
    214 
    215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
    216 # uses this value to replace tabs by spaces in code fragments.
    217 # Minimum value: 1, maximum value: 16, default value: 4.
    218 
    219 TAB_SIZE               = 4
    220 
    221 # This tag can be used to specify a number of aliases that act as commands in
    222 # the documentation. An alias has the form:
    223 # name=value
    224 # For example adding
    225 # "sideeffect=@par Side Effects:\n"
    226 # will allow you to put the command \sideeffect (or @sideeffect) in the
    227 # documentation, which will result in a user-defined paragraph with heading
    228 # "Side Effects:". You can put \n's in the value part of an alias to insert
    229 # newlines.
    230 
    231 ALIASES                =
    232 
    233 # This tag can be used to specify a number of word-keyword mappings (TCL only).
    234 # A mapping has the form "name=value". For example adding "class=itcl::class"
    235 # will allow you to use the command class in the itcl::class meaning.
    236 
    237 TCL_SUBST              =
    238 
    239 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
    240 # only. Doxygen will then generate output that is more tailored for C. For
    241 # instance, some of the names that are used will be different. The list of all
    242 # members will be omitted, etc.
    243 # The default value is: NO.
    244 
    245 OPTIMIZE_OUTPUT_FOR_C  = YES
    246 
    247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
    248 # Python sources only. Doxygen will then generate output that is more tailored
    249 # for that language. For instance, namespaces will be presented as packages,
    250 # qualified scopes will look different, etc.
    251 # The default value is: NO.
    252 
    253 OPTIMIZE_OUTPUT_JAVA   = NO
    254 
    255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
    256 # sources. Doxygen will then generate output that is tailored for Fortran.
    257 # The default value is: NO.
    258 
    259 OPTIMIZE_FOR_FORTRAN   = NO
    260 
    261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
    262 # sources. Doxygen will then generate output that is tailored for VHDL.
    263 # The default value is: NO.
    264 
    265 OPTIMIZE_OUTPUT_VHDL   = NO
    266 
    267 # Doxygen selects the parser to use depending on the extension of the files it
    268 # parses. With this tag you can assign which parser to use for a given
    269 # extension. Doxygen has a built-in mapping, but you can override or extend it
    270 # using this tag. The format is ext=language, where ext is a file extension, and
    271 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
    272 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
    273 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
    274 # Fortran. In the later case the parser tries to guess whether the code is fixed
    275 # or free formatted code, this is the default for Fortran type files), VHDL. For
    276 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
    277 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
    278 #
    279 # Note For files without extension you can use no_extension as a placeholder.
    280 #
    281 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
    282 # the files are not read by doxygen.
    283 
    284 EXTENSION_MAPPING      =
    285 
    286 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
    287 # according to the Markdown format, which allows for more readable
    288 # documentation. See http://daringfireball.net/projects/markdown/ for details.
    289 # The output of markdown processing is further processed by doxygen, so you can
    290 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
    291 # case of backward compatibilities issues.
    292 # The default value is: YES.
    293 
    294 MARKDOWN_SUPPORT       = YES
    295 
    296 # When enabled doxygen tries to link words that correspond to documented
    297 # classes, or namespaces to their corresponding documentation. Such a link can
    298 # be prevented in individual cases by by putting a % sign in front of the word
    299 # or globally by setting AUTOLINK_SUPPORT to NO.
    300 # The default value is: YES.
    301 
    302 AUTOLINK_SUPPORT       = YES
    303 
    304 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
    305 # to include (a tag file for) the STL sources as input, then you should set this
    306 # tag to YES in order to let doxygen match functions declarations and
    307 # definitions whose arguments contain STL classes (e.g. func(std::string);
    308 # versus func(std::string) {}). This also make the inheritance and collaboration
    309 # diagrams that involve STL classes more complete and accurate.
    310 # The default value is: NO.
    311 
    312 BUILTIN_STL_SUPPORT    = NO
    313 
    314 # If you use Microsoft's C++/CLI language, you should set this option to YES to
    315 # enable parsing support.
    316 # The default value is: NO.
    317 
    318 CPP_CLI_SUPPORT        = NO
    319 
    320 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
    321 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
    322 # will parse them like normal C++ but will assume all classes use public instead
    323 # of private inheritance when no explicit protection keyword is present.
    324 # The default value is: NO.
    325 
    326 SIP_SUPPORT            = NO
    327 
    328 # For Microsoft's IDL there are propget and propput attributes to indicate
    329 # getter and setter methods for a property. Setting this option to YES will make
    330 # doxygen to replace the get and set methods by a property in the documentation.
    331 # This will only work if the methods are indeed getting or setting a simple
    332 # type. If this is not the case, or you want to show the methods anyway, you
    333 # should set this option to NO.
    334 # The default value is: YES.
    335 
    336 IDL_PROPERTY_SUPPORT   = YES
    337 
    338 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
    339 # tag is set to YES, then doxygen will reuse the documentation of the first
    340 # member in the group (if any) for the other members of the group. By default
    341 # all members of a group must be documented explicitly.
    342 # The default value is: NO.
    343 
    344 DISTRIBUTE_GROUP_DOC   = NO
    345 
    346 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
    347 # (for instance a group of public functions) to be put as a subgroup of that
    348 # type (e.g. under the Public Functions section). Set it to NO to prevent
    349 # subgrouping. Alternatively, this can be done per class using the
    350 # \nosubgrouping command.
    351 # The default value is: YES.
    352 
    353 SUBGROUPING            = YES
    354 
    355 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
    356 # are shown inside the group in which they are included (e.g. using \ingroup)
    357 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
    358 # and RTF).
    359 #
    360 # Note that this feature does not work in combination with
    361 # SEPARATE_MEMBER_PAGES.
    362 # The default value is: NO.
    363 
    364 INLINE_GROUPED_CLASSES = NO
    365 
    366 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
    367 # with only public data fields or simple typedef fields will be shown inline in
    368 # the documentation of the scope in which they are defined (i.e. file,
    369 # namespace, or group documentation), provided this scope is documented. If set
    370 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
    371 # Man pages) or section (for LaTeX and RTF).
    372 # The default value is: NO.
    373 
    374 INLINE_SIMPLE_STRUCTS  = NO
    375 
    376 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
    377 # enum is documented as struct, union, or enum with the name of the typedef. So
    378 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
    379 # with name TypeT. When disabled the typedef will appear as a member of a file,
    380 # namespace, or class. And the struct will be named TypeS. This can typically be
    381 # useful for C code in case the coding convention dictates that all compound
    382 # types are typedef'ed and only the typedef is referenced, never the tag name.
    383 # The default value is: NO.
    384 
    385 TYPEDEF_HIDES_STRUCT   = NO
    386 
    387 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
    388 # cache is used to resolve symbols given their name and scope. Since this can be
    389 # an expensive process and often the same symbol appears multiple times in the
    390 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
    391 # doxygen will become slower. If the cache is too large, memory is wasted. The
    392 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
    393 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
    394 # symbols. At the end of a run doxygen will report the cache usage and suggest
    395 # the optimal cache size from a speed point of view.
    396 # Minimum value: 0, maximum value: 9, default value: 0.
    397 
    398 LOOKUP_CACHE_SIZE      = 0
    399 
    400 #---------------------------------------------------------------------------
    401 # Build related configuration options
    402 #---------------------------------------------------------------------------
    403 
    404 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
    405 # documentation are documented, even if no documentation was available. Private
    406 # class members and static file members will be hidden unless the
    407 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
    408 # Note: This will also disable the warnings about undocumented members that are
    409 # normally produced when WARNINGS is set to YES.
    410 # The default value is: NO.
    411 
    4125EXTRACT_ALL            = YES
    413 
    414 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
    415 # be included in the documentation.
    416 # The default value is: NO.
    417 
    4186EXTRACT_PRIVATE        = YES
    419 
    420 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
    421 # scope will be included in the documentation.
    422 # The default value is: NO.
    423 
    424 EXTRACT_PACKAGE        = NO
    425 
    426 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
    427 # included in the documentation.
    428 # The default value is: NO.
    429 
    4307EXTRACT_STATIC         = YES
    431 
    432 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
    433 # locally in source files will be included in the documentation. If set to NO
    434 # only classes defined in header files are included. Does not have any effect
    435 # for Java sources.
    436 # The default value is: YES.
    437 
    438 EXTRACT_LOCAL_CLASSES  = YES
    439 
    440 # This flag is only useful for Objective-C code. When set to YES local methods,
    441 # which are defined in the implementation section but not in the interface are
    442 # included in the documentation. If set to NO only methods in the interface are
    443 # included.
    444 # The default value is: NO.
    445 
    446 EXTRACT_LOCAL_METHODS  = NO
    447 
    448 # If this flag is set to YES, the members of anonymous namespaces will be
    449 # extracted and appear in the documentation as a namespace called
    450 # 'anonymous_namespace{file}', where file will be replaced with the base name of
    451 # the file that contains the anonymous namespace. By default anonymous namespace
    452 # are hidden.
    453 # The default value is: NO.
    454 
    455 EXTRACT_ANON_NSPACES   = NO
    456 
    457 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
    458 # undocumented members inside documented classes or files. If set to NO these
    459 # members will be included in the various overviews, but no documentation
    460 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
    461 # The default value is: NO.
    462 
    463 HIDE_UNDOC_MEMBERS     = NO
    464 
    465 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
    466 # undocumented classes that are normally visible in the class hierarchy. If set
    467 # to NO these classes will be included in the various overviews. This option has
    468 # no effect if EXTRACT_ALL is enabled.
    469 # The default value is: NO.
    470 
    471 HIDE_UNDOC_CLASSES     = NO
    472 
    473 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
    474 # (class|struct|union) declarations. If set to NO these declarations will be
    475 # included in the documentation.
    476 # The default value is: NO.
    477 
    478 HIDE_FRIEND_COMPOUNDS  = NO
    479 
    480 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
    481 # documentation blocks found inside the body of a function. If set to NO these
    482 # blocks will be appended to the function's detailed documentation block.
    483 # The default value is: NO.
    484 
    485 HIDE_IN_BODY_DOCS      = NO
    486 
    487 # The INTERNAL_DOCS tag determines if documentation that is typed after a
    488 # \internal command is included. If the tag is set to NO then the documentation
    489 # will be excluded. Set it to YES to include the internal documentation.
    490 # The default value is: NO.
    491 
    492 INTERNAL_DOCS          = NO
    493 
    494 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
    495 # names in lower-case letters. If set to YES upper-case letters are also
    496 # allowed. This is useful if you have classes or files whose names only differ
    497 # in case and if your file system supports case sensitive file names. Windows
    498 # and Mac users are advised to set this option to NO.
    499 # The default value is: system dependent.
    500 
    501 CASE_SENSE_NAMES       = NO
    502 
    503 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
    504 # their full class and namespace scopes in the documentation. If set to YES the
    505 # scope will be hidden.
    506 # The default value is: NO.
    507 
    508 HIDE_SCOPE_NAMES       = NO
    509 
    510 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
    511 # the files that are included by a file in the documentation of that file.
    512 # The default value is: YES.
    513 
    514 SHOW_INCLUDE_FILES     = YES
    515 
    516 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
    517 # grouped member an include statement to the documentation, telling the reader
    518 # which file to include in order to use the member.
    519 # The default value is: NO.
    520 
    521 SHOW_GROUPED_MEMB_INC  = NO
    522 
    523 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
    524 # files with double quotes in the documentation rather than with sharp brackets.
    525 # The default value is: NO.
    526 
    527 FORCE_LOCAL_INCLUDES   = NO
    528 
    529 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
    530 # documentation for inline members.
    531 # The default value is: YES.
    532 
    533 INLINE_INFO            = YES
    534 
    535 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
    536 # (detailed) documentation of file and class members alphabetically by member
    537 # name. If set to NO the members will appear in declaration order.
    538 # The default value is: YES.
    539 
    540 SORT_MEMBER_DOCS       = YES
    541 
    542 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
    543 # descriptions of file, namespace and class members alphabetically by member
    544 # name. If set to NO the members will appear in declaration order. Note that
    545 # this will also influence the order of the classes in the class list.
    546 # The default value is: NO.
    547 
    548 SORT_BRIEF_DOCS        = NO
    549 
    550 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
    551 # (brief and detailed) documentation of class members so that constructors and
    552 # destructors are listed first. If set to NO the constructors will appear in the
    553 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
    554 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
    555 # member documentation.
    556 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
    557 # detailed member documentation.
    558 # The default value is: NO.
    559 
    560 SORT_MEMBERS_CTORS_1ST = NO
    561 
    562 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
    563 # of group names into alphabetical order. If set to NO the group names will
    564 # appear in their defined order.
    565 # The default value is: NO.
    566 
    567 SORT_GROUP_NAMES       = NO
    568 
    569 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
    570 # fully-qualified names, including namespaces. If set to NO, the class list will
    571 # be sorted only by class name, not including the namespace part.
    572 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
    573 # Note: This option applies only to the class list, not to the alphabetical
    574 # list.
    575 # The default value is: NO.
    576 
    577 SORT_BY_SCOPE_NAME     = NO
    578 
    579 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
    580 # type resolution of all parameters of a function it will reject a match between
    581 # the prototype and the implementation of a member function even if there is
    582 # only one candidate or it is obvious which candidate to choose by doing a
    583 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
    584 # accept a match between prototype and implementation in such cases.
    585 # The default value is: NO.
    586 
    587 STRICT_PROTO_MATCHING  = NO
    588 
    589 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
    590 # todo list. This list is created by putting \todo commands in the
    591 # documentation.
    592 # The default value is: YES.
    593 
    594 GENERATE_TODOLIST      = YES
    595 
    596 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
    597 # test list. This list is created by putting \test commands in the
    598 # documentation.
    599 # The default value is: YES.
    600 
    601 GENERATE_TESTLIST      = YES
    602 
    603 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
    604 # list. This list is created by putting \bug commands in the documentation.
    605 # The default value is: YES.
    606 
    607 GENERATE_BUGLIST       = YES
    608 
    609 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
    610 # the deprecated list. This list is created by putting \deprecated commands in
    611 # the documentation.
    612 # The default value is: YES.
    613 
    614 GENERATE_DEPRECATEDLIST= YES
    615 
    616 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
    617 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
    618 # ... \endcond blocks.
    619 
    620 ENABLED_SECTIONS       =
    621 
    622 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
    623 # initial value of a variable or macro / define can have for it to appear in the
    624 # documentation. If the initializer consists of more lines than specified here
    625 # it will be hidden. Use a value of 0 to hide initializers completely. The
    626 # appearance of the value of individual variables and macros / defines can be
    627 # controlled using \showinitializer or \hideinitializer command in the
    628 # documentation regardless of this setting.
    629 # Minimum value: 0, maximum value: 10000, default value: 30.
    630 
    631 MAX_INITIALIZER_LINES  = 30
    632 
    633 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
    634 # the bottom of the documentation of classes and structs. If set to YES the list
    635 # will mention the files that were used to generate the documentation.
    636 # The default value is: YES.
    637 
    638 SHOW_USED_FILES        = YES
    639 
    640 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
    641 # will remove the Files entry from the Quick Index and from the Folder Tree View
    642 # (if specified).
    643 # The default value is: YES.
    644 
    645 SHOW_FILES             = YES
    646 
    647 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
    648 # page. This will remove the Namespaces entry from the Quick Index and from the
    649 # Folder Tree View (if specified).
    650 # The default value is: YES.
    651 
    652 SHOW_NAMESPACES        = YES
    653 
    654 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
    655 # doxygen should invoke to get the current version for each file (typically from
    656 # the version control system). Doxygen will invoke the program by executing (via
    657 # popen()) the command command input-file, where command is the value of the
    658 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
    659 # by doxygen. Whatever the program writes to standard output is used as the file
    660 # version. For an example see the documentation.
    661 
    662 FILE_VERSION_FILTER    =
    663 
    664 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
    665 # by doxygen. The layout file controls the global structure of the generated
    666 # output files in an output format independent way. To create the layout file
    667 # that represents doxygen's defaults, run doxygen with the -l option. You can
    668 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
    669 # will be used as the name of the layout file.
    670 #
    671 # Note that if you run doxygen from a directory containing a file called
    672 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
    673 # tag is left empty.
    674 
    675 LAYOUT_FILE            =
    676 
    677 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
    678 # the reference definitions. This must be a list of .bib files. The .bib
    679 # extension is automatically appended if omitted. This requires the bibtex tool
    680 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
    681 # For LaTeX the style of the bibliography can be controlled using
    682 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
    683 # search path. See also \cite for info how to create references.
    684 
    685 CITE_BIB_FILES         =
    686 
    687 #---------------------------------------------------------------------------
    688 # Configuration options related to warning and progress messages
    689 #---------------------------------------------------------------------------
    690 
    691 # The QUIET tag can be used to turn on/off the messages that are generated to
    692 # standard output by doxygen. If QUIET is set to YES this implies that the
    693 # messages are off.
    694 # The default value is: NO.
    695 
    696 QUIET                  = NO
    697 
    698 # The WARNINGS tag can be used to turn on/off the warning messages that are
    699 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
    700 # this implies that the warnings are on.
    701 #
    702 # Tip: Turn warnings on while writing the documentation.
    703 # The default value is: YES.
    704 
    705 WARNINGS               = YES
    706 
    707 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
    708 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
    709 # will automatically be disabled.
    710 # The default value is: YES.
    711 
    712 WARN_IF_UNDOCUMENTED   = YES
    713 
    714 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
    715 # potential errors in the documentation, such as not documenting some parameters
    716 # in a documented function, or documenting parameters that don't exist or using
    717 # markup commands wrongly.
    718 # The default value is: YES.
    719 
    720 WARN_IF_DOC_ERROR      = YES
    721 
    722 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
    723 # are documented, but have no documentation for their parameters or return
    724 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
    725 # documentation, but not about the absence of documentation.
    726 # The default value is: NO.
    727 
    728 WARN_NO_PARAMDOC       = NO
    729 
    730 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
    731 # can produce. The string should contain the $file, $line, and $text tags, which
    732 # will be replaced by the file and line number from which the warning originated
    733 # and the warning text. Optionally the format may contain $version, which will
    734 # be replaced by the version of the file (if it could be obtained via
    735 # FILE_VERSION_FILTER)
    736 # The default value is: $file:$line: $text.
    737 
    738 WARN_FORMAT            = "$file:$line: $text"
    739 
    740 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
    741 # messages should be written. If left blank the output is written to standard
    742 # error (stderr).
    743 
    744 WARN_LOGFILE           =
    745 
    746 #---------------------------------------------------------------------------
    747 # Configuration options related to the input files
    748 #---------------------------------------------------------------------------
    749 
    750 # The INPUT tag is used to specify the files and/or directories that contain
    751 # documented source files. You may enter file names like myfile.cpp or
    752 # directories like /usr/src/myproject. Separate the files or directories with
    753 # spaces.
    754 # Note: If this tag is empty the current directory is searched.
    755 
    756 INPUT                  = ../src
    757 
    758 # This tag can be used to specify the character encoding of the source files
    759 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
    760 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
    761 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
    762 # possible encodings.
    763 # The default value is: UTF-8.
    764 
    765 INPUT_ENCODING         = UTF-8
    766 
    767 # If the value of the INPUT tag contains directories, you can use the
    768 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
    769 # *.h) to filter out the source-files in the directories. If left blank the
    770 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
    771 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
    772 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
    773 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
    774 # *.qsf, *.as and *.js.
    775 
    776 FILE_PATTERNS          = *.h \
    777                          *.c
    778 
    779 # The RECURSIVE tag can be used to specify whether or not subdirectories should
    780 # be searched for input files as well.
    781 # The default value is: NO.
    782 
    783 RECURSIVE              = YES
    784 
    785 # The EXCLUDE tag can be used to specify files and/or directories that should be
    786 # excluded from the INPUT source files. This way you can easily exclude a
    787 # subdirectory from a directory tree whose root is specified with the INPUT tag.
    788 #
    789 # Note that relative paths are relative to the directory from which doxygen is
    790 # run.
    791 
     8FILE_PATTERNS          = *.h *.c
    7929EXCLUDE                =
    793 
    794 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
    795 # directories that are symbolic links (a Unix file system feature) are excluded
    796 # from the input.
    797 # The default value is: NO.
    798 
    799 EXCLUDE_SYMLINKS       = NO
    800 
    801 # If the value of the INPUT tag contains directories, you can use the
    802 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
    803 # certain files from those directories.
    804 #
    805 # Note that the wildcards are matched against the file with absolute path, so to
    806 # exclude all test directories for example use the pattern */test/*
    807 
    808 EXCLUDE_PATTERNS       =
    809 
    810 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
    811 # (namespaces, classes, functions, etc.) that should be excluded from the
    812 # output. The symbol name can be a fully qualified name, a word, or if the
    813 # wildcard * is used, a substring. Examples: ANamespace, AClass,
    814 # AClass::ANamespace, ANamespace::*Test
    815 #
    816 # Note that the wildcards are matched against the file with absolute path, so to
    817 # exclude all test directories use the pattern */test/*
    818 
    819 EXCLUDE_SYMBOLS        =
    820 
    821 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
    822 # that contain example code fragments that are included (see the \include
    823 # command).
    824 
    825 EXAMPLE_PATH           = ../examples \
    826                          ../tests/src
    827 
    828 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
    829 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
    830 # *.h) to filter out the source-files in the directories. If left blank all
    831 # files are included.
    832 
    833 EXAMPLE_PATTERNS       =
    834 
    835 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
    836 # searched for input files to be used with the \include or \dontinclude commands
    837 # irrespective of the value of the RECURSIVE tag.
    838 # The default value is: NO.
    839 
    840 EXAMPLE_RECURSIVE      = NO
    841 
    842 # The IMAGE_PATH tag can be used to specify one or more files or directories
    843 # that contain images that are to be included in the documentation (see the
    844 # \image command).
    845 
    846 IMAGE_PATH             =
    847 
    848 # The INPUT_FILTER tag can be used to specify a program that doxygen should
    849 # invoke to filter for each input file. Doxygen will invoke the filter program
    850 # by executing (via popen()) the command:
    851 #
    852 # <filter> <input-file>
    853 #
    854 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
    855 # name of an input file. Doxygen will then use the output that the filter
    856 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
    857 # will be ignored.
    858 #
    859 # Note that the filter must not add or remove lines; it is applied before the
    860 # code is scanned, but not when the output code is generated. If lines are added
    861 # or removed, the anchors will not be placed correctly.
    862 
    863 INPUT_FILTER           =
    864 
    865 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
    866 # basis. Doxygen will compare the file name with each pattern and apply the
    867 # filter if there is a match. The filters are a list of the form: pattern=filter
    868 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
    869 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
    870 # patterns match the file name, INPUT_FILTER is applied.
    871 
    872 FILTER_PATTERNS        =
    873 
    874 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
    875 # INPUT_FILTER ) will also be used to filter the input files that are used for
    876 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
    877 # The default value is: NO.
    878 
    879 FILTER_SOURCE_FILES    = NO
    880 
    881 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
    882 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
    883 # it is also possible to disable source filtering for a specific pattern using
    884 # *.ext= (so without naming a filter).
    885 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
    886 
    887 FILTER_SOURCE_PATTERNS =
    888 
    889 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
    890 # is part of the input, its contents will be placed on the main page
    891 # (index.html). This can be useful if you have a project on for instance GitHub
    892 # and want to reuse the introduction page also for the doxygen output.
    893 
    894 USE_MDFILE_AS_MAINPAGE =
    895 
    896 #---------------------------------------------------------------------------
    897 # Configuration options related to source browsing
    898 #---------------------------------------------------------------------------
    899 
    900 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
    901 # generated. Documented entities will be cross-referenced with these sources.
    902 #
    903 # Note: To get rid of all source code in the generated output, make sure that
    904 # also VERBATIM_HEADERS is set to NO.
    905 # The default value is: NO.
    906 
    907 SOURCE_BROWSER         = YES
    908 
    909 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
    910 # classes and enums directly into the documentation.
    911 # The default value is: NO.
    912 
    913 INLINE_SOURCES         = NO
    914 
    915 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
    916 # special comment blocks from generated source code fragments. Normal C, C++ and
    917 # Fortran comments will always remain visible.
    918 # The default value is: YES.
    919 
    920 STRIP_CODE_COMMENTS    = NO
    921 
    922 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
    923 # function all documented functions referencing it will be listed.
    924 # The default value is: NO.
    925 
    926 REFERENCED_BY_RELATION = YES
    927 
    928 # If the REFERENCES_RELATION tag is set to YES then for each documented function
    929 # all documented entities called/used by that function will be listed.
    930 # The default value is: NO.
    931 
    932 REFERENCES_RELATION    = YES
    933 
    934 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
    935 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
    936 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
    937 # link to the documentation.
    938 # The default value is: YES.
    939 
    940 REFERENCES_LINK_SOURCE = YES
    941 
    942 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
    943 # source code will show a tooltip with additional information such as prototype,
    944 # brief description and links to the definition and documentation. Since this
    945 # will make the HTML file larger and loading of large files a bit slower, you
    946 # can opt to disable this feature.
    947 # The default value is: YES.
    948 # This tag requires that the tag SOURCE_BROWSER is set to YES.
    949 
    950 SOURCE_TOOLTIPS        = YES
    951 
    952 # If the USE_HTAGS tag is set to YES then the references to source code will
    953 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
    954 # source browser. The htags tool is part of GNU's global source tagging system
    955 # (see http://www.gnu.org/software/global/global.html). You will need version
    956 # 4.8.6 or higher.
    957 #
    958 # To use it do the following:
    959 # - Install the latest version of global
    960 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
    961 # - Make sure the INPUT points to the root of the source tree
    962 # - Run doxygen as normal
    963 #
    964 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
    965 # tools must be available from the command line (i.e. in the search path).
    966 #
    967 # The result: instead of the source browser generated by doxygen, the links to
    968 # source code will now point to the output of htags.
    969 # The default value is: NO.
    970 # This tag requires that the tag SOURCE_BROWSER is set to YES.
    971 
    972 USE_HTAGS              = NO
    973 
    974 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
    975 # verbatim copy of the header file for each class for which an include is
    976 # specified. Set to NO to disable this.
    977 # See also: Section \class.
    978 # The default value is: YES.
    979 
    980 VERBATIM_HEADERS       = YES
    981 
    982 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
    983 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
    984 # cost of reduced performance. This can be particularly helpful with template
    985 # rich C++ code for which doxygen's built-in parser lacks the necessary type
    986 # information.
    987 # Note: The availability of this option depends on whether or not doxygen was
    988 # compiled with the --with-libclang option.
    989 # The default value is: NO.
    990 
    991 CLANG_ASSISTED_PARSING = NO
    992 
    993 # If clang assisted parsing is enabled you can provide the compiler with command
    994 # line options that you would normally use when invoking the compiler. Note that
    995 # the include paths will already be set by doxygen for the files and directories
    996 # specified with INPUT and INCLUDE_PATH.
    997 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
    998 
    999 CLANG_OPTIONS          =
    1000 
    1001 #---------------------------------------------------------------------------
    1002 # Configuration options related to the alphabetical class index
    1003 #---------------------------------------------------------------------------
    1004 
    1005 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
    1006 # compounds will be generated. Enable this if the project contains a lot of
    1007 # classes, structs, unions or interfaces.
    1008 # The default value is: YES.
    1009 
    1010 ALPHABETICAL_INDEX     = NO
    1011 
    1012 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
    1013 # which the alphabetical index list will be split.
    1014 # Minimum value: 1, maximum value: 20, default value: 5.
    1015 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
    1016 
    1017 COLS_IN_ALPHA_INDEX    = 5
    1018 
    1019 # In case all classes in a project start with a common prefix, all classes will
    1020 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
    1021 # can be used to specify a prefix (or a list of prefixes) that should be ignored
    1022 # while generating the index headers.
    1023 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
    1024 
    1025 IGNORE_PREFIX          =
    1026 
    1027 #---------------------------------------------------------------------------
    1028 # Configuration options related to the HTML output
    1029 #---------------------------------------------------------------------------
    1030 
    1031 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
    1032 # The default value is: YES.
    1033 
    1034 GENERATE_HTML          = YES
    1035 
    1036 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
    1037 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1038 # it.
    1039 # The default directory is: html.
    1040 # This tag requires that the tag GENERATE_HTML is set to YES.
    1041 
    1042 HTML_OUTPUT            = html
    1043 
    1044 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
    1045 # generated HTML page (for example: .htm, .php, .asp).
    1046 # The default value is: .html.
    1047 # This tag requires that the tag GENERATE_HTML is set to YES.
    1048 
    1049 HTML_FILE_EXTENSION    = .html
    1050 
    1051 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
    1052 # each generated HTML page. If the tag is left blank doxygen will generate a
    1053 # standard header.
    1054 #
    1055 # To get valid HTML the header file that includes any scripts and style sheets
    1056 # that doxygen needs, which is dependent on the configuration options used (e.g.
    1057 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
    1058 # default header using
    1059 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
    1060 # YourConfigFile
    1061 # and then modify the file new_header.html. See also section "Doxygen usage"
    1062 # for information on how to generate the default header that doxygen normally
    1063 # uses.
    1064 # Note: The header is subject to change so you typically have to regenerate the
    1065 # default header when upgrading to a newer version of doxygen. For a description
    1066 # of the possible markers and block names see the documentation.
    1067 # This tag requires that the tag GENERATE_HTML is set to YES.
    1068 
    1069 HTML_HEADER            =
    1070 
    1071 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
    1072 # generated HTML page. If the tag is left blank doxygen will generate a standard
    1073 # footer. See HTML_HEADER for more information on how to generate a default
    1074 # footer and what special commands can be used inside the footer. See also
    1075 # section "Doxygen usage" for information on how to generate the default footer
    1076 # that doxygen normally uses.
    1077 # This tag requires that the tag GENERATE_HTML is set to YES.
    1078 
    1079 HTML_FOOTER            =
    1080 
    1081 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
    1082 # sheet that is used by each HTML page. It can be used to fine-tune the look of
    1083 # the HTML output. If left blank doxygen will generate a default style sheet.
    1084 # See also section "Doxygen usage" for information on how to generate the style
    1085 # sheet that doxygen normally uses.
    1086 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
    1087 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
    1088 # obsolete.
    1089 # This tag requires that the tag GENERATE_HTML is set to YES.
    1090 
    1091 HTML_STYLESHEET        =
    1092 
    1093 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
    1094 # cascading style sheets that are included after the standard style sheets
    1095 # created by doxygen. Using this option one can overrule certain style aspects.
    1096 # This is preferred over using HTML_STYLESHEET since it does not replace the
    1097 # standard style sheet and is therefor more robust against future updates.
    1098 # Doxygen will copy the style sheet files to the output directory.
    1099 # Note: The order of the extra stylesheet files is of importance (e.g. the last
    1100 # stylesheet in the list overrules the setting of the previous ones in the
    1101 # list). For an example see the documentation.
    1102 # This tag requires that the tag GENERATE_HTML is set to YES.
    1103 
    1104 HTML_EXTRA_STYLESHEET  =
    1105 
    1106 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
    1107 # other source files which should be copied to the HTML output directory. Note
    1108 # that these files will be copied to the base HTML output directory. Use the
    1109 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
    1110 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
    1111 # files will be copied as-is; there are no commands or markers available.
    1112 # This tag requires that the tag GENERATE_HTML is set to YES.
    1113 
    1114 HTML_EXTRA_FILES       =
    1115 
    1116 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
    1117 # will adjust the colors in the stylesheet and background images according to
    1118 # this color. Hue is specified as an angle on a colorwheel, see
    1119 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
    1120 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
    1121 # purple, and 360 is red again.
    1122 # Minimum value: 0, maximum value: 359, default value: 220.
    1123 # This tag requires that the tag GENERATE_HTML is set to YES.
    1124 
    1125 HTML_COLORSTYLE_HUE    = 220
    1126 
    1127 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
    1128 # in the HTML output. For a value of 0 the output will use grayscales only. A
    1129 # value of 255 will produce the most vivid colors.
    1130 # Minimum value: 0, maximum value: 255, default value: 100.
    1131 # This tag requires that the tag GENERATE_HTML is set to YES.
    1132 
    1133 HTML_COLORSTYLE_SAT    = 100
    1134 
    1135 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
    1136 # luminance component of the colors in the HTML output. Values below 100
    1137 # gradually make the output lighter, whereas values above 100 make the output
    1138 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
    1139 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
    1140 # change the gamma.
    1141 # Minimum value: 40, maximum value: 240, default value: 80.
    1142 # This tag requires that the tag GENERATE_HTML is set to YES.
    1143 
    1144 HTML_COLORSTYLE_GAMMA  = 80
    1145 
    1146 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
    1147 # page will contain the date and time when the page was generated. Setting this
    1148 # to NO can help when comparing the output of multiple runs.
    1149 # The default value is: YES.
    1150 # This tag requires that the tag GENERATE_HTML is set to YES.
    1151 
    1152 HTML_TIMESTAMP         = NO
    1153 
    1154 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
    1155 # documentation will contain sections that can be hidden and shown after the
    1156 # page has loaded.
    1157 # The default value is: NO.
    1158 # This tag requires that the tag GENERATE_HTML is set to YES.
    1159 
    1160 HTML_DYNAMIC_SECTIONS  = NO
    1161 
    1162 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
    1163 # shown in the various tree structured indices initially; the user can expand
    1164 # and collapse entries dynamically later on. Doxygen will expand the tree to
    1165 # such a level that at most the specified number of entries are visible (unless
    1166 # a fully collapsed tree already exceeds this amount). So setting the number of
    1167 # entries 1 will produce a full collapsed tree by default. 0 is a special value
    1168 # representing an infinite number of entries and will result in a full expanded
    1169 # tree by default.
    1170 # Minimum value: 0, maximum value: 9999, default value: 100.
    1171 # This tag requires that the tag GENERATE_HTML is set to YES.
    1172 
    1173 HTML_INDEX_NUM_ENTRIES = 100
    1174 
    1175 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
    1176 # generated that can be used as input for Apple's Xcode 3 integrated development
    1177 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
    1178 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
    1179 # Makefile in the HTML output directory. Running make will produce the docset in
    1180 # that directory and running make install will install the docset in
    1181 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
    1182 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
    1183 # for more information.
    1184 # The default value is: NO.
    1185 # This tag requires that the tag GENERATE_HTML is set to YES.
    1186 
    1187 GENERATE_DOCSET        = NO
    1188 
    1189 # This tag determines the name of the docset feed. A documentation feed provides
    1190 # an umbrella under which multiple documentation sets from a single provider
    1191 # (such as a company or product suite) can be grouped.
    1192 # The default value is: Doxygen generated docs.
    1193 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1194 
    1195 DOCSET_FEEDNAME        = "Doxygen generated docs"
    1196 
    1197 # This tag specifies a string that should uniquely identify the documentation
    1198 # set bundle. This should be a reverse domain-name style string, e.g.
    1199 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
    1200 # The default value is: org.doxygen.Project.
    1201 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1202 
    1203 DOCSET_BUNDLE_ID       = org.aubio.aubio
    1204 
    1205 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
    1206 # the documentation publisher. This should be a reverse domain-name style
    1207 # string, e.g. com.mycompany.MyDocSet.documentation.
    1208 # The default value is: org.doxygen.Publisher.
    1209 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1210 
    1211 DOCSET_PUBLISHER_ID    = org.aubio.aubio.Maintainer
    1212 
    1213 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
    1214 # The default value is: Publisher.
    1215 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1216 
    1217 DOCSET_PUBLISHER_NAME  = Publisher
    1218 
    1219 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
    1220 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
    1221 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
    1222 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
    1223 # Windows.
    1224 #
    1225 # The HTML Help Workshop contains a compiler that can convert all HTML output
    1226 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
    1227 # files are now used as the Windows 98 help format, and will replace the old
    1228 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
    1229 # HTML files also contain an index, a table of contents, and you can search for
    1230 # words in the documentation. The HTML workshop also contains a viewer for
    1231 # compressed HTML files.
    1232 # The default value is: NO.
    1233 # This tag requires that the tag GENERATE_HTML is set to YES.
    1234 
    1235 GENERATE_HTMLHELP      = NO
    1236 
    1237 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
    1238 # file. You can add a path in front of the file if the result should not be
    1239 # written to the html output directory.
    1240 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1241 
    1242 CHM_FILE               =
    1243 
    1244 # The HHC_LOCATION tag can be used to specify the location (absolute path
    1245 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
    1246 # doxygen will try to run the HTML help compiler on the generated index.hhp.
    1247 # The file has to be specified with full path.
    1248 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1249 
    1250 HHC_LOCATION           =
    1251 
    1252 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
    1253 # YES) or that it should be included in the master .chm file ( NO).
    1254 # The default value is: NO.
    1255 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1256 
    1257 GENERATE_CHI           = NO
    1258 
    1259 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
    1260 # and project file content.
    1261 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1262 
    1263 CHM_INDEX_ENCODING     =
    1264 
    1265 # The BINARY_TOC flag controls whether a binary table of contents is generated (
    1266 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
    1267 # enables the Previous and Next buttons.
    1268 # The default value is: NO.
    1269 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1270 
    1271 BINARY_TOC             = NO
    1272 
    1273 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
    1274 # the table of contents of the HTML help documentation and to the tree view.
    1275 # The default value is: NO.
    1276 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1277 
    1278 TOC_EXPAND             = NO
    1279 
    1280 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
    1281 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
    1282 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
    1283 # (.qch) of the generated HTML documentation.
    1284 # The default value is: NO.
    1285 # This tag requires that the tag GENERATE_HTML is set to YES.
    1286 
    1287 GENERATE_QHP           = NO
    1288 
    1289 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
    1290 # the file name of the resulting .qch file. The path specified is relative to
    1291 # the HTML output folder.
    1292 # This tag requires that the tag GENERATE_QHP is set to YES.
    1293 
    1294 QCH_FILE               =
    1295 
    1296 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
    1297 # Project output. For more information please see Qt Help Project / Namespace
    1298 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
    1299 # The default value is: org.doxygen.Project.
    1300 # This tag requires that the tag GENERATE_QHP is set to YES.
    1301 
    1302 QHP_NAMESPACE          =
    1303 
    1304 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
    1305 # Help Project output. For more information please see Qt Help Project / Virtual
    1306 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
    1307 # folders).
    1308 # The default value is: doc.
    1309 # This tag requires that the tag GENERATE_QHP is set to YES.
    1310 
    1311 QHP_VIRTUAL_FOLDER     = doc
    1312 
    1313 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
    1314 # filter to add. For more information please see Qt Help Project / Custom
    1315 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
    1316 # filters).
    1317 # This tag requires that the tag GENERATE_QHP is set to YES.
    1318 
    1319 QHP_CUST_FILTER_NAME   =
    1320 
    1321 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
    1322 # custom filter to add. For more information please see Qt Help Project / Custom
    1323 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
    1324 # filters).
    1325 # This tag requires that the tag GENERATE_QHP is set to YES.
    1326 
    1327 QHP_CUST_FILTER_ATTRS  =
    1328 
    1329 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
    1330 # project's filter section matches. Qt Help Project / Filter Attributes (see:
    1331 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
    1332 # This tag requires that the tag GENERATE_QHP is set to YES.
    1333 
    1334 QHP_SECT_FILTER_ATTRS  =
    1335 
    1336 # The QHG_LOCATION tag can be used to specify the location of Qt's
    1337 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
    1338 # generated .qhp file.
    1339 # This tag requires that the tag GENERATE_QHP is set to YES.
    1340 
    1341 QHG_LOCATION           =
    1342 
    1343 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
    1344 # generated, together with the HTML files, they form an Eclipse help plugin. To
    1345 # install this plugin and make it available under the help contents menu in
    1346 # Eclipse, the contents of the directory containing the HTML and XML files needs
    1347 # to be copied into the plugins directory of eclipse. The name of the directory
    1348 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
    1349 # After copying Eclipse needs to be restarted before the help appears.
    1350 # The default value is: NO.
    1351 # This tag requires that the tag GENERATE_HTML is set to YES.
    1352 
    1353 GENERATE_ECLIPSEHELP   = NO
    1354 
    1355 # A unique identifier for the Eclipse help plugin. When installing the plugin
    1356 # the directory name containing the HTML and XML files should also have this
    1357 # name. Each documentation set should have its own identifier.
    1358 # The default value is: org.doxygen.Project.
    1359 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
    1360 
    1361 ECLIPSE_DOC_ID         = org.aubio.aubio
    1362 
    1363 # If you want full control over the layout of the generated HTML pages it might
    1364 # be necessary to disable the index and replace it with your own. The
    1365 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
    1366 # of each HTML page. A value of NO enables the index and the value YES disables
    1367 # it. Since the tabs in the index contain the same information as the navigation
    1368 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
    1369 # The default value is: NO.
    1370 # This tag requires that the tag GENERATE_HTML is set to YES.
    1371 
    1372 DISABLE_INDEX          = NO
    1373 
    1374 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
    1375 # structure should be generated to display hierarchical information. If the tag
    1376 # value is set to YES, a side panel will be generated containing a tree-like
    1377 # index structure (just like the one that is generated for HTML Help). For this
    1378 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
    1379 # (i.e. any modern browser). Windows users are probably better off using the
    1380 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
    1381 # further fine-tune the look of the index. As an example, the default style
    1382 # sheet generated by doxygen has an example that shows how to put an image at
    1383 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
    1384 # the same information as the tab index, you could consider setting
    1385 # DISABLE_INDEX to YES when enabling this option.
    1386 # The default value is: NO.
    1387 # This tag requires that the tag GENERATE_HTML is set to YES.
    1388 
    1389 GENERATE_TREEVIEW      = NO
    1390 
    1391 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
    1392 # doxygen will group on one line in the generated HTML documentation.
    1393 #
    1394 # Note that a value of 0 will completely suppress the enum values from appearing
    1395 # in the overview section.
    1396 # Minimum value: 0, maximum value: 20, default value: 4.
    1397 # This tag requires that the tag GENERATE_HTML is set to YES.
    1398 
    1399 ENUM_VALUES_PER_LINE   = 4
    1400 
    1401 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
    1402 # to set the initial width (in pixels) of the frame in which the tree is shown.
    1403 # Minimum value: 0, maximum value: 1500, default value: 250.
    1404 # This tag requires that the tag GENERATE_HTML is set to YES.
    1405 
    1406 TREEVIEW_WIDTH         = 250
    1407 
    1408 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
    1409 # external symbols imported via tag files in a separate window.
    1410 # The default value is: NO.
    1411 # This tag requires that the tag GENERATE_HTML is set to YES.
    1412 
    1413 EXT_LINKS_IN_WINDOW    = NO
    1414 
    1415 # Use this tag to change the font size of LaTeX formulas included as images in
    1416 # the HTML documentation. When you change the font size after a successful
    1417 # doxygen run you need to manually remove any form_*.png images from the HTML
    1418 # output directory to force them to be regenerated.
    1419 # Minimum value: 8, maximum value: 50, default value: 10.
    1420 # This tag requires that the tag GENERATE_HTML is set to YES.
    1421 
    1422 FORMULA_FONTSIZE       = 10
    1423 
    1424 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
    1425 # generated for formulas are transparent PNGs. Transparent PNGs are not
    1426 # supported properly for IE 6.0, but are supported on all modern browsers.
    1427 #
    1428 # Note that when changing this option you need to delete any form_*.png files in
    1429 # the HTML output directory before the changes have effect.
    1430 # The default value is: YES.
    1431 # This tag requires that the tag GENERATE_HTML is set to YES.
    1432 
    1433 FORMULA_TRANSPARENT    = YES
    1434 
    1435 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
    1436 # http://www.mathjax.org) which uses client side Javascript for the rendering
    1437 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
    1438 # installed or if you want to formulas look prettier in the HTML output. When
    1439 # enabled you may also need to install MathJax separately and configure the path
    1440 # to it using the MATHJAX_RELPATH option.
    1441 # The default value is: NO.
    1442 # This tag requires that the tag GENERATE_HTML is set to YES.
    1443 
    1444 USE_MATHJAX            = YES
    1445 
    1446 # When MathJax is enabled you can set the default output format to be used for
    1447 # the MathJax output. See the MathJax site (see:
    1448 # http://docs.mathjax.org/en/latest/output.html) for more details.
    1449 # Possible values are: HTML-CSS (which is slower, but has the best
    1450 # compatibility), NativeMML (i.e. MathML) and SVG.
    1451 # The default value is: HTML-CSS.
    1452 # This tag requires that the tag USE_MATHJAX is set to YES.
    1453 
    1454 MATHJAX_FORMAT         = HTML-CSS
    1455 
    1456 # When MathJax is enabled you need to specify the location relative to the HTML
    1457 # output directory using the MATHJAX_RELPATH option. The destination directory
    1458 # should contain the MathJax.js script. For instance, if the mathjax directory
    1459 # is located at the same level as the HTML output directory, then
    1460 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
    1461 # Content Delivery Network so you can quickly see the result without installing
    1462 # MathJax. However, it is strongly recommended to install a local copy of
    1463 # MathJax from http://www.mathjax.org before deployment.
    1464 # The default value is: http://cdn.mathjax.org/mathjax/latest.
    1465 # This tag requires that the tag USE_MATHJAX is set to YES.
    1466 
    1467 MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
    1468 
    1469 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
    1470 # extension names that should be enabled during MathJax rendering. For example
    1471 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
    1472 # This tag requires that the tag USE_MATHJAX is set to YES.
    1473 
    1474 MATHJAX_EXTENSIONS     =
    1475 
    1476 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
    1477 # of code that will be used on startup of the MathJax code. See the MathJax site
    1478 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
    1479 # example see the documentation.
    1480 # This tag requires that the tag USE_MATHJAX is set to YES.
    1481 
    1482 MATHJAX_CODEFILE       =
    1483 
    1484 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
    1485 # the HTML output. The underlying search engine uses javascript and DHTML and
    1486 # should work on any modern browser. Note that when using HTML help
    1487 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
    1488 # there is already a search function so this one should typically be disabled.
    1489 # For large projects the javascript based search engine can be slow, then
    1490 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
    1491 # search using the keyboard; to jump to the search box use <access key> + S
    1492 # (what the <access key> is depends on the OS and browser, but it is typically
    1493 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
    1494 # key> to jump into the search results window, the results can be navigated
    1495 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
    1496 # the search. The filter options can be selected when the cursor is inside the
    1497 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
    1498 # to select a filter and <Enter> or <escape> to activate or cancel the filter
    1499 # option.
    1500 # The default value is: YES.
    1501 # This tag requires that the tag GENERATE_HTML is set to YES.
    1502 
    1503 SEARCHENGINE           = YES
    1504 
    1505 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
    1506 # implemented using a web server instead of a web client using Javascript. There
    1507 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
    1508 # setting. When disabled, doxygen will generate a PHP script for searching and
    1509 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
    1510 # and searching needs to be provided by external tools. See the section
    1511 # "External Indexing and Searching" for details.
    1512 # The default value is: NO.
    1513 # This tag requires that the tag SEARCHENGINE is set to YES.
    1514 
    1515 SERVER_BASED_SEARCH    = NO
    1516 
    1517 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
    1518 # script for searching. Instead the search results are written to an XML file
    1519 # which needs to be processed by an external indexer. Doxygen will invoke an
    1520 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
    1521 # search results.
    1522 #
    1523 # Doxygen ships with an example indexer ( doxyindexer) and search engine
    1524 # (doxysearch.cgi) which are based on the open source search engine library
    1525 # Xapian (see: http://xapian.org/).
    1526 #
    1527 # See the section "External Indexing and Searching" for details.
    1528 # The default value is: NO.
    1529 # This tag requires that the tag SEARCHENGINE is set to YES.
    1530 
    1531 EXTERNAL_SEARCH        = NO
    1532 
    1533 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
    1534 # which will return the search results when EXTERNAL_SEARCH is enabled.
    1535 #
    1536 # Doxygen ships with an example indexer ( doxyindexer) and search engine
    1537 # (doxysearch.cgi) which are based on the open source search engine library
    1538 # Xapian (see: http://xapian.org/). See the section "External Indexing and
    1539 # Searching" for details.
    1540 # This tag requires that the tag SEARCHENGINE is set to YES.
    1541 
    1542 SEARCHENGINE_URL       =
    1543 
    1544 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
    1545 # search data is written to a file for indexing by an external tool. With the
    1546 # SEARCHDATA_FILE tag the name of this file can be specified.
    1547 # The default file is: searchdata.xml.
    1548 # This tag requires that the tag SEARCHENGINE is set to YES.
    1549 
    1550 SEARCHDATA_FILE        = searchdata.xml
    1551 
    1552 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
    1553 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
    1554 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
    1555 # projects and redirect the results back to the right project.
    1556 # This tag requires that the tag SEARCHENGINE is set to YES.
    1557 
    1558 EXTERNAL_SEARCH_ID     =
    1559 
    1560 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
    1561 # projects other than the one defined by this configuration file, but that are
    1562 # all added to the same external search index. Each project needs to have a
    1563 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
    1564 # to a relative location where the documentation can be found. The format is:
    1565 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
    1566 # This tag requires that the tag SEARCHENGINE is set to YES.
    1567 
    1568 EXTRA_SEARCH_MAPPINGS  =
    1569 
    1570 #---------------------------------------------------------------------------
    1571 # Configuration options related to the LaTeX output
    1572 #---------------------------------------------------------------------------
    1573 
    1574 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
    1575 # The default value is: YES.
    1576 
    1577 GENERATE_LATEX         = NO
    1578 
    1579 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
    1580 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1581 # it.
    1582 # The default directory is: latex.
    1583 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1584 
    1585 LATEX_OUTPUT           = latex
    1586 
    1587 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
    1588 # invoked.
    1589 #
    1590 # Note that when enabling USE_PDFLATEX this option is only used for generating
    1591 # bitmaps for formulas in the HTML output, but not in the Makefile that is
    1592 # written to the output directory.
    1593 # The default file is: latex.
    1594 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1595 
    1596 LATEX_CMD_NAME         = latex
    1597 
    1598 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
    1599 # index for LaTeX.
    1600 # The default file is: makeindex.
    1601 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1602 
    1603 MAKEINDEX_CMD_NAME     = makeindex
    1604 
    1605 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
    1606 # documents. This may be useful for small projects and may help to save some
    1607 # trees in general.
    1608 # The default value is: NO.
    1609 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1610 
    1611 COMPACT_LATEX          = NO
    1612 
    1613 # The PAPER_TYPE tag can be used to set the paper type that is used by the
    1614 # printer.
    1615 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
    1616 # 14 inches) and executive (7.25 x 10.5 inches).
    1617 # The default value is: a4.
    1618 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1619 
    1620 PAPER_TYPE             = a4
    1621 
    1622 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
    1623 # that should be included in the LaTeX output. To get the times font for
    1624 # instance you can specify
    1625 # EXTRA_PACKAGES=times
    1626 # If left blank no extra packages will be included.
    1627 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1628 
    1629 EXTRA_PACKAGES         =
    1630 
    1631 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
    1632 # generated LaTeX document. The header should contain everything until the first
    1633 # chapter. If it is left blank doxygen will generate a standard header. See
    1634 # section "Doxygen usage" for information on how to let doxygen write the
    1635 # default header to a separate file.
    1636 #
    1637 # Note: Only use a user-defined header if you know what you are doing! The
    1638 # following commands have a special meaning inside the header: $title,
    1639 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
    1640 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
    1641 # for the replacement values of the other commands the user is refered to
    1642 # HTML_HEADER.
    1643 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1644 
    1645 LATEX_HEADER           =
    1646 
    1647 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
    1648 # generated LaTeX document. The footer should contain everything after the last
    1649 # chapter. If it is left blank doxygen will generate a standard footer. See
    1650 # LATEX_HEADER for more information on how to generate a default footer and what
    1651 # special commands can be used inside the footer.
    1652 #
    1653 # Note: Only use a user-defined footer if you know what you are doing!
    1654 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1655 
    1656 LATEX_FOOTER           =
    1657 
    1658 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
    1659 # other source files which should be copied to the LATEX_OUTPUT output
    1660 # directory. Note that the files will be copied as-is; there are no commands or
    1661 # markers available.
    1662 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1663 
    1664 LATEX_EXTRA_FILES      =
    1665 
    1666 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
    1667 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
    1668 # contain links (just like the HTML output) instead of page references. This
    1669 # makes the output suitable for online browsing using a PDF viewer.
    1670 # The default value is: YES.
    1671 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1672 
    1673 PDF_HYPERLINKS         = YES
    1674 
    1675 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
    1676 # the PDF file directly from the LaTeX files. Set this option to YES to get a
    1677 # higher quality PDF documentation.
    1678 # The default value is: YES.
    1679 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1680 
    1681 USE_PDFLATEX           = YES
    1682 
    1683 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
    1684 # command to the generated LaTeX files. This will instruct LaTeX to keep running
    1685 # if errors occur, instead of asking the user for help. This option is also used
    1686 # when generating formulas in HTML.
    1687 # The default value is: NO.
    1688 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1689 
    1690 LATEX_BATCHMODE        = NO
    1691 
    1692 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
    1693 # index chapters (such as File Index, Compound Index, etc.) in the output.
    1694 # The default value is: NO.
    1695 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1696 
    1697 LATEX_HIDE_INDICES     = NO
    1698 
    1699 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
    1700 # code with syntax highlighting in the LaTeX output.
    1701 #
    1702 # Note that which sources are shown also depends on other settings such as
    1703 # SOURCE_BROWSER.
    1704 # The default value is: NO.
    1705 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1706 
    1707 LATEX_SOURCE_CODE      = NO
    1708 
    1709 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
    1710 # bibliography, e.g. plainnat, or ieeetr. See
    1711 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
    1712 # The default value is: plain.
    1713 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1714 
    1715 LATEX_BIB_STYLE        = plain
    1716 
    1717 #---------------------------------------------------------------------------
    1718 # Configuration options related to the RTF output
    1719 #---------------------------------------------------------------------------
    1720 
    1721 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
    1722 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
    1723 # readers/editors.
    1724 # The default value is: NO.
    1725 
    1726 GENERATE_RTF           = NO
    1727 
    1728 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
    1729 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1730 # it.
    1731 # The default directory is: rtf.
    1732 # This tag requires that the tag GENERATE_RTF is set to YES.
    1733 
    1734 RTF_OUTPUT             = rtf
    1735 
    1736 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
    1737 # documents. This may be useful for small projects and may help to save some
    1738 # trees in general.
    1739 # The default value is: NO.
    1740 # This tag requires that the tag GENERATE_RTF is set to YES.
    1741 
    1742 COMPACT_RTF            = NO
    1743 
    1744 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
    1745 # contain hyperlink fields. The RTF file will contain links (just like the HTML
    1746 # output) instead of page references. This makes the output suitable for online
    1747 # browsing using Word or some other Word compatible readers that support those
    1748 # fields.
    1749 #
    1750 # Note: WordPad (write) and others do not support links.
    1751 # The default value is: NO.
    1752 # This tag requires that the tag GENERATE_RTF is set to YES.
    1753 
    1754 RTF_HYPERLINKS         = NO
    1755 
    1756 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
    1757 # file, i.e. a series of assignments. You only have to provide replacements,
    1758 # missing definitions are set to their default value.
    1759 #
    1760 # See also section "Doxygen usage" for information on how to generate the
    1761 # default style sheet that doxygen normally uses.
    1762 # This tag requires that the tag GENERATE_RTF is set to YES.
    1763 
    1764 RTF_STYLESHEET_FILE    =
    1765 
    1766 # Set optional variables used in the generation of an RTF document. Syntax is
    1767 # similar to doxygen's config file. A template extensions file can be generated
    1768 # using doxygen -e rtf extensionFile.
    1769 # This tag requires that the tag GENERATE_RTF is set to YES.
    1770 
    1771 RTF_EXTENSIONS_FILE    =
    1772 
    1773 #---------------------------------------------------------------------------
    1774 # Configuration options related to the man page output
    1775 #---------------------------------------------------------------------------
    1776 
    1777 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
    1778 # classes and files.
    1779 # The default value is: NO.
    1780 
    1781 GENERATE_MAN           = NO
    1782 
    1783 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
    1784 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1785 # it. A directory man3 will be created inside the directory specified by
    1786 # MAN_OUTPUT.
    1787 # The default directory is: man.
    1788 # This tag requires that the tag GENERATE_MAN is set to YES.
    1789 
    1790 MAN_OUTPUT             = man
    1791 
    1792 # The MAN_EXTENSION tag determines the extension that is added to the generated
    1793 # man pages. In case the manual section does not start with a number, the number
    1794 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
    1795 # optional.
    1796 # The default value is: .3.
    1797 # This tag requires that the tag GENERATE_MAN is set to YES.
    1798 
    1799 MAN_EXTENSION          = .3
    1800 
    1801 # The MAN_SUBDIR tag determines the name of the directory created within
    1802 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
    1803 # MAN_EXTENSION with the initial . removed.
    1804 # This tag requires that the tag GENERATE_MAN is set to YES.
    1805 
    1806 MAN_SUBDIR             =
    1807 
    1808 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
    1809 # will generate one additional man file for each entity documented in the real
    1810 # man page(s). These additional files only source the real man page, but without
    1811 # them the man command would be unable to find the correct page.
    1812 # The default value is: NO.
    1813 # This tag requires that the tag GENERATE_MAN is set to YES.
    1814 
    1815 MAN_LINKS              = NO
    1816 
    1817 #---------------------------------------------------------------------------
    1818 # Configuration options related to the XML output
    1819 #---------------------------------------------------------------------------
    1820 
    1821 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
    1822 # captures the structure of the code including all documentation.
    1823 # The default value is: NO.
    1824 
    1825 GENERATE_XML           = NO
    1826 
    1827 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
    1828 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1829 # it.
    1830 # The default directory is: xml.
    1831 # This tag requires that the tag GENERATE_XML is set to YES.
    1832 
    1833 XML_OUTPUT             = xml
    1834 
    1835 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
    1836 # listings (including syntax highlighting and cross-referencing information) to
    1837 # the XML output. Note that enabling this will significantly increase the size
    1838 # of the XML output.
    1839 # The default value is: YES.
    1840 # This tag requires that the tag GENERATE_XML is set to YES.
    1841 
    1842 XML_PROGRAMLISTING     = YES
    1843 
    1844 #---------------------------------------------------------------------------
    1845 # Configuration options related to the DOCBOOK output
    1846 #---------------------------------------------------------------------------
    1847 
    1848 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
    1849 # that can be used to generate PDF.
    1850 # The default value is: NO.
    1851 
    1852 GENERATE_DOCBOOK       = NO
    1853 
    1854 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
    1855 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
    1856 # front of it.
    1857 # The default directory is: docbook.
    1858 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
    1859 
    1860 DOCBOOK_OUTPUT         = docbook
    1861 
    1862 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
    1863 # program listings (including syntax highlighting and cross-referencing
    1864 # information) to the DOCBOOK output. Note that enabling this will significantly
    1865 # increase the size of the DOCBOOK output.
    1866 # The default value is: NO.
    1867 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
    1868 
    1869 DOCBOOK_PROGRAMLISTING = NO
    1870 
    1871 #---------------------------------------------------------------------------
    1872 # Configuration options for the AutoGen Definitions output
    1873 #---------------------------------------------------------------------------
    1874 
    1875 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
    1876 # Definitions (see http://autogen.sf.net) file that captures the structure of
    1877 # the code including all documentation. Note that this feature is still
    1878 # experimental and incomplete at the moment.
    1879 # The default value is: NO.
    1880 
    1881 GENERATE_AUTOGEN_DEF   = NO
    1882 
    1883 #---------------------------------------------------------------------------
    1884 # Configuration options related to the Perl module output
    1885 #---------------------------------------------------------------------------
    1886 
    1887 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
    1888 # file that captures the structure of the code including all documentation.
    1889 #
    1890 # Note that this feature is still experimental and incomplete at the moment.
    1891 # The default value is: NO.
    1892 
    1893 GENERATE_PERLMOD       = NO
    1894 
    1895 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
    1896 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
    1897 # output from the Perl module output.
    1898 # The default value is: NO.
    1899 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1900 
    1901 PERLMOD_LATEX          = NO
    1902 
    1903 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
    1904 # formatted so it can be parsed by a human reader. This is useful if you want to
    1905 # understand what is going on. On the other hand, if this tag is set to NO the
    1906 # size of the Perl module output will be much smaller and Perl will parse it
    1907 # just the same.
    1908 # The default value is: YES.
    1909 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1910 
    1911 PERLMOD_PRETTY         = YES
    1912 
    1913 # The names of the make variables in the generated doxyrules.make file are
    1914 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
    1915 # so different doxyrules.make files included by the same Makefile don't
    1916 # overwrite each other's variables.
    1917 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1918 
    1919 PERLMOD_MAKEVAR_PREFIX =
    1920 
    1921 #---------------------------------------------------------------------------
    1922 # Configuration options related to the preprocessor
    1923 #---------------------------------------------------------------------------
    1924 
    1925 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
    1926 # C-preprocessor directives found in the sources and include files.
    1927 # The default value is: YES.
    1928 
    1929 ENABLE_PREPROCESSING   = YES
    1930 
    1931 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
    1932 # in the source code. If set to NO only conditional compilation will be
    1933 # performed. Macro expansion can be done in a controlled way by setting
    1934 # EXPAND_ONLY_PREDEF to YES.
    1935 # The default value is: NO.
    1936 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1937 
    1938 MACRO_EXPANSION        = NO
    1939 
    1940 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
    1941 # the macro expansion is limited to the macros specified with the PREDEFINED and
    1942 # EXPAND_AS_DEFINED tags.
    1943 # The default value is: NO.
    1944 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1945 
    1946 EXPAND_ONLY_PREDEF     = NO
    1947 
    1948 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
    1949 # INCLUDE_PATH will be searched if a #include is found.
    1950 # The default value is: YES.
    1951 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1952 
    1953 SEARCH_INCLUDES        = YES
    1954 
    1955 # The INCLUDE_PATH tag can be used to specify one or more directories that
    1956 # contain include files that are not input files but should be processed by the
    1957 # preprocessor.
    1958 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
    1959 
    1960 INCLUDE_PATH           =
    1961 
    1962 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
    1963 # patterns (like *.h and *.hpp) to filter out the header-files in the
    1964 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
    1965 # used.
    1966 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1967 
    196810INCLUDE_FILE_PATTERNS  =
    1969 
    1970 # The PREDEFINED tag can be used to specify one or more macro names that are
    1971 # defined before the preprocessor is started (similar to the -D option of e.g.
    1972 # gcc). The argument of the tag is a list of macros of the form: name or
    1973 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
    1974 # is assumed. To prevent a macro definition from being undefined via #undef or
    1975 # recursively expanded use the := operator instead of the = operator.
    1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1977 
    1978 PREDEFINED             =
    1979 
    1980 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
    1981 # tag can be used to specify a list of macro names that should be expanded. The
    1982 # macro definition that is found in the sources will be used. Use the PREDEFINED
    1983 # tag if you want to use a different macro definition that overrules the
    1984 # definition found in the source code.
    1985 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1986 
    1987 EXPAND_AS_DEFINED      =
    1988 
    1989 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
    1990 # remove all references to function-like macros that are alone on a line, have
    1991 # an all uppercase name, and do not end with a semicolon. Such function macros
    1992 # are typically used for boiler-plate code, and will confuse the parser if not
    1993 # removed.
    1994 # The default value is: YES.
    1995 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1996 
    1997 SKIP_FUNCTION_MACROS   = YES
    1998 
    1999 #---------------------------------------------------------------------------
    2000 # Configuration options related to external references
    2001 #---------------------------------------------------------------------------
    2002 
    2003 # The TAGFILES tag can be used to specify one or more tag files. For each tag
    2004 # file the location of the external documentation should be added. The format of
    2005 # a tag file without this location is as follows:
    2006 # TAGFILES = file1 file2 ...
    2007 # Adding location for the tag files is done as follows:
    2008 # TAGFILES = file1=loc1 "file2 = loc2" ...
    2009 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
    2010 # section "Linking to external documentation" for more information about the use
    2011 # of tag files.
    2012 # Note: Each tag file must have a unique name (where the name does NOT include
    2013 # the path). If a tag file is not located in the directory in which doxygen is
    2014 # run, you must also specify the path to the tagfile here.
    2015 
    2016 TAGFILES               =
    2017 
    2018 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
    2019 # tag file that is based on the input files it reads. See section "Linking to
    2020 # external documentation" for more information about the usage of tag files.
    2021 
    2022 GENERATE_TAGFILE       =
    2023 
    2024 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
    2025 # class index. If set to NO only the inherited external classes will be listed.
    2026 # The default value is: NO.
    2027 
    2028 ALLEXTERNALS           = NO
    2029 
    2030 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
    2031 # the modules index. If set to NO, only the current project's groups will be
    2032 # listed.
    2033 # The default value is: YES.
    2034 
    2035 EXTERNAL_GROUPS        = YES
    2036 
    2037 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
    2038 # the related pages index. If set to NO, only the current project's pages will
    2039 # be listed.
    2040 # The default value is: YES.
    2041 
    2042 EXTERNAL_PAGES         = YES
    2043 
    2044 # The PERL_PATH should be the absolute path and name of the perl script
    2045 # interpreter (i.e. the result of 'which perl').
    2046 # The default file (with absolute path) is: /usr/bin/perl.
    2047 
    2048 PERL_PATH              = /usr/bin/perl
    2049 
    2050 #---------------------------------------------------------------------------
    2051 # Configuration options related to the dot tool
    2052 #---------------------------------------------------------------------------
    2053 
    2054 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
    2055 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
    2056 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
    2057 # disabled, but it is recommended to install and use dot, since it yields more
    2058 # powerful graphs.
    2059 # The default value is: YES.
    2060 
    2061 CLASS_DIAGRAMS         = YES
    2062 
    2063 # You can define message sequence charts within doxygen comments using the \msc
    2064 # command. Doxygen will then run the mscgen tool (see:
    2065 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
    2066 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
    2067 # the mscgen tool resides. If left empty the tool is assumed to be found in the
    2068 # default search path.
    2069 
    2070 MSCGEN_PATH            =
    2071 
    2072 # You can include diagrams made with dia in doxygen documentation. Doxygen will
    2073 # then run dia to produce the diagram and insert it in the documentation. The
    2074 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
    2075 # If left empty dia is assumed to be found in the default search path.
    2076 
    2077 DIA_PATH               =
    2078 
    2079 # If set to YES, the inheritance and collaboration graphs will hide inheritance
    2080 # and usage relations if the target is undocumented or is not a class.
    2081 # The default value is: YES.
    2082 
    208311HIDE_UNDOC_RELATIONS   = NO
    2084 
    2085 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
    2086 # available from the path. This tool is part of Graphviz (see:
    2087 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
    2088 # Bell Labs. The other options in this section have no effect if this option is
    2089 # set to NO
    2090 # The default value is: YES.
    2091 
    2092 HAVE_DOT               = NO
    2093 
    2094 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
    2095 # to run in parallel. When set to 0 doxygen will base this on the number of
    2096 # processors available in the system. You can set it explicitly to a value
    2097 # larger than 0 to get control over the balance between CPU load and processing
    2098 # speed.
    2099 # Minimum value: 0, maximum value: 32, default value: 0.
    2100 # This tag requires that the tag HAVE_DOT is set to YES.
    2101 
    2102 DOT_NUM_THREADS        = 0
    2103 
    2104 # When you want a differently looking font in the dot files that doxygen
    2105 # generates you can specify the font name using DOT_FONTNAME. You need to make
    2106 # sure dot is able to find the font, which can be done by putting it in a
    2107 # standard location or by setting the DOTFONTPATH environment variable or by
    2108 # setting DOT_FONTPATH to the directory containing the font.
    2109 # The default value is: Helvetica.
    2110 # This tag requires that the tag HAVE_DOT is set to YES.
    2111 
    2112 DOT_FONTNAME           =
    2113 
    2114 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
    2115 # dot graphs.
    2116 # Minimum value: 4, maximum value: 24, default value: 10.
    2117 # This tag requires that the tag HAVE_DOT is set to YES.
    2118 
    2119 DOT_FONTSIZE           = 10
    2120 
    2121 # By default doxygen will tell dot to use the default font as specified with
    2122 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
    2123 # the path where dot can find it using this tag.
    2124 # This tag requires that the tag HAVE_DOT is set to YES.
    2125 
    2126 DOT_FONTPATH           =
    2127 
    2128 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
    2129 # each documented class showing the direct and indirect inheritance relations.
    2130 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
    2131 # The default value is: YES.
    2132 # This tag requires that the tag HAVE_DOT is set to YES.
    2133 
    2134 CLASS_GRAPH            = YES
    2135 
    2136 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
    2137 # graph for each documented class showing the direct and indirect implementation
    2138 # dependencies (inheritance, containment, and class references variables) of the
    2139 # class with other documented classes.
    2140 # The default value is: YES.
    2141 # This tag requires that the tag HAVE_DOT is set to YES.
    2142 
    2143 COLLABORATION_GRAPH    = YES
    2144 
    2145 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
    2146 # groups, showing the direct groups dependencies.
    2147 # The default value is: YES.
    2148 # This tag requires that the tag HAVE_DOT is set to YES.
    2149 
    2150 GROUP_GRAPHS           = YES
    2151 
    2152 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
    2153 # collaboration diagrams in a style similar to the OMG's Unified Modeling
    2154 # Language.
    2155 # The default value is: NO.
    2156 # This tag requires that the tag HAVE_DOT is set to YES.
    2157 
    2158 UML_LOOK               = NO
    2159 
    2160 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
    2161 # class node. If there are many fields or methods and many nodes the graph may
    2162 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
    2163 # number of items for each type to make the size more manageable. Set this to 0
    2164 # for no limit. Note that the threshold may be exceeded by 50% before the limit
    2165 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
    2166 # but if the number exceeds 15, the total amount of fields shown is limited to
    2167 # 10.
    2168 # Minimum value: 0, maximum value: 100, default value: 10.
    2169 # This tag requires that the tag HAVE_DOT is set to YES.
    2170 
    2171 UML_LIMIT_NUM_FIELDS   = 10
    2172 
    2173 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
    2174 # collaboration graphs will show the relations between templates and their
    2175 # instances.
    2176 # The default value is: NO.
    2177 # This tag requires that the tag HAVE_DOT is set to YES.
    2178 
    2179 TEMPLATE_RELATIONS     = NO
    2180 
    2181 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
    2182 # YES then doxygen will generate a graph for each documented file showing the
    2183 # direct and indirect include dependencies of the file with other documented
    2184 # files.
    2185 # The default value is: YES.
    2186 # This tag requires that the tag HAVE_DOT is set to YES.
    2187 
    2188 INCLUDE_GRAPH          = YES
    2189 
    2190 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
    2191 # set to YES then doxygen will generate a graph for each documented file showing
    2192 # the direct and indirect include dependencies of the file with other documented
    2193 # files.
    2194 # The default value is: YES.
    2195 # This tag requires that the tag HAVE_DOT is set to YES.
    2196 
    2197 INCLUDED_BY_GRAPH      = YES
    2198 
    2199 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
    2200 # dependency graph for every global function or class method.
    2201 #
    2202 # Note that enabling this option will significantly increase the time of a run.
    2203 # So in most cases it will be better to enable call graphs for selected
    2204 # functions only using the \callgraph command.
    2205 # The default value is: NO.
    2206 # This tag requires that the tag HAVE_DOT is set to YES.
    2207 
    2208 CALL_GRAPH             = NO
    2209 
    2210 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
    2211 # dependency graph for every global function or class method.
    2212 #
    2213 # Note that enabling this option will significantly increase the time of a run.
    2214 # So in most cases it will be better to enable caller graphs for selected
    2215 # functions only using the \callergraph command.
    2216 # The default value is: NO.
    2217 # This tag requires that the tag HAVE_DOT is set to YES.
    2218 
    2219 CALLER_GRAPH           = NO
    2220 
    2221 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
    2222 # hierarchy of all classes instead of a textual one.
    2223 # The default value is: YES.
    2224 # This tag requires that the tag HAVE_DOT is set to YES.
    2225 
    2226 GRAPHICAL_HIERARCHY    = YES
    2227 
    2228 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
    2229 # dependencies a directory has on other directories in a graphical way. The
    2230 # dependency relations are determined by the #include relations between the
    2231 # files in the directories.
    2232 # The default value is: YES.
    2233 # This tag requires that the tag HAVE_DOT is set to YES.
    2234 
    2235 DIRECTORY_GRAPH        = YES
    2236 
    2237 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
    2238 # generated by dot.
    2239 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
    2240 # to make the SVG files visible in IE 9+ (other browsers do not have this
    2241 # requirement).
    2242 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
    2243 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
    2244 # gif:cairo:gd, gif:gd, gif:gd:gd and svg.
    2245 # The default value is: png.
    2246 # This tag requires that the tag HAVE_DOT is set to YES.
    2247 
    2248 DOT_IMAGE_FORMAT       = png
    2249 
    2250 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
    2251 # enable generation of interactive SVG images that allow zooming and panning.
    2252 #
    2253 # Note that this requires a modern browser other than Internet Explorer. Tested
    2254 # and working are Firefox, Chrome, Safari, and Opera.
    2255 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
    2256 # the SVG files visible. Older versions of IE do not have SVG support.
    2257 # The default value is: NO.
    2258 # This tag requires that the tag HAVE_DOT is set to YES.
    2259 
    2260 INTERACTIVE_SVG        = NO
    2261 
    2262 # The DOT_PATH tag can be used to specify the path where the dot tool can be
    2263 # found. If left blank, it is assumed the dot tool can be found in the path.
    2264 # This tag requires that the tag HAVE_DOT is set to YES.
    2265 
    2266 DOT_PATH               =
    2267 
    2268 # The DOTFILE_DIRS tag can be used to specify one or more directories that
    2269 # contain dot files that are included in the documentation (see the \dotfile
    2270 # command).
    2271 # This tag requires that the tag HAVE_DOT is set to YES.
    2272 
    2273 DOTFILE_DIRS           =
    2274 
    2275 # The MSCFILE_DIRS tag can be used to specify one or more directories that
    2276 # contain msc files that are included in the documentation (see the \mscfile
    2277 # command).
    2278 
    2279 MSCFILE_DIRS           =
    2280 
    2281 # The DIAFILE_DIRS tag can be used to specify one or more directories that
    2282 # contain dia files that are included in the documentation (see the \diafile
    2283 # command).
    2284 
    2285 DIAFILE_DIRS           =
    2286 
    2287 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
    2288 # path where java can find the plantuml.jar file. If left blank, it is assumed
    2289 # PlantUML is not used or called during a preprocessing step. Doxygen will
    2290 # generate a warning when it encounters a \startuml command in this case and
    2291 # will not generate output for the diagram.
    2292 # This tag requires that the tag HAVE_DOT is set to YES.
    2293 
    2294 PLANTUML_JAR_PATH      =
    2295 
    2296 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
    2297 # that will be shown in the graph. If the number of nodes in a graph becomes
    2298 # larger than this value, doxygen will truncate the graph, which is visualized
    2299 # by representing a node as a red box. Note that doxygen if the number of direct
    2300 # children of the root node in a graph is already larger than
    2301 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
    2302 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
    2303 # Minimum value: 0, maximum value: 10000, default value: 50.
    2304 # This tag requires that the tag HAVE_DOT is set to YES.
    2305 
    2306 DOT_GRAPH_MAX_NODES    = 50
    2307 
    2308 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
    2309 # generated by dot. A depth value of 3 means that only nodes reachable from the
    2310 # root by following a path via at most 3 edges will be shown. Nodes that lay
    2311 # further from the root node will be omitted. Note that setting this option to 1
    2312 # or 2 may greatly reduce the computation time needed for large code bases. Also
    2313 # note that the size of a graph can be further restricted by
    2314 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
    2315 # Minimum value: 0, maximum value: 1000, default value: 0.
    2316 # This tag requires that the tag HAVE_DOT is set to YES.
    2317 
    2318 MAX_DOT_GRAPH_DEPTH    = 0
    2319 
    2320 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
    2321 # background. This is disabled by default, because dot on Windows does not seem
    2322 # to support this out of the box.
    2323 #
    2324 # Warning: Depending on the platform used, enabling this option may lead to
    2325 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
    2326 # read).
    2327 # The default value is: NO.
    2328 # This tag requires that the tag HAVE_DOT is set to YES.
    2329 
    2330 DOT_TRANSPARENT        = NO
    2331 
    2332 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
    2333 # files in one run (i.e. multiple -o and -T options on the command line). This
    2334 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
    2335 # this, this feature is disabled by default.
    2336 # The default value is: NO.
    2337 # This tag requires that the tag HAVE_DOT is set to YES.
    2338 
    2339 DOT_MULTI_TARGETS      = NO
    2340 
    2341 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
    2342 # explaining the meaning of the various boxes and arrows in the dot generated
    2343 # graphs.
    2344 # The default value is: YES.
    2345 # This tag requires that the tag HAVE_DOT is set to YES.
    2346 
    2347 GENERATE_LEGEND        = YES
    2348 
    2349 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
    2350 # files that are used to generate the various graphs.
    2351 # The default value is: YES.
    2352 # This tag requires that the tag HAVE_DOT is set to YES.
    2353 
    2354 DOT_CLEANUP            = YES
  • doc/index.rst

    rfbafd2c rb201912  
    6363found in the results.
    6464
    65 Copyright
    66 =========
    67 
    68 Copyright © 2003-2016 Paul Brossier <piem@aubio.org>
    69 
    70 License
    71 =======
    72 
    73 aubio is a `free <http://www.debian.org/intro/free>`_ and `open source
    74 <http://www.opensource.org/docs/definition.php>`_ software; **you** can
    75 redistribute it and/or modify it under the terms of the `GNU
    76 <https://www.gnu.org/>`_ `General Public License
    77 <https://www.gnu.org/licenses/gpl.html>`_ as published by the `Free Software
    78 Foundation <https://fsf.org>`_, either version 3 of the License, or (at your
    79 option) any later version.
    80 
    81 .. note::
    82 
    83    aubio is not MIT or BSD licensed. Contact the author if you need it in your
    84    commercial product.
    85 
    8665Content
    8766=======
     
    9473   cli
    9574   develop
     75   about
  • doc/statuslinks.rst

    rfbafd2c rb201912  
    1818   :alt: Documentation status
    1919
    20 .. image:: https://img.shields.io/github/commits-since/aubio/aubio/0.4.4.svg?maxAge=2592000
     20.. image:: https://img.shields.io/github/commits-since/aubio/aubio/0.4.5.svg?maxAge=2592000
    2121   :target: https://github.com/aubio/aubio
    2222   :alt: Commits since last release
  • doc/web.cfg

    rfbafd2c rb201912  
    3939# control system is used.
    4040
    41 PROJECT_NUMBER         = "0.4.5~alpha"
     41PROJECT_NUMBER         = "latest"
    4242
    4343# Using the PROJECT_BRIEF tag one can provide an optional one line description
  • examples/aubioonset.c

    rfbafd2c rb201912  
    4444    aubio_wavetable_stop ( wavetable );
    4545  }
    46   if (mix_input)
     46  if (mix_input) {
    4747    aubio_wavetable_do (wavetable, ibuf, obuf);
    48   else
     48  } else {
    4949    aubio_wavetable_do (wavetable, obuf, obuf);
     50  }
    5051}
    5152
     
    6263  examples_common_init(argc,argv);
    6364
    64   verbmsg ("using source: %s at %dHz\n", source_uri, samplerate);
    65   verbmsg ("onset method: %s, ", onset_method);
    66   verbmsg ("buffer_size: %d, ", buffer_size);
    67   verbmsg ("hop_size: %d, ", hop_size);
    68   verbmsg ("silence: %f, ", silence_threshold);
    69   verbmsg ("threshold: %f\n", onset_threshold);
    70 
    7165  o = new_aubio_onset (onset_method, buffer_size, hop_size, samplerate);
    7266  if (o == NULL) { ret = 1; goto beach; }
     
    7771  if (onset_minioi != 0.)
    7872    aubio_onset_set_minioi_s (o, onset_minioi);
     73
     74  verbmsg ("using source: %s at %dHz\n", source_uri, samplerate);
     75  verbmsg ("onset method: %s, ", onset_method);
     76  verbmsg ("buffer_size: %d, ", buffer_size);
     77  verbmsg ("hop_size: %d, ", hop_size);
     78  verbmsg ("silence: %f, ", aubio_onset_get_silence(o));
     79  verbmsg ("threshold: %f, ", aubio_onset_get_threshold(o));
     80  verbmsg ("awhitening: %f, ", aubio_onset_get_awhitening(o));
     81  verbmsg ("compression: %f\n", aubio_onset_get_compression(o));
    7982
    8083  onset = new_fvec (1);
  • examples/aubiotrack.c

    rfbafd2c rb201912  
    4747    aubio_wavetable_stop ( wavetable );
    4848  }
    49   if (mix_input)
     49  if (mix_input) {
    5050    aubio_wavetable_do (wavetable, ibuf, obuf);
    51   else
     51  } else {
    5252    aubio_wavetable_do (wavetable, obuf, obuf);
     53  }
    5354}
    5455
  • python/lib/gen_external.py

    rfbafd2c rb201912  
    3838  'source_avcodec',
    3939  'source_wavread',
    40   #'sampler',
    4140  'audio_unit',
     41  'spectral_whitening',
    4242  'timestretch', # TODO fix parsing of uint_t *read in _do
    4343  'sampler', # TODO fix parsing of uint_t *read in _do
  • python/lib/moresetuptools.py

    rfbafd2c rb201912  
    120120    ext.define_macros += [('HAVE_WAVWRITE', 1)]
    121121    ext.define_macros += [('HAVE_WAVREAD', 1)]
    122     # TODO:
    123     # add cblas
     122
     123    # TODO: add cblas
    124124    if 0:
    125125        ext.libraries += ['cblas']
     
    134134    else:
    135135        print("Info: using system aubio " + aubio_version + " found in " + ' '.join(ext.library_dirs))
     136
     137def add_libav_on_win(ext):
     138    """ no pkg-config on windows, simply assume these libs are available """
     139    ext.libraries += ['avformat', 'avutil', 'avcodec', 'swresample']
     140    for define_macro in ['HAVE_LIBAV', 'HAVE_SWRESAMPLE']:
     141        ext.define_macros += [(define_macro, 1)]
    136142
    137143class CleanGenerated(distutils.command.clean.clean):
     
    178184                # check for external dependencies
    179185                add_external_deps(extension, usedouble=enable_double)
     186                # force adding libav on windows
     187                if os.name == 'nt' and ('WITH_LIBAV' in os.environ \
     188                        or 'CONDA_PREFIX' in os.environ):
     189                    add_libav_on_win(extension)
    180190                # add libaubio sources and look for optional deps with pkg-config
    181191                add_local_aubio_sources(extension)
  • python/tests/test_onset.py

    rfbafd2c rb201912  
    2020
    2121    def test_get_delay(self):
    22         assert_equal (self.o.get_delay(), int(4.3 * self.o.hop_size))
     22        self.assertGreater(self.o.get_delay(), 0)
    2323
    2424    def test_get_delay_s(self):
    25         assert_almost_equal (self.o.get_delay_s(), self.o.get_delay() / float(self.samplerate))
     25        self.assertGreater(self.o.get_delay_s(), 0.)
    2626
    2727    def test_get_delay_ms(self):
    28         assert_almost_equal (self.o.get_delay_ms(), self.o.get_delay() * 1000. / self.samplerate, 5)
     28        self.assertGreater(self.o.get_delay_ms(), 0.)
    2929
    3030    def test_get_minioi(self):
    31         assert_almost_equal (self.o.get_minioi(), 0.02 * self.samplerate)
     31        self.assertGreater(self.o.get_minioi(), 0)
    3232
    3333    def test_get_minioi_s(self):
    34         assert_almost_equal (self.o.get_minioi_s(), 0.02)
     34        self.assertGreater(self.o.get_minioi_s(), 0.)
    3535
    3636    def test_get_minioi_ms(self):
    37         assert_equal (self.o.get_minioi_ms(), 20.)
     37        self.assertGreater(self.o.get_minioi_ms(), 0.)
    3838
    3939    def test_get_threshold(self):
    40         assert_almost_equal (self.o.get_threshold(), 0.3)
     40        self.assertGreater(self.o.get_threshold(), 0.)
    4141
    4242    def test_set_delay(self):
  • scripts/build_mingw

    rfbafd2c rb201912  
    1111set -x
    1212
    13 source VERSION
    14 VERSION="$AUBIO_MAJOR_VERSION.$AUBIO_MINOR_VERSION.$AUBIO_PATCH_VERSION"
    15 VERSION+="$AUBIO_VERSION_STATUS"
     13python this_version.py -v
     14VERSION=`python $PWD/this_version.py -v`
    1615
    1716FFMPEG_BUILDS_URL="https://ffmpeg.zeranoe.com/builds"
    18 FFMPEG_DEFAULT="20170315-6c4665d"
     17FFMPEG_DEFAULT="20170404-1229007"
    1918
    2019# define some default CFLAGS
     
    8079  CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \
    8180    ./waf distclean configure build install $WAFOPTS_TGT --testcmd='echo %s'
     81  # fix dll location (see https://github.com/waf-project/waf/issues/1860)
     82  mv $DESTDIR/lib/libaubio-5.dll $DESTDIR/bin
     83  # generate def file (see https://github.com/aubio/aubio/issues/97)
     84  ( echo -e "EXPORTS"; $NM $DESTDIR/bin/libaubio-5.dll | grep T\  | \
     85    egrep "(aubio|fvec|cvec|lvec|fmat)" | sed 's/^.* T _\?//' ) \
     86    > $DESTDIR/bin/libaubio-5.def
    8287  zip -r $DESTDIR.zip `basename $DESTDIR`
    8388  rm -rf $DESTDIR
     
    8893  TARGET=win32
    8994  export CC=i686-w64-mingw32-gcc
     95  export NM=i686-w64-mingw32-nm
    9096  build_mingw
    9197}
     
    94100  TARGET=win64
    95101  export CC=x86_64-w64-mingw32-gcc
     102  export NM=x86_64-w64-mingw32-nm
    96103  build_mingw
    97104}
  • src/aubio.h

    rfbafd2c rb201912  
    188188#include "spectral/mfcc.h"
    189189#include "spectral/specdesc.h"
     190#include "spectral/awhitening.h"
    190191#include "spectral/tss.h"
    191192#include "pitch/pitch.h"
  • src/cvec.c

    rfbafd2c rb201912  
    140140  cvec_phas_zeros(s);
    141141}
     142
     143void cvec_logmag(cvec_t *s, smpl_t lambda) {
     144  uint_t j;
     145  for (j=0; j< s->length; j++) {
     146    s->norm[j] = LOG(lambda * s->norm[j] + 1);
     147  }
     148}
  • src/cvec.h

    rfbafd2c rb201912  
    231231void cvec_zeros(cvec_t *s);
    232232
     233/** take logarithmic magnitude
     234
     235  \param s input cvec to compress
     236  \param lambda value to use for normalisation
     237
     238  \f$ S_k = log( \lambda * S_k + 1 ) \f$
     239
     240*/
     241void cvec_logmag(cvec_t *s, smpl_t lambda);
     242
    233243#ifdef __cplusplus
    234244}
  • src/io/source_avcodec.c

    rfbafd2c rb201912  
    4343
    4444// backward compatibility with libavcodec55
     45#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57,0,0)
     46#define HAVE_AUBIO_LIBAVCODEC_DEPRECATED 1
     47#endif
     48
    4549#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
    46 #warning "libavcodec55 is deprecated"
    47 #define HAVE_AUBIO_LIBAVCODEC_DEPRECATED 1
     50#warning "libavcodec < 56 is deprecated"
    4851#define av_frame_alloc  avcodec_alloc_frame
    4952#define av_frame_free avcodec_free_frame
     
    117120aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path, uint_t samplerate, uint_t hop_size) {
    118121  aubio_source_avcodec_t * s = AUBIO_NEW(aubio_source_avcodec_t);
     122  AVFormatContext *avFormatCtx = s->avFormatCtx;
     123  AVCodecContext *avCodecCtx = s->avCodecCtx;
     124  AVFrame *avFrame = s->avFrame;
     125  AVDictionary *streamopts = 0;
     126  sint_t selected_stream = -1;
     127#if FF_API_LAVF_AVCTX
     128  AVCodecParameters *codecpar;
     129#endif
     130  AVCodec *codec;
     131  uint_t i;
    119132  int err;
    120133  if (path == NULL) {
     
    150163
    151164  // try opening the file and get some info about it
    152   AVFormatContext *avFormatCtx = s->avFormatCtx;
    153   AVDictionary *streamopts = 0;
    154165  if (s->has_network_url) {
    155166    if (av_dict_set(&streamopts, "timeout", "1000000", 0)) { // in microseconds
     
    187198
    188199  // look for the first audio stream
    189   uint_t i;
    190   sint_t selected_stream = -1;
    191200  for (i = 0; i < avFormatCtx->nb_streams; i++) {
    192201#if FF_API_LAVF_AVCTX
     
    210219  s->selected_stream = selected_stream;
    211220
    212   AVCodecContext *avCodecCtx = s->avCodecCtx;
    213221#if FF_API_LAVF_AVCTX
    214   AVCodecParameters *codecpar = avFormatCtx->streams[selected_stream]->codecpar;
     222  codecpar = avFormatCtx->streams[selected_stream]->codecpar;
    215223  if (codecpar == NULL) {
    216224    AUBIO_ERR("source_avcodec: Could not find decoder for %s", s->path);
    217225    goto beach;
    218226  }
    219   AVCodec *codec = avcodec_find_decoder(codecpar->codec_id);
     227  codec = avcodec_find_decoder(codecpar->codec_id);
    220228
    221229  /* Allocate a codec context for the decoder */
     
    228236#else
    229237  avCodecCtx = avFormatCtx->streams[selected_stream]->codec;
    230   AVCodec *codec = avcodec_find_decoder(avCodecCtx->codec_id);
     238  codec = avcodec_find_decoder(avCodecCtx->codec_id);
    231239#endif
    232240  if (codec == NULL) {
     
    272280  }
    273281
    274   AVFrame *avFrame = s->avFrame;
    275282  avFrame = av_frame_alloc();
    276283  if (!avFrame) {
     
    313320  // create or reset resampler to/from mono/multi-channel
    314321  if ( (multi != s->multi) || (s->avr == NULL) ) {
     322    int err;
    315323    int64_t input_layout = av_get_default_channel_layout(s->input_channels);
    316324    uint_t output_channels = multi ? s->input_channels : 1;
     
    336344    // TODO: use planar?
    337345    //av_opt_set_int(avr, "out_sample_fmt",     AV_SAMPLE_FMT_FLTP,      0);
    338     int err;
    339346#ifdef HAVE_AVRESAMPLE
    340347    if ( ( err = avresample_open(avr) ) < 0) {
     
    368375  AVFrame *avFrame = s->avFrame;
    369376  AVPacket avPacket = s->avPacket;
    370   av_init_packet (&avPacket);
    371377#ifdef HAVE_AVRESAMPLE
    372378  AVAudioResampleContext *avr = s->avr;
     
    374380  SwrContext *avr = s->avr;
    375381#endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */
     382  int got_frame = 0;
     383  int ret = 0;
     384#ifdef HAVE_AVRESAMPLE
     385  int in_linesize = 0;
     386  int in_samples = avFrame->nb_samples;
     387  int out_linesize = 0;
     388  int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE;
     389  int out_samples = 0;
     390#elif defined(HAVE_SWRESAMPLE)
     391  int in_samples = avFrame->nb_samples;
     392  int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels;
     393  int out_samples = 0;
     394#endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */
    376395  smpl_t *output = s->output;
     396#ifndef FF_API_LAVF_AVCTX
     397  int len = 0;
     398#endif
     399  av_init_packet (&avPacket);
    377400  *read_samples = 0;
    378401
     
    393416  } while (avPacket.stream_index != s->selected_stream);
    394417
    395   int got_frame = 0;
    396418#if FF_API_LAVF_AVCTX
    397   int ret = avcodec_send_packet(avCodecCtx, &avPacket);
     419  ret = avcodec_send_packet(avCodecCtx, &avPacket);
    398420  if (ret < 0 && ret != AVERROR_EOF) {
    399421    AUBIO_ERR("source_avcodec: error when sending packet for %s\n", s->path);
     
    416438  }
    417439#else
    418   int len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket);
     440  len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket);
    419441
    420442  if (len < 0) {
     
    429451
    430452#ifdef HAVE_AVRESAMPLE
    431   int in_linesize = 0;
     453  in_linesize = 0;
    432454  av_samples_get_buffer_size(&in_linesize, avCodecCtx->channels,
    433455      avFrame->nb_samples, avCodecCtx->sample_fmt, 1);
    434   int in_samples = avFrame->nb_samples;
    435   int out_linesize = 0;
    436   int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE;
    437   int out_samples = avresample_convert ( avr,
     456  in_samples = avFrame->nb_samples;
     457  out_linesize = 0;
     458  max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE;
     459  out_samples = avresample_convert ( avr,
    438460        (uint8_t **)&output, out_linesize, max_out_samples,
    439461        (uint8_t **)avFrame->data, in_linesize, in_samples);
    440462#elif defined(HAVE_SWRESAMPLE)
    441   int in_samples = avFrame->nb_samples;
    442   int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels;
    443   int out_samples = swr_convert( avr,
     463  in_samples = avFrame->nb_samples;
     464  max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels;
     465  out_samples = swr_convert( avr,
    444466      (uint8_t **)&output, max_out_samples,
    445467      (const uint8_t **)avFrame->data, in_samples);
     
    606628  if (s->avFormatCtx != NULL) {
    607629    avformat_close_input(&s->avFormatCtx);
    608 #ifndef HAVE_AUBIO_LIBAVCODEC_DEPRECATED // avoid crash on old libavcodec54
    609     avformat_free_context(s->avFormatCtx);
    610 #endif
    611630    s->avFormatCtx = NULL;
    612631  }
  • src/mathutils.c

    rfbafd2c rb201912  
    290290}
    291291
     292void fvec_push(fvec_t *in, smpl_t new_elem) {
     293  uint_t i;
     294  for (i = 0; i < in->length - 1; i++) {
     295    in->data[i] = in->data[i + 1];
     296  }
     297  in->data[in->length - 1] = new_elem;
     298}
     299
     300void fvec_clamp(fvec_t *in, smpl_t absmax) {
     301  uint_t i;
     302  for (i = 0; i < in->length; i++) {
     303    if (in->data[i] > 0 && in->data[i] > ABS(absmax)) {
     304      in->data[i] = absmax;
     305    } else if (in->data[i] < 0 && in->data[i] < -ABS(absmax)) {
     306      in->data[i] = -absmax;
     307    }
     308  }
     309}
     310
    292311smpl_t
    293312aubio_level_lin (const fvec_t * f)
  • src/mathutils.h

    rfbafd2c rb201912  
    117117*/
    118118void fvec_ishift (fvec_t * v);
     119
     120/** push a new element to the end of a vector, erasing the first element and
     121 * sliding all others
     122
     123  \param in vector to push to
     124  \param new_elem new_element to add at the end of the vector
     125
     126  In numpy words, this is equivalent to: in = np.concatenate([in, [new_elem]])[1:]
     127
     128*/
     129void fvec_push(fvec_t *in, smpl_t new_elem);
    119130
    120131/** compute the sum of all elements of a vector
  • src/musicutils.h

    rfbafd2c rb201912  
    157157smpl_t aubio_level_detection (const fvec_t * v, smpl_t threshold);
    158158
     159/** clamp the values of a vector within the range [-abs(max), abs(max)]
     160
     161  \param in vector to clamp
     162  \param absmax maximum value over which input vector elements should be clamped
     163
     164*/
     165void fvec_clamp(fvec_t *in, smpl_t absmax);
     166
    159167#ifdef __cplusplus
    160168}
  • src/onset/onset.c

    rfbafd2c rb201912  
    2424#include "spectral/specdesc.h"
    2525#include "spectral/phasevoc.h"
     26#include "spectral/awhitening.h"
    2627#include "onset/peakpicker.h"
    2728#include "mathutils.h"
    2829#include "onset/onset.h"
     30
     31void aubio_onset_default_parameters (aubio_onset_t *o, const char_t * method);
    2932
    3033/** structure to store object state */
     
    4346  uint_t total_frames;          /**< total number of frames processed since the beginning */
    4447  uint_t last_onset;            /**< last detected onset location, in frames */
     48
     49  uint_t apply_compression;
     50  smpl_t lambda_compression;
     51  uint_t apply_awhitening;      /**< apply adaptive spectral whitening */
     52  aubio_spectral_whitening_t *spectral_whitening;
    4553};
    4654
     
    5058  smpl_t isonset = 0;
    5159  aubio_pvoc_do (o->pv,input, o->fftgrain);
     60  /*
     61  if (apply_filtering) {
     62  }
     63  */
     64  if (o->apply_awhitening) {
     65    aubio_spectral_whitening_do(o->spectral_whitening, o->fftgrain);
     66  }
     67  if (o->apply_compression) {
     68    cvec_logmag(o->fftgrain, o->lambda_compression);
     69  }
    5270  aubio_specdesc_do (o->od, o->fftgrain, o->desc);
    5371  aubio_peakpicker_do(o->pp, o->desc, onset);
     
    5876      isonset  = 0;
    5977    } else {
     78      // we have an onset
    6079      uint_t new_onset = o->total_frames + (uint_t)ROUND(isonset * o->hop_size);
     80      // check if last onset time was more than minioi ago
    6181      if (o->last_onset + o->minioi < new_onset) {
    62         //AUBIO_DBG ("accepted detection, marking as onset\n");
    63         o->last_onset = new_onset;
     82        // start of file: make sure (new_onset - delay) >= 0
     83        if (o->last_onset > 0 && o->delay > new_onset) {
     84          isonset = 0;
     85        } else {
     86          //AUBIO_DBG ("accepted detection, marking as onset\n");
     87          o->last_onset = MAX(o->delay, new_onset);
     88        }
    6489      } else {
    6590        //AUBIO_DBG ("doubled onset, not marking as onset\n");
     
    100125}
    101126
     127uint_t aubio_onset_set_awhitening (aubio_onset_t *o, uint_t enable)
     128{
     129  o->apply_awhitening = enable == 1 ? 1 : 0;
     130  return AUBIO_OK;
     131}
     132
     133smpl_t aubio_onset_get_awhitening (aubio_onset_t *o)
     134{
     135  return o->apply_awhitening;
     136}
     137
     138uint_t aubio_onset_set_compression (aubio_onset_t *o, smpl_t lambda)
     139{
     140  if (lambda < 0.) {
     141    return AUBIO_FAIL;
     142  }
     143  o->lambda_compression = lambda;
     144  o->apply_compression = (o->lambda_compression > 0.) ? 1 : 0;
     145  return AUBIO_OK;
     146}
     147
     148smpl_t aubio_onset_get_compression (aubio_onset_t *o)
     149{
     150  return o->apply_compression ? o->lambda_compression : 0;
     151}
     152
    102153uint_t aubio_onset_set_silence(aubio_onset_t * o, smpl_t silence) {
    103154  o->silence = silence;
     
    209260  o->fftgrain = new_cvec(buf_size);
    210261  o->desc = new_fvec(1);
    211 
    212   /* set some default parameter */
    213   aubio_onset_set_threshold (o, 0.3);
    214   aubio_onset_set_delay(o, 4.3 * hop_size);
    215   aubio_onset_set_minioi_ms(o, 20.);
    216   aubio_onset_set_silence(o, -70.);
     262  o->spectral_whitening = new_aubio_spectral_whitening(buf_size, hop_size, samplerate);
    217263
    218264  /* initialize internal variables */
    219   o->last_onset = 0;
    220   o->total_frames = 0;
     265  aubio_onset_set_default_parameters (o, onset_mode);
     266
     267  aubio_onset_reset(o);
    221268  return o;
    222269
     
    229276}
    230277
     278void aubio_onset_reset (aubio_onset_t *o) {
     279  o->last_onset = 0;
     280  o->total_frames = 0;
     281}
     282
     283uint_t aubio_onset_set_default_parameters (aubio_onset_t * o, const char_t * onset_mode)
     284{
     285  uint_t ret = AUBIO_OK;
     286  /* set some default parameter */
     287  aubio_onset_set_threshold (o, 0.3);
     288  aubio_onset_set_delay (o, 4.3 * o->hop_size);
     289  aubio_onset_set_minioi_ms (o, 50.);
     290  aubio_onset_set_silence (o, -70.);
     291  // disable spectral whitening
     292  aubio_onset_set_awhitening (o, 0);
     293  // disable logarithmic magnitude
     294  aubio_onset_set_compression (o, 0.);
     295
     296  /* method specific optimisations */
     297  if (strcmp (onset_mode, "energy") == 0) {
     298  } else if (strcmp (onset_mode, "hfc") == 0 || strcmp (onset_mode, "default") == 0) {
     299    aubio_onset_set_threshold (o, 0.058);
     300    aubio_onset_set_compression (o, 1.);
     301  } else if (strcmp (onset_mode, "complexdomain") == 0
     302             || strcmp (onset_mode, "complex") == 0) {
     303    aubio_onset_set_delay (o, 4.6 * o->hop_size);
     304    aubio_onset_set_threshold (o, 0.15);
     305    aubio_onset_set_awhitening(o, 1);
     306    aubio_onset_set_compression (o, 1.);
     307  } else if (strcmp (onset_mode, "phase") == 0) {
     308    o->apply_compression = 0;
     309    aubio_onset_set_awhitening (o, 0);
     310  } else if (strcmp (onset_mode, "mkl") == 0) {
     311    aubio_onset_set_threshold (o, 0.05);
     312    aubio_onset_set_awhitening(o, 1);
     313    aubio_onset_set_compression (o, 0.02);
     314  } else if (strcmp (onset_mode, "kl") == 0) {
     315    aubio_onset_set_threshold (o, 0.35);
     316    aubio_onset_set_awhitening(o, 1);
     317    aubio_onset_set_compression (o, 0.02);
     318  } else if (strcmp (onset_mode, "specflux") == 0) {
     319    aubio_onset_set_threshold (o, 0.18);
     320    aubio_onset_set_awhitening(o, 1);
     321    aubio_spectral_whitening_set_relax_time(o->spectral_whitening, 100);
     322    aubio_spectral_whitening_set_floor(o->spectral_whitening, 1.);
     323    aubio_onset_set_compression (o, 10.);
     324  } else if (strcmp (onset_mode, "specdiff") == 0) {
     325  } else if (strcmp (onset_mode, "old_default") == 0) {
     326    // used to reproduce results obtained with the previous version
     327    aubio_onset_set_threshold (o, 0.3);
     328    aubio_onset_set_minioi_ms (o, 20.);
     329    aubio_onset_set_compression (o, 0.);
     330  } else {
     331    AUBIO_WRN("onset: unknown spectral descriptor type %s, "
     332               "using default parameters.\n", onset_mode);
     333    ret = AUBIO_FAIL;
     334  }
     335  return ret;
     336}
     337
    231338void del_aubio_onset (aubio_onset_t *o)
    232339{
     340  del_aubio_spectral_whitening(o->spectral_whitening);
    233341  del_aubio_specdesc(o->od);
    234342  del_aubio_peakpicker(o->pp);
  • src/onset/onset.h

    rfbafd2c rb201912  
    118118smpl_t aubio_onset_get_last_ms (const aubio_onset_t *o);
    119119
     120/** set onset detection adaptive whitening
     121
     122  \param o onset detection object as returned by new_aubio_onset()
     123  \param enable 1 to enable, 0 to disable
     124
     125  \return 0 if successful, 1 otherwise
     126
     127*/
     128uint_t aubio_onset_set_awhitening(aubio_onset_t * o, uint_t enable);
     129
     130/** get onset detection adaptive whitening
     131
     132  \param o onset detection object as returned by new_aubio_onset()
     133
     134  \return 1 if enabled, 0 otherwise
     135
     136*/
     137smpl_t aubio_onset_get_awhitening(aubio_onset_t * o);
     138
     139/** set or disable log compression
     140
     141  \param o onset detection object as returned by new_aubio_onset()
     142  \param lambda logarithmic compression factor, 0 to disable
     143
     144  \return 0 if successful, 1 otherwise
     145
     146 */
     147uint_t aubio_onset_set_compression(aubio_onset_t *o, smpl_t lambda);
     148
     149/** get onset detection log compression
     150
     151  \param o onset detection object as returned by new_aubio_onset()
     152
     153  \returns 0 if disabled, compression factor otherwise
     154
     155 */
     156smpl_t aubio_onset_get_compression(aubio_onset_t *o);
     157
    120158/** set onset detection silence threshold
    121159
     
    274312*/
    275313smpl_t aubio_onset_get_threshold(const aubio_onset_t * o);
     314
     315/** set default parameters
     316
     317  \param o onset detection object as returned by new_aubio_onset()
     318  \param onset_mode detection mode to adjust
     319
     320  This function is called at the end of new_aubio_onset().
     321
     322 */
     323uint_t aubio_onset_set_default_parameters (aubio_onset_t * o, const char_t * onset_mode);
     324
     325/** reset onset detection
     326
     327  \param o onset detection object as returned by new_aubio_onset()
     328
     329  Reset current time and last onset to 0.
     330
     331  This function is called at the end of new_aubio_onset().
     332
     333 */
     334void aubio_onset_reset(aubio_onset_t * o);
    276335
    277336/** delete onset detection object
  • src/onset/peakpicker.c

    rfbafd2c rb201912  
    9393  fvec_t *scratch = p->scratch;
    9494  smpl_t mean = 0., median = 0.;
    95   uint_t length = p->win_post + p->win_pre + 1;
    9695  uint_t j = 0;
    9796
    98   /* store onset in onset_keep */
    99   /* shift all elements but last, then write last */
    100   for (j = 0; j < length - 1; j++) {
    101     onset_keep->data[j] = onset_keep->data[j + 1];
    102     onset_proc->data[j] = onset_keep->data[j];
    103   }
    104   onset_keep->data[length - 1] = onset->data[0];
    105   onset_proc->data[length - 1] = onset->data[0];
     97  /* push new novelty to the end */
     98  fvec_push(onset_keep, onset->data[0]);
     99  /* store a copy */
     100  fvec_copy(onset_keep, onset_proc);
    106101
    107   /* filter onset_proc */
    108   /** \bug filtfilt calculated post+pre times, should be only once !? */
     102  /* filter this copy */
    109103  aubio_filter_do_filtfilt (p->biquad, onset_proc, scratch);
    110104
    111105  /* calculate mean and median for onset_proc */
    112106  mean = fvec_mean (onset_proc);
    113   /* copy to scratch */
    114   for (j = 0; j < length; j++)
    115     scratch->data[j] = onset_proc->data[j];
     107
     108  /* copy to scratch and compute its median */
     109  fvec_copy(onset_proc, scratch);
    116110  median = p->thresholdfn (scratch);
    117111
  • src/spectral/specdesc.c

    rfbafd2c rb201912  
    3131void aubio_specdesc_complex(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset);
    3232void aubio_specdesc_phase(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset);
     33void aubio_specdesc_wphase(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset);
    3334void aubio_specdesc_specdiff(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset);
    3435void aubio_specdesc_kl(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset);
     
    5859        aubio_onset_complex,        /**< complex domain */       
    5960        aubio_onset_phase,          /**< phase fast */           
     61        aubio_onset_wphase,         /**< weighted phase */
    6062        aubio_onset_kl,             /**< Kullback Liebler */
    6163        aubio_onset_mkl,            /**< modified Kullback Liebler */
     
    158160  onset->data[0] = aubio_hist_mean(o->histog); 
    159161  //onset->data[0] = fvec_mean(o->dev1);
     162}
     163
     164/* weighted phase */
     165void
     166aubio_specdesc_wphase(aubio_specdesc_t *o,
     167    const cvec_t *fftgrain, fvec_t *onset) {
     168  uint_t i;
     169  aubio_specdesc_phase(o, fftgrain, onset);
     170  for (i = 0; i < fftgrain->length; i++) {
     171    o->dev1->data[i] *= fftgrain->norm[i];
     172  }
     173  /* apply o->histogram */
     174  aubio_hist_dyn_notnull(o->histog,o->dev1);
     175  /* weight it */
     176  aubio_hist_weight(o->histog);
     177  /* its mean is the result */
     178  onset->data[0] = aubio_hist_mean(o->histog);
    160179}
    161180
     
    251270  else if (strcmp (onset_mode, "phase") == 0)
    252271      onset_type = aubio_onset_phase;
     272  else if (strcmp (onset_mode, "wphase") == 0)
     273      onset_type = aubio_onset_wphase;
    253274  else if (strcmp (onset_mode, "mkl") == 0)
    254275      onset_type = aubio_onset_mkl;
     
    271292  else if (strcmp (onset_mode, "rolloff") == 0)
    272293      onset_type = aubio_specmethod_rolloff;
     294  else if (strcmp (onset_mode, "old_default") == 0)
     295      onset_type = aubio_onset_default;
    273296  else if (strcmp (onset_mode, "default") == 0)
    274297      onset_type = aubio_onset_default;
     
    292315      break;
    293316    case aubio_onset_phase:
     317    case aubio_onset_wphase:
    294318      o->dev1   = new_fvec(rsize);
    295319      o->theta1 = new_fvec(rsize);
     
    326350      o->funcpointer = aubio_specdesc_phase;
    327351      break;
     352    case aubio_onset_wphase:
     353      o->funcpointer = aubio_specdesc_wphase;
     354      break;
    328355    case aubio_onset_specdiff:
    329356      o->funcpointer = aubio_specdesc_specdiff;
     
    379406      break;
    380407    case aubio_onset_phase:
     408    case aubio_onset_wphase:
    381409      del_fvec(o->dev1);
    382410      del_fvec(o->theta1);
  • src/spectral/specdesc.h

    rfbafd2c rb201912  
    6060  Hong-Kong, 2003.
    6161
     62  \b \p wphase : Weighted Phase Deviation onset detection function
     63
     64  S. Dixon. Onset detection revisited. In Proceedings of the 9th International
     65  Conference on Digital Audio Ef- fects (DAFx) , pages 133–137, 2006.
     66
     67  http://www.eecs.qmul.ac.uk/~simond/pub/2006/dafx.pdf
     68
    6269  \b \p specdiff : Spectral difference method onset detection function
    6370
     
    175182  The parameter \p method is a string that can be any of:
    176183
    177     - `energy`, `hfc`, `complex`, `phase`, `specdiff`, `kl`, `mkl`, `specflux`
    178     - `centroid`, `spread`, `skewness`, `kurtosis`, `slope`, `decrease`, `rolloff`
     184    - onset novelty functions: `complex`, `energy`, `hfc`, `kl`, `mkl`,
     185    `phase`, `specdiff`, `specflux`, `wphase`,
     186
     187    - spectral descriptors: `centroid`, `decrease`, `kurtosis`, `rolloff`,
     188    `skewness`, `slope`, `spread`.
    179189
    180190*/
  • src/synth/wavetable.c

    rfbafd2c rb201912  
    104104      output->data[i] += input->data[i];
    105105    }
     106    fvec_clamp(output, 1.);
    106107  }
    107108}
  • this_version.py

    rfbafd2c rb201912  
    11#! python
    22import os
     3import sys
    34
    45__version_info = {} # keep a reference to parse VERSION once
     
    8283        gitsha = subprocess.check_output(gitcmd).strip().decode('utf8')
    8384    except Exception as e:
    84         print('git command error :%s' % e)
     85        sys.stderr.write('git command error :%s\n' % e)
    8586        return None
    8687    # check if we have a clean tree
     
    8990        output = subprocess.check_output(gitcmd).decode('utf8')
    9091        if len(output):
    91             print('Info: current tree is not clean\n')
    92             print(output)
     92            sys.stderr.write('Info: current tree is not clean\n\n')
     93            sys.stderr.write(output + '\n')
    9394            gitsha += '+mods'
    9495    except subprocess.CalledProcessError as e:
    95         print (e)
     96        sys.stderr.write('git command error :%s\n' % e)
    9697        pass
    9798    return gitsha
    9899
    99100if __name__ == '__main__':
    100     print ('%30s'% 'aubio version:', get_aubio_version())
    101     print ('%30s'% 'python-aubio version:', get_aubio_pyversion())
     101    if len(sys.argv) > 1 and sys.argv[1] == '-v':
     102        print (get_aubio_version())
     103    elif len(sys.argv) > 1 and sys.argv[1] == '-p':
     104        print (get_aubio_version())
     105    else:
     106        print ('%30s'% 'aubio version:', get_aubio_version())
     107        print ('%30s'% 'python-aubio version:', get_aubio_pyversion())
  • wscript

    rfbafd2c rb201912  
    334334                mandatory = ctx.options.enable_avcodec)
    335335        ctx.check_cfg(package = 'libswresample',
    336                 args = '--cflags --libs libswresample >= 2.3.0',
     336                args = '--cflags --libs libswresample >= 1.2.0',
    337337                uselib_store = 'SWRESAMPLE',
    338338                mandatory = False)
     
    456456    # build documentation from source files using doxygen
    457457    if bld.env['DOXYGEN']:
    458         bld( name = 'doxygen', rule = 'doxygen ${SRC} > /dev/null',
     458        bld.env.VERSION = VERSION
     459        rule = '( cat ${SRC} && echo PROJECT_NUMBER=${VERSION}; )'
     460        rule += ' | doxygen - > /dev/null'
     461        bld( name = 'doxygen', rule = rule,
    459462                source = 'doc/web.cfg',
    460463                target = '../doc/web/html/index.html',
Note: See TracChangeset for help on using the changeset viewer.