Commit efd1ed5e1e7524b7f79306f6c44111a203b4bba7
Committed by
Moritz Wirger
1 parent
58186067
Update documentation pages.
- use snippets to verify that the code actually compiles - travis compiles examples and snippets - update Doxyfile
Showing
14 changed files
with
589 additions
and
336 deletions
.travis.yml
| @@ -49,11 +49,12 @@ install: | @@ -49,11 +49,12 @@ install: | ||
| 49 | 49 | ||
| 50 | script: | 50 | script: |
| 51 | ############################################################################ | 51 | ############################################################################ |
| 52 | - # Build main and tests | 52 | + # Build main, tests and examples |
| 53 | ############################################################################ | 53 | ############################################################################ |
| 54 | - mkdir -p build | 54 | - mkdir -p build |
| 55 | - cd build | 55 | - cd build |
| 56 | - - cmake .. -Dhueplusplus_TESTS=ON -DCMAKE_BUILD_TYPE=Debug | 56 | + - cmake .. -Dhueplusplus_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -Dhueplusplus_EXAMPLES=ON |
| 57 | + - make hueplusplus_examples hueplusplus_snippets | ||
| 57 | - make coveragetest | 58 | - make coveragetest |
| 58 | - cd .. | 59 | - cd .. |
| 59 | - doxygen Doxyfile | 60 | - doxygen Doxyfile |
CMakeLists.txt
| @@ -22,7 +22,7 @@ endif() | @@ -22,7 +22,7 @@ endif() | ||
| 22 | 22 | ||
| 23 | # options to set | 23 | # options to set |
| 24 | option(hueplusplus_TESTS "Build tests" OFF) | 24 | option(hueplusplus_TESTS "Build tests" OFF) |
| 25 | -option(hueplusplus_SAMPLES "Build examples" OFF) | 25 | +option(hueplusplus_EXAMPLES "Build examples" OFF) |
| 26 | 26 | ||
| 27 | option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) | 27 | option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) |
| 28 | find_program(CLANG_TIDY_EXE NAMES "clang-tidy" DOC "Path to clang-tidy executable") | 28 | find_program(CLANG_TIDY_EXE NAMES "clang-tidy" DOC "Path to clang-tidy executable") |
| @@ -100,6 +100,6 @@ if(hueplusplus_TESTS) | @@ -100,6 +100,6 @@ if(hueplusplus_TESTS) | ||
| 100 | add_subdirectory("test") | 100 | add_subdirectory("test") |
| 101 | endif() | 101 | endif() |
| 102 | 102 | ||
| 103 | -if(hueplusplus_SAMPLES) | 103 | +if(hueplusplus_EXAMPLES) |
| 104 | add_subdirectory("examples") | 104 | add_subdirectory("examples") |
| 105 | endif() | 105 | endif() |
Doxyfile
| 1 | -# Doxyfile 1.8.11 | 1 | +# Doxyfile 1.8.20 |
| 2 | 2 | ||
| 3 | # This file describes the settings to be used by the documentation system | 3 | # This file describes the settings to be used by the documentation system |
| 4 | # doxygen (www.doxygen.org) for a project. | 4 | # doxygen (www.doxygen.org) for a project. |
| @@ -17,11 +17,11 @@ | @@ -17,11 +17,11 @@ | ||
| 17 | # Project related configuration options | 17 | # Project related configuration options |
| 18 | #--------------------------------------------------------------------------- | 18 | #--------------------------------------------------------------------------- |
| 19 | 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. | 20 | +# This tag specifies the encoding used for all characters in the configuration |
| 21 | +# file that follow. The default is UTF-8 which is also the encoding used for all | ||
| 22 | +# text before the first occurrence of this tag. Doxygen uses libiconv (or the | ||
| 23 | +# iconv built into libc) for the transcoding. See | ||
| 24 | +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. | ||
| 25 | # The default value is: UTF-8. | 25 | # The default value is: UTF-8. |
| 26 | 26 | ||
| 27 | DOXYFILE_ENCODING = UTF-8 | 27 | DOXYFILE_ENCODING = UTF-8 |
| @@ -38,20 +38,20 @@ PROJECT_NAME = hueplusplus | @@ -38,20 +38,20 @@ PROJECT_NAME = hueplusplus | ||
| 38 | # could be handy for archiving the generated documentation or if some version | 38 | # could be handy for archiving the generated documentation or if some version |
| 39 | # control system is used. | 39 | # control system is used. |
| 40 | 40 | ||
| 41 | -PROJECT_NUMBER = | 41 | +PROJECT_NUMBER = 1.0.0 |
| 42 | 42 | ||
| 43 | # Using the PROJECT_BRIEF tag one can provide an optional one line description | 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 | 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. | 45 | # quick idea about the purpose of the project. Keep the description short. |
| 46 | 46 | ||
| 47 | -PROJECT_BRIEF = | 47 | +PROJECT_BRIEF = |
| 48 | 48 | ||
| 49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included | 49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included |
| 50 | # in the documentation. The maximum height of the logo should not exceed 55 | 50 | # in the documentation. The maximum height of the logo should not exceed 55 |
| 51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy | 51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy |
| 52 | # the logo to the output directory. | 52 | # the logo to the output directory. |
| 53 | 53 | ||
| 54 | -PROJECT_LOGO = | 54 | +PROJECT_LOGO = |
| 55 | 55 | ||
| 56 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path | 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 | 57 | # into which the generated documentation will be written. If a relative path is |
| @@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO | @@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO | ||
| 93 | 93 | ||
| 94 | OUTPUT_LANGUAGE = English | 94 | OUTPUT_LANGUAGE = English |
| 95 | 95 | ||
| 96 | +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all | ||
| 97 | +# documentation generated by doxygen is written. Doxygen will use this | ||
| 98 | +# information to generate all generated output in the proper direction. | ||
| 99 | +# Possible values are: None, LTR, RTL and Context. | ||
| 100 | +# The default value is: None. | ||
| 101 | + | ||
| 102 | +OUTPUT_TEXT_DIRECTION = None | ||
| 103 | + | ||
| 96 | # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member | 104 | # 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 | 105 | # descriptions after the members that are listed in the file and class |
| 98 | # documentation (similar to Javadoc). Set to NO to disable this. | 106 | # documentation (similar to Javadoc). Set to NO to disable this. |
| @@ -162,7 +170,7 @@ FULL_PATH_NAMES = YES | @@ -162,7 +170,7 @@ FULL_PATH_NAMES = YES | ||
| 162 | # will be relative from the directory where doxygen is started. | 170 | # will be relative from the directory where doxygen is started. |
| 163 | # This tag requires that the tag FULL_PATH_NAMES is set to YES. | 171 | # This tag requires that the tag FULL_PATH_NAMES is set to YES. |
| 164 | 172 | ||
| 165 | -STRIP_FROM_PATH = | 173 | +STRIP_FROM_PATH = |
| 166 | 174 | ||
| 167 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the | 175 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the |
| 168 | # path mentioned in the documentation of a class, which tells the reader which | 176 | # path mentioned in the documentation of a class, which tells the reader which |
| @@ -189,6 +197,16 @@ SHORT_NAMES = NO | @@ -189,6 +197,16 @@ SHORT_NAMES = NO | ||
| 189 | 197 | ||
| 190 | JAVADOC_AUTOBRIEF = NO | 198 | JAVADOC_AUTOBRIEF = NO |
| 191 | 199 | ||
| 200 | +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line | ||
| 201 | +# such as | ||
| 202 | +# /*************** | ||
| 203 | +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the | ||
| 204 | +# Javadoc-style will behave just like regular comments and it will not be | ||
| 205 | +# interpreted by doxygen. | ||
| 206 | +# The default value is: NO. | ||
| 207 | + | ||
| 208 | +JAVADOC_BANNER = NO | ||
| 209 | + | ||
| 192 | # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first | 210 | # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first |
| 193 | # line (until the first dot) of a Qt-style comment as the brief description. If | 211 | # line (until the first dot) of a Qt-style comment as the brief description. If |
| 194 | # set to NO, the Qt-style will behave just like regular Qt-style comments (thus | 212 | # set to NO, the Qt-style will behave just like regular Qt-style comments (thus |
| @@ -209,6 +227,14 @@ QT_AUTOBRIEF = NO | @@ -209,6 +227,14 @@ QT_AUTOBRIEF = NO | ||
| 209 | 227 | ||
| 210 | MULTILINE_CPP_IS_BRIEF = NO | 228 | MULTILINE_CPP_IS_BRIEF = NO |
| 211 | 229 | ||
| 230 | +# By default Python docstrings are displayed as preformatted text and doxygen's | ||
| 231 | +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the | ||
| 232 | +# doxygen's special commands can be used and the contents of the docstring | ||
| 233 | +# documentation blocks is shown as doxygen documentation. | ||
| 234 | +# The default value is: YES. | ||
| 235 | + | ||
| 236 | +PYTHON_DOCSTRING = YES | ||
| 237 | + | ||
| 212 | # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the | 238 | # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the |
| 213 | # documentation from any documented member that it re-implements. | 239 | # documentation from any documented member that it re-implements. |
| 214 | # The default value is: YES. | 240 | # The default value is: YES. |
| @@ -236,15 +262,14 @@ TAB_SIZE = 4 | @@ -236,15 +262,14 @@ TAB_SIZE = 4 | ||
| 236 | # will allow you to put the command \sideeffect (or @sideeffect) in the | 262 | # will allow you to put the command \sideeffect (or @sideeffect) in the |
| 237 | # documentation, which will result in a user-defined paragraph with heading | 263 | # documentation, which will result in a user-defined paragraph with heading |
| 238 | # "Side Effects:". You can put \n's in the value part of an alias to insert | 264 | # "Side Effects:". You can put \n's in the value part of an alias to insert |
| 239 | -# newlines. | ||
| 240 | - | ||
| 241 | -ALIASES = | ||
| 242 | - | ||
| 243 | -# This tag can be used to specify a number of word-keyword mappings (TCL only). | ||
| 244 | -# A mapping has the form "name=value". For example adding "class=itcl::class" | ||
| 245 | -# will allow you to use the command class in the itcl::class meaning. | 265 | +# newlines (in the resulting output). You can put ^^ in the value part of an |
| 266 | +# alias to insert a newline as if a physical newline was in the original file. | ||
| 267 | +# When you need a literal { or } or , in the value part of an alias you have to | ||
| 268 | +# escape them by means of a backslash (\), this can lead to conflicts with the | ||
| 269 | +# commands \{ and \} for these it is advised to use the version @{ and @} or use | ||
| 270 | +# a double escape (\\{ and \\}) | ||
| 246 | 271 | ||
| 247 | -TCL_SUBST = | 272 | +ALIASES = |
| 248 | 273 | ||
| 249 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources | 274 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources |
| 250 | # only. Doxygen will then generate output that is more tailored for C. For | 275 | # only. Doxygen will then generate output that is more tailored for C. For |
| @@ -274,28 +299,37 @@ OPTIMIZE_FOR_FORTRAN = NO | @@ -274,28 +299,37 @@ OPTIMIZE_FOR_FORTRAN = NO | ||
| 274 | 299 | ||
| 275 | OPTIMIZE_OUTPUT_VHDL = NO | 300 | OPTIMIZE_OUTPUT_VHDL = NO |
| 276 | 301 | ||
| 302 | +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice | ||
| 303 | +# sources only. Doxygen will then generate output that is more tailored for that | ||
| 304 | +# language. For instance, namespaces will be presented as modules, types will be | ||
| 305 | +# separated into more groups, etc. | ||
| 306 | +# The default value is: NO. | ||
| 307 | + | ||
| 308 | +OPTIMIZE_OUTPUT_SLICE = NO | ||
| 309 | + | ||
| 277 | # Doxygen selects the parser to use depending on the extension of the files it | 310 | # Doxygen selects the parser to use depending on the extension of the files it |
| 278 | # parses. With this tag you can assign which parser to use for a given | 311 | # parses. With this tag you can assign which parser to use for a given |
| 279 | # extension. Doxygen has a built-in mapping, but you can override or extend it | 312 | # extension. Doxygen has a built-in mapping, but you can override or extend it |
| 280 | # using this tag. The format is ext=language, where ext is a file extension, and | 313 | # using this tag. The format is ext=language, where ext is a file extension, and |
| 281 | -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, | ||
| 282 | -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: | ||
| 283 | -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: | ||
| 284 | -# Fortran. In the later case the parser tries to guess whether the code is fixed | ||
| 285 | -# or free formatted code, this is the default for Fortran type files), VHDL. For | ||
| 286 | -# instance to make doxygen treat .inc files as Fortran files (default is PHP), | ||
| 287 | -# and .f files as C (default is Fortran), use: inc=Fortran f=C. | 314 | +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, |
| 315 | +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, | ||
| 316 | +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: | ||
| 317 | +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser | ||
| 318 | +# tries to guess whether the code is fixed or free formatted code, this is the | ||
| 319 | +# default for Fortran type files). For instance to make doxygen treat .inc files | ||
| 320 | +# as Fortran files (default is PHP), and .f files as C (default is Fortran), | ||
| 321 | +# use: inc=Fortran f=C. | ||
| 288 | # | 322 | # |
| 289 | # Note: For files without extension you can use no_extension as a placeholder. | 323 | # Note: For files without extension you can use no_extension as a placeholder. |
| 290 | # | 324 | # |
| 291 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise | 325 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise |
| 292 | # the files are not read by doxygen. | 326 | # the files are not read by doxygen. |
| 293 | 327 | ||
| 294 | -EXTENSION_MAPPING = | 328 | +EXTENSION_MAPPING = |
| 295 | 329 | ||
| 296 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments | 330 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments |
| 297 | # according to the Markdown format, which allows for more readable | 331 | # according to the Markdown format, which allows for more readable |
| 298 | -# documentation. See http://daringfireball.net/projects/markdown/ for details. | 332 | +# documentation. See https://daringfireball.net/projects/markdown/ for details. |
| 299 | # The output of markdown processing is further processed by doxygen, so you can | 333 | # The output of markdown processing is further processed by doxygen, so you can |
| 300 | # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in | 334 | # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in |
| 301 | # case of backward compatibilities issues. | 335 | # case of backward compatibilities issues. |
| @@ -303,6 +337,15 @@ EXTENSION_MAPPING = | @@ -303,6 +337,15 @@ EXTENSION_MAPPING = | ||
| 303 | 337 | ||
| 304 | MARKDOWN_SUPPORT = YES | 338 | MARKDOWN_SUPPORT = YES |
| 305 | 339 | ||
| 340 | +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up | ||
| 341 | +# to that level are automatically included in the table of contents, even if | ||
| 342 | +# they do not have an id attribute. | ||
| 343 | +# Note: This feature currently applies only to Markdown headings. | ||
| 344 | +# Minimum value: 0, maximum value: 99, default value: 5. | ||
| 345 | +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. | ||
| 346 | + | ||
| 347 | +TOC_INCLUDE_HEADINGS = 5 | ||
| 348 | + | ||
| 306 | # When enabled doxygen tries to link words that correspond to documented | 349 | # When enabled doxygen tries to link words that correspond to documented |
| 307 | # classes, or namespaces to their corresponding documentation. Such a link can | 350 | # classes, or namespaces to their corresponding documentation. Such a link can |
| 308 | # be prevented in individual cases by putting a % sign in front of the word or | 351 | # be prevented in individual cases by putting a % sign in front of the word or |
| @@ -328,7 +371,7 @@ BUILTIN_STL_SUPPORT = NO | @@ -328,7 +371,7 @@ BUILTIN_STL_SUPPORT = NO | ||
| 328 | CPP_CLI_SUPPORT = NO | 371 | CPP_CLI_SUPPORT = NO |
| 329 | 372 | ||
| 330 | # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: | 373 | # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: |
| 331 | -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen | 374 | +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen |
| 332 | # will parse them like normal C++ but will assume all classes use public instead | 375 | # will parse them like normal C++ but will assume all classes use public instead |
| 333 | # of private inheritance when no explicit protection keyword is present. | 376 | # of private inheritance when no explicit protection keyword is present. |
| 334 | # The default value is: NO. | 377 | # The default value is: NO. |
| @@ -414,6 +457,19 @@ TYPEDEF_HIDES_STRUCT = NO | @@ -414,6 +457,19 @@ TYPEDEF_HIDES_STRUCT = NO | ||
| 414 | 457 | ||
| 415 | LOOKUP_CACHE_SIZE = 0 | 458 | LOOKUP_CACHE_SIZE = 0 |
| 416 | 459 | ||
| 460 | +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use | ||
| 461 | +# during processing. When set to 0 doxygen will based this on the number of | ||
| 462 | +# cores available in the system. You can set it explicitly to a value larger | ||
| 463 | +# than 0 to get more control over the balance between CPU load and processing | ||
| 464 | +# speed. At this moment only the input processing can be done using multiple | ||
| 465 | +# threads. Since this is still an experimental feature the default is set to 1, | ||
| 466 | +# which efficively disables parallel processing. Please report any issues you | ||
| 467 | +# encounter. Generating dot graphs in parallel is controlled by the | ||
| 468 | +# DOT_NUM_THREADS setting. | ||
| 469 | +# Minimum value: 0, maximum value: 32, default value: 1. | ||
| 470 | + | ||
| 471 | +NUM_PROC_THREADS = 1 | ||
| 472 | + | ||
| 417 | #--------------------------------------------------------------------------- | 473 | #--------------------------------------------------------------------------- |
| 418 | # Build related configuration options | 474 | # Build related configuration options |
| 419 | #--------------------------------------------------------------------------- | 475 | #--------------------------------------------------------------------------- |
| @@ -434,6 +490,12 @@ EXTRACT_ALL = YES | @@ -434,6 +490,12 @@ EXTRACT_ALL = YES | ||
| 434 | 490 | ||
| 435 | EXTRACT_PRIVATE = NO | 491 | EXTRACT_PRIVATE = NO |
| 436 | 492 | ||
| 493 | +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual | ||
| 494 | +# methods of a class will be included in the documentation. | ||
| 495 | +# The default value is: NO. | ||
| 496 | + | ||
| 497 | +EXTRACT_PRIV_VIRTUAL = NO | ||
| 498 | + | ||
| 437 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal | 499 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal |
| 438 | # scope will be included in the documentation. | 500 | # scope will be included in the documentation. |
| 439 | # The default value is: NO. | 501 | # The default value is: NO. |
| @@ -488,8 +550,8 @@ HIDE_UNDOC_MEMBERS = NO | @@ -488,8 +550,8 @@ HIDE_UNDOC_MEMBERS = NO | ||
| 488 | HIDE_UNDOC_CLASSES = NO | 550 | HIDE_UNDOC_CLASSES = NO |
| 489 | 551 | ||
| 490 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend | 552 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend |
| 491 | -# (class|struct|union) declarations. If set to NO, these declarations will be | ||
| 492 | -# included in the documentation. | 553 | +# declarations. If set to NO, these declarations will be included in the |
| 554 | +# documentation. | ||
| 493 | # The default value is: NO. | 555 | # The default value is: NO. |
| 494 | 556 | ||
| 495 | HIDE_FRIEND_COMPOUNDS = NO | 557 | HIDE_FRIEND_COMPOUNDS = NO |
| @@ -512,7 +574,7 @@ INTERNAL_DOCS = NO | @@ -512,7 +574,7 @@ INTERNAL_DOCS = NO | ||
| 512 | # names in lower-case letters. If set to YES, upper-case letters are also | 574 | # names in lower-case letters. If set to YES, upper-case letters are also |
| 513 | # allowed. This is useful if you have classes or files whose names only differ | 575 | # allowed. This is useful if you have classes or files whose names only differ |
| 514 | # in case and if your file system supports case sensitive file names. Windows | 576 | # in case and if your file system supports case sensitive file names. Windows |
| 515 | -# and Mac users are advised to set this option to NO. | 577 | +# (including Cygwin) and Mac users are advised to set this option to NO. |
| 516 | # The default value is: system dependent. | 578 | # The default value is: system dependent. |
| 517 | 579 | ||
| 518 | CASE_SENSE_NAMES = NO | 580 | CASE_SENSE_NAMES = NO |
| @@ -639,7 +701,7 @@ GENERATE_DEPRECATEDLIST= YES | @@ -639,7 +701,7 @@ GENERATE_DEPRECATEDLIST= YES | ||
| 639 | # sections, marked by \if <section_label> ... \endif and \cond <section_label> | 701 | # sections, marked by \if <section_label> ... \endif and \cond <section_label> |
| 640 | # ... \endcond blocks. | 702 | # ... \endcond blocks. |
| 641 | 703 | ||
| 642 | -ENABLED_SECTIONS = | 704 | +ENABLED_SECTIONS = |
| 643 | 705 | ||
| 644 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the | 706 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the |
| 645 | # initial value of a variable or macro / define can have for it to appear in the | 707 | # initial value of a variable or macro / define can have for it to appear in the |
| @@ -681,7 +743,7 @@ SHOW_NAMESPACES = YES | @@ -681,7 +743,7 @@ SHOW_NAMESPACES = YES | ||
| 681 | # by doxygen. Whatever the program writes to standard output is used as the file | 743 | # by doxygen. Whatever the program writes to standard output is used as the file |
| 682 | # version. For an example see the documentation. | 744 | # version. For an example see the documentation. |
| 683 | 745 | ||
| 684 | -FILE_VERSION_FILTER = | 746 | +FILE_VERSION_FILTER = |
| 685 | 747 | ||
| 686 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed | 748 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed |
| 687 | # by doxygen. The layout file controls the global structure of the generated | 749 | # by doxygen. The layout file controls the global structure of the generated |
| @@ -694,17 +756,17 @@ FILE_VERSION_FILTER = | @@ -694,17 +756,17 @@ FILE_VERSION_FILTER = | ||
| 694 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE | 756 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE |
| 695 | # tag is left empty. | 757 | # tag is left empty. |
| 696 | 758 | ||
| 697 | -LAYOUT_FILE = | 759 | +LAYOUT_FILE = |
| 698 | 760 | ||
| 699 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing | 761 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing |
| 700 | # the reference definitions. This must be a list of .bib files. The .bib | 762 | # the reference definitions. This must be a list of .bib files. The .bib |
| 701 | # extension is automatically appended if omitted. This requires the bibtex tool | 763 | # extension is automatically appended if omitted. This requires the bibtex tool |
| 702 | -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. | 764 | +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. |
| 703 | # For LaTeX the style of the bibliography can be controlled using | 765 | # For LaTeX the style of the bibliography can be controlled using |
| 704 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the | 766 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the |
| 705 | # search path. See also \cite for info how to create references. | 767 | # search path. See also \cite for info how to create references. |
| 706 | 768 | ||
| 707 | -CITE_BIB_FILES = | 769 | +CITE_BIB_FILES = |
| 708 | 770 | ||
| 709 | #--------------------------------------------------------------------------- | 771 | #--------------------------------------------------------------------------- |
| 710 | # Configuration options related to warning and progress messages | 772 | # Configuration options related to warning and progress messages |
| @@ -744,7 +806,8 @@ WARN_IF_DOC_ERROR = YES | @@ -744,7 +806,8 @@ WARN_IF_DOC_ERROR = YES | ||
| 744 | # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that | 806 | # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that |
| 745 | # are documented, but have no documentation for their parameters or return | 807 | # are documented, but have no documentation for their parameters or return |
| 746 | # value. If set to NO, doxygen will only warn about wrong or incomplete | 808 | # value. If set to NO, doxygen will only warn about wrong or incomplete |
| 747 | -# parameter documentation, but not about the absence of documentation. | 809 | +# parameter documentation, but not about the absence of documentation. If |
| 810 | +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. | ||
| 748 | # The default value is: NO. | 811 | # The default value is: NO. |
| 749 | 812 | ||
| 750 | WARN_NO_PARAMDOC = NO | 813 | WARN_NO_PARAMDOC = NO |
| @@ -769,7 +832,7 @@ WARN_FORMAT = "$file:$line: $text" | @@ -769,7 +832,7 @@ WARN_FORMAT = "$file:$line: $text" | ||
| 769 | # messages should be written. If left blank the output is written to standard | 832 | # messages should be written. If left blank the output is written to standard |
| 770 | # error (stderr). | 833 | # error (stderr). |
| 771 | 834 | ||
| 772 | -WARN_LOGFILE = | 835 | +WARN_LOGFILE = |
| 773 | 836 | ||
| 774 | #--------------------------------------------------------------------------- | 837 | #--------------------------------------------------------------------------- |
| 775 | # Configuration options related to the input files | 838 | # Configuration options related to the input files |
| @@ -783,12 +846,13 @@ WARN_LOGFILE = | @@ -783,12 +846,13 @@ WARN_LOGFILE = | ||
| 783 | 846 | ||
| 784 | INPUT = include/hueplusplus \ | 847 | INPUT = include/hueplusplus \ |
| 785 | src \ | 848 | src \ |
| 786 | - doc/markdown | 849 | + doc/markdown \ |
| 850 | + examples | ||
| 787 | 851 | ||
| 788 | # This tag can be used to specify the character encoding of the source files | 852 | # This tag can be used to specify the character encoding of the source files |
| 789 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses | 853 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses |
| 790 | # libiconv (or the iconv built into libc) for the transcoding. See the libiconv | 854 | # libiconv (or the iconv built into libc) for the transcoding. See the libiconv |
| 791 | -# documentation (see: http://www.gnu.org/software/libiconv) for the list of | 855 | +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of |
| 792 | # possible encodings. | 856 | # possible encodings. |
| 793 | # The default value is: UTF-8. | 857 | # The default value is: UTF-8. |
| 794 | 858 | ||
| @@ -805,8 +869,10 @@ INPUT_ENCODING = UTF-8 | @@ -805,8 +869,10 @@ INPUT_ENCODING = UTF-8 | ||
| 805 | # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, | 869 | # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, |
| 806 | # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, | 870 | # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, |
| 807 | # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, | 871 | # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, |
| 808 | -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, | ||
| 809 | -# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. | 872 | +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), |
| 873 | +# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen | ||
| 874 | +# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, | ||
| 875 | +# *.vhdl, *.ucf, *.qsf and *.ice. | ||
| 810 | 876 | ||
| 811 | FILE_PATTERNS = *.c \ | 877 | FILE_PATTERNS = *.c \ |
| 812 | *.cc \ | 878 | *.cc \ |
| @@ -866,7 +932,7 @@ RECURSIVE = YES | @@ -866,7 +932,7 @@ RECURSIVE = YES | ||
| 866 | # Note that relative paths are relative to the directory from which doxygen is | 932 | # Note that relative paths are relative to the directory from which doxygen is |
| 867 | # run. | 933 | # run. |
| 868 | 934 | ||
| 869 | -EXCLUDE = | 935 | +EXCLUDE = |
| 870 | 936 | ||
| 871 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or | 937 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or |
| 872 | # directories that are symbolic links (a Unix file system feature) are excluded | 938 | # directories that are symbolic links (a Unix file system feature) are excluded |
| @@ -882,7 +948,7 @@ EXCLUDE_SYMLINKS = NO | @@ -882,7 +948,7 @@ EXCLUDE_SYMLINKS = NO | ||
| 882 | # Note that the wildcards are matched against the file with absolute path, so to | 948 | # Note that the wildcards are matched against the file with absolute path, so to |
| 883 | # exclude all test directories for example use the pattern */test/* | 949 | # exclude all test directories for example use the pattern */test/* |
| 884 | 950 | ||
| 885 | -EXCLUDE_PATTERNS = | 951 | +EXCLUDE_PATTERNS = |
| 886 | 952 | ||
| 887 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | 953 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names |
| 888 | # (namespaces, classes, functions, etc.) that should be excluded from the | 954 | # (namespaces, classes, functions, etc.) that should be excluded from the |
| @@ -899,14 +965,14 @@ EXCLUDE_SYMBOLS = *::detail | @@ -899,14 +965,14 @@ EXCLUDE_SYMBOLS = *::detail | ||
| 899 | # that contain example code fragments that are included (see the \include | 965 | # that contain example code fragments that are included (see the \include |
| 900 | # command). | 966 | # command). |
| 901 | 967 | ||
| 902 | -EXAMPLE_PATH = | 968 | +EXAMPLE_PATH = examples |
| 903 | 969 | ||
| 904 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | 970 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the |
| 905 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and | 971 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and |
| 906 | # *.h) to filter out the source-files in the directories. If left blank all | 972 | # *.h) to filter out the source-files in the directories. If left blank all |
| 907 | # files are included. | 973 | # files are included. |
| 908 | 974 | ||
| 909 | -EXAMPLE_PATTERNS = * | 975 | +EXAMPLE_PATTERNS = *.cpp |
| 910 | 976 | ||
| 911 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | 977 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be |
| 912 | # searched for input files to be used with the \include or \dontinclude commands | 978 | # searched for input files to be used with the \include or \dontinclude commands |
| @@ -919,7 +985,7 @@ EXAMPLE_RECURSIVE = NO | @@ -919,7 +985,7 @@ EXAMPLE_RECURSIVE = NO | ||
| 919 | # that contain images that are to be included in the documentation (see the | 985 | # that contain images that are to be included in the documentation (see the |
| 920 | # \image command). | 986 | # \image command). |
| 921 | 987 | ||
| 922 | -IMAGE_PATH = | 988 | +IMAGE_PATH = |
| 923 | 989 | ||
| 924 | # The INPUT_FILTER tag can be used to specify a program that doxygen should | 990 | # The INPUT_FILTER tag can be used to specify a program that doxygen should |
| 925 | # invoke to filter for each input file. Doxygen will invoke the filter program | 991 | # invoke to filter for each input file. Doxygen will invoke the filter program |
| @@ -940,7 +1006,7 @@ IMAGE_PATH = | @@ -940,7 +1006,7 @@ IMAGE_PATH = | ||
| 940 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not | 1006 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 941 | # properly processed by doxygen. | 1007 | # properly processed by doxygen. |
| 942 | 1008 | ||
| 943 | -INPUT_FILTER = | 1009 | +INPUT_FILTER = |
| 944 | 1010 | ||
| 945 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | 1011 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
| 946 | # basis. Doxygen will compare the file name with each pattern and apply the | 1012 | # basis. Doxygen will compare the file name with each pattern and apply the |
| @@ -953,7 +1019,7 @@ INPUT_FILTER = | @@ -953,7 +1019,7 @@ INPUT_FILTER = | ||
| 953 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not | 1019 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 954 | # properly processed by doxygen. | 1020 | # properly processed by doxygen. |
| 955 | 1021 | ||
| 956 | -FILTER_PATTERNS = | 1022 | +FILTER_PATTERNS = |
| 957 | 1023 | ||
| 958 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | 1024 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
| 959 | # INPUT_FILTER) will also be used to filter the input files that are used for | 1025 | # INPUT_FILTER) will also be used to filter the input files that are used for |
| @@ -968,7 +1034,7 @@ FILTER_SOURCE_FILES = NO | @@ -968,7 +1034,7 @@ FILTER_SOURCE_FILES = NO | ||
| 968 | # *.ext= (so without naming a filter). | 1034 | # *.ext= (so without naming a filter). |
| 969 | # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. | 1035 | # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. |
| 970 | 1036 | ||
| 971 | -FILTER_SOURCE_PATTERNS = | 1037 | +FILTER_SOURCE_PATTERNS = |
| 972 | 1038 | ||
| 973 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that | 1039 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that |
| 974 | # is part of the input, its contents will be placed on the main page | 1040 | # is part of the input, its contents will be placed on the main page |
| @@ -1004,7 +1070,7 @@ INLINE_SOURCES = NO | @@ -1004,7 +1070,7 @@ INLINE_SOURCES = NO | ||
| 1004 | STRIP_CODE_COMMENTS = YES | 1070 | STRIP_CODE_COMMENTS = YES |
| 1005 | 1071 | ||
| 1006 | # If the REFERENCED_BY_RELATION tag is set to YES then for each documented | 1072 | # If the REFERENCED_BY_RELATION tag is set to YES then for each documented |
| 1007 | -# function all documented functions referencing it will be listed. | 1073 | +# entity all documented functions referencing it will be listed. |
| 1008 | # The default value is: NO. | 1074 | # The default value is: NO. |
| 1009 | 1075 | ||
| 1010 | REFERENCED_BY_RELATION = NO | 1076 | REFERENCED_BY_RELATION = NO |
| @@ -1036,12 +1102,12 @@ SOURCE_TOOLTIPS = YES | @@ -1036,12 +1102,12 @@ SOURCE_TOOLTIPS = YES | ||
| 1036 | # If the USE_HTAGS tag is set to YES then the references to source code will | 1102 | # If the USE_HTAGS tag is set to YES then the references to source code will |
| 1037 | # point to the HTML generated by the htags(1) tool instead of doxygen built-in | 1103 | # point to the HTML generated by the htags(1) tool instead of doxygen built-in |
| 1038 | # source browser. The htags tool is part of GNU's global source tagging system | 1104 | # source browser. The htags tool is part of GNU's global source tagging system |
| 1039 | -# (see http://www.gnu.org/software/global/global.html). You will need version | 1105 | +# (see https://www.gnu.org/software/global/global.html). You will need version |
| 1040 | # 4.8.6 or higher. | 1106 | # 4.8.6 or higher. |
| 1041 | # | 1107 | # |
| 1042 | # To use it do the following: | 1108 | # To use it do the following: |
| 1043 | # - Install the latest version of global | 1109 | # - Install the latest version of global |
| 1044 | -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file | 1110 | +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file |
| 1045 | # - Make sure the INPUT points to the root of the source tree | 1111 | # - Make sure the INPUT points to the root of the source tree |
| 1046 | # - Run doxygen as normal | 1112 | # - Run doxygen as normal |
| 1047 | # | 1113 | # |
| @@ -1069,7 +1135,7 @@ VERBATIM_HEADERS = YES | @@ -1069,7 +1135,7 @@ VERBATIM_HEADERS = YES | ||
| 1069 | # rich C++ code for which doxygen's built-in parser lacks the necessary type | 1135 | # rich C++ code for which doxygen's built-in parser lacks the necessary type |
| 1070 | # information. | 1136 | # information. |
| 1071 | # Note: The availability of this option depends on whether or not doxygen was | 1137 | # Note: The availability of this option depends on whether or not doxygen was |
| 1072 | -# generated with the -Duse-libclang=ON option for CMake. | 1138 | +# generated with the -Duse_libclang=ON option for CMake. |
| 1073 | # The default value is: NO. | 1139 | # The default value is: NO. |
| 1074 | 1140 | ||
| 1075 | CLANG_ASSISTED_PARSING = NO | 1141 | CLANG_ASSISTED_PARSING = NO |
| @@ -1080,7 +1146,20 @@ CLANG_ASSISTED_PARSING = NO | @@ -1080,7 +1146,20 @@ CLANG_ASSISTED_PARSING = NO | ||
| 1080 | # specified with INPUT and INCLUDE_PATH. | 1146 | # specified with INPUT and INCLUDE_PATH. |
| 1081 | # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. | 1147 | # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. |
| 1082 | 1148 | ||
| 1083 | -CLANG_OPTIONS = | 1149 | +CLANG_OPTIONS = |
| 1150 | + | ||
| 1151 | +# If clang assisted parsing is enabled you can provide the clang parser with the | ||
| 1152 | +# path to the directory containing a file called compile_commands.json. This | ||
| 1153 | +# file is the compilation database (see: | ||
| 1154 | +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the | ||
| 1155 | +# options used when the source files were built. This is equivalent to | ||
| 1156 | +# specifying the "-p" option to a clang tool, such as clang-check. These options | ||
| 1157 | +# will then be passed to the parser. Any options specified with CLANG_OPTIONS | ||
| 1158 | +# will be added as well. | ||
| 1159 | +# Note: The availability of this option depends on whether or not doxygen was | ||
| 1160 | +# generated with the -Duse_libclang=ON option for CMake. | ||
| 1161 | + | ||
| 1162 | +CLANG_DATABASE_PATH = | ||
| 1084 | 1163 | ||
| 1085 | #--------------------------------------------------------------------------- | 1164 | #--------------------------------------------------------------------------- |
| 1086 | # Configuration options related to the alphabetical class index | 1165 | # Configuration options related to the alphabetical class index |
| @@ -1106,7 +1185,7 @@ COLS_IN_ALPHA_INDEX = 5 | @@ -1106,7 +1185,7 @@ COLS_IN_ALPHA_INDEX = 5 | ||
| 1106 | # while generating the index headers. | 1185 | # while generating the index headers. |
| 1107 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. | 1186 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. |
| 1108 | 1187 | ||
| 1109 | -IGNORE_PREFIX = | 1188 | +IGNORE_PREFIX = |
| 1110 | 1189 | ||
| 1111 | #--------------------------------------------------------------------------- | 1190 | #--------------------------------------------------------------------------- |
| 1112 | # Configuration options related to the HTML output | 1191 | # Configuration options related to the HTML output |
| @@ -1150,7 +1229,7 @@ HTML_FILE_EXTENSION = .html | @@ -1150,7 +1229,7 @@ HTML_FILE_EXTENSION = .html | ||
| 1150 | # of the possible markers and block names see the documentation. | 1229 | # of the possible markers and block names see the documentation. |
| 1151 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1230 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1152 | 1231 | ||
| 1153 | -HTML_HEADER = | 1232 | +HTML_HEADER = |
| 1154 | 1233 | ||
| 1155 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each | 1234 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each |
| 1156 | # generated HTML page. If the tag is left blank doxygen will generate a standard | 1235 | # generated HTML page. If the tag is left blank doxygen will generate a standard |
| @@ -1160,7 +1239,7 @@ HTML_HEADER = | @@ -1160,7 +1239,7 @@ HTML_HEADER = | ||
| 1160 | # that doxygen normally uses. | 1239 | # that doxygen normally uses. |
| 1161 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1240 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1162 | 1241 | ||
| 1163 | -HTML_FOOTER = | 1242 | +HTML_FOOTER = |
| 1164 | 1243 | ||
| 1165 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style | 1244 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style |
| 1166 | # sheet that is used by each HTML page. It can be used to fine-tune the look of | 1245 | # sheet that is used by each HTML page. It can be used to fine-tune the look of |
| @@ -1172,7 +1251,7 @@ HTML_FOOTER = | @@ -1172,7 +1251,7 @@ HTML_FOOTER = | ||
| 1172 | # obsolete. | 1251 | # obsolete. |
| 1173 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1252 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1174 | 1253 | ||
| 1175 | -HTML_STYLESHEET = | 1254 | +HTML_STYLESHEET = |
| 1176 | 1255 | ||
| 1177 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined | 1256 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1178 | # cascading style sheets that are included after the standard style sheets | 1257 | # cascading style sheets that are included after the standard style sheets |
| @@ -1185,7 +1264,7 @@ HTML_STYLESHEET = | @@ -1185,7 +1264,7 @@ HTML_STYLESHEET = | ||
| 1185 | # list). For an example see the documentation. | 1264 | # list). For an example see the documentation. |
| 1186 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1265 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1187 | 1266 | ||
| 1188 | -HTML_EXTRA_STYLESHEET = | 1267 | +HTML_EXTRA_STYLESHEET = |
| 1189 | 1268 | ||
| 1190 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or | 1269 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1191 | # other source files which should be copied to the HTML output directory. Note | 1270 | # other source files which should be copied to the HTML output directory. Note |
| @@ -1195,12 +1274,12 @@ HTML_EXTRA_STYLESHEET = | @@ -1195,12 +1274,12 @@ HTML_EXTRA_STYLESHEET = | ||
| 1195 | # files will be copied as-is; there are no commands or markers available. | 1274 | # files will be copied as-is; there are no commands or markers available. |
| 1196 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1275 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1197 | 1276 | ||
| 1198 | -HTML_EXTRA_FILES = | 1277 | +HTML_EXTRA_FILES = |
| 1199 | 1278 | ||
| 1200 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen | 1279 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen |
| 1201 | # will adjust the colors in the style sheet and background images according to | 1280 | # will adjust the colors in the style sheet and background images according to |
| 1202 | # this color. Hue is specified as an angle on a colorwheel, see | 1281 | # this color. Hue is specified as an angle on a colorwheel, see |
| 1203 | -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value | 1282 | +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value |
| 1204 | # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 | 1283 | # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 |
| 1205 | # purple, and 360 is red again. | 1284 | # purple, and 360 is red again. |
| 1206 | # Minimum value: 0, maximum value: 359, default value: 220. | 1285 | # Minimum value: 0, maximum value: 359, default value: 220. |
| @@ -1236,13 +1315,24 @@ HTML_COLORSTYLE_GAMMA = 80 | @@ -1236,13 +1315,24 @@ HTML_COLORSTYLE_GAMMA = 80 | ||
| 1236 | 1315 | ||
| 1237 | HTML_TIMESTAMP = NO | 1316 | HTML_TIMESTAMP = NO |
| 1238 | 1317 | ||
| 1318 | +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML | ||
| 1319 | +# documentation will contain a main index with vertical navigation menus that | ||
| 1320 | +# are dynamically created via JavaScript. If disabled, the navigation index will | ||
| 1321 | +# consists of multiple levels of tabs that are statically embedded in every HTML | ||
| 1322 | +# page. Disable this option to support browsers that do not have JavaScript, | ||
| 1323 | +# like the Qt help browser. | ||
| 1324 | +# The default value is: YES. | ||
| 1325 | +# This tag requires that the tag GENERATE_HTML is set to YES. | ||
| 1326 | + | ||
| 1327 | +HTML_DYNAMIC_MENUS = YES | ||
| 1328 | + | ||
| 1239 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML | 1329 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML |
| 1240 | # documentation will contain sections that can be hidden and shown after the | 1330 | # documentation will contain sections that can be hidden and shown after the |
| 1241 | # page has loaded. | 1331 | # page has loaded. |
| 1242 | # The default value is: NO. | 1332 | # The default value is: NO. |
| 1243 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1333 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1244 | 1334 | ||
| 1245 | -HTML_DYNAMIC_SECTIONS = NO | 1335 | +HTML_DYNAMIC_SECTIONS = YES |
| 1246 | 1336 | ||
| 1247 | # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries | 1337 | # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries |
| 1248 | # shown in the various tree structured indices initially; the user can expand | 1338 | # shown in the various tree structured indices initially; the user can expand |
| @@ -1259,13 +1349,13 @@ HTML_INDEX_NUM_ENTRIES = 100 | @@ -1259,13 +1349,13 @@ HTML_INDEX_NUM_ENTRIES = 100 | ||
| 1259 | 1349 | ||
| 1260 | # If the GENERATE_DOCSET tag is set to YES, additional index files will be | 1350 | # If the GENERATE_DOCSET tag is set to YES, additional index files will be |
| 1261 | # generated that can be used as input for Apple's Xcode 3 integrated development | 1351 | # generated that can be used as input for Apple's Xcode 3 integrated development |
| 1262 | -# environment (see: http://developer.apple.com/tools/xcode/), introduced with | ||
| 1263 | -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a | 1352 | +# environment (see: https://developer.apple.com/xcode/), introduced with OSX |
| 1353 | +# 10.5 (Leopard). To create a documentation set, doxygen will generate a | ||
| 1264 | # Makefile in the HTML output directory. Running make will produce the docset in | 1354 | # Makefile in the HTML output directory. Running make will produce the docset in |
| 1265 | # that directory and running make install will install the docset in | 1355 | # that directory and running make install will install the docset in |
| 1266 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at | 1356 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at |
| 1267 | -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html | ||
| 1268 | -# for more information. | 1357 | +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy |
| 1358 | +# genXcode/_index.html for more information. | ||
| 1269 | # The default value is: NO. | 1359 | # The default value is: NO. |
| 1270 | # This tag requires that the tag GENERATE_HTML is set to YES. | 1360 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1271 | 1361 | ||
| @@ -1304,7 +1394,7 @@ DOCSET_PUBLISHER_NAME = Publisher | @@ -1304,7 +1394,7 @@ DOCSET_PUBLISHER_NAME = Publisher | ||
| 1304 | # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three | 1394 | # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three |
| 1305 | # additional HTML index files: index.hhp, index.hhc, and index.hhk. The | 1395 | # additional HTML index files: index.hhp, index.hhc, and index.hhk. The |
| 1306 | # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop | 1396 | # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop |
| 1307 | -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on | 1397 | +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on |
| 1308 | # Windows. | 1398 | # Windows. |
| 1309 | # | 1399 | # |
| 1310 | # The HTML Help Workshop contains a compiler that can convert all HTML output | 1400 | # The HTML Help Workshop contains a compiler that can convert all HTML output |
| @@ -1324,7 +1414,7 @@ GENERATE_HTMLHELP = NO | @@ -1324,7 +1414,7 @@ GENERATE_HTMLHELP = NO | ||
| 1324 | # written to the html output directory. | 1414 | # written to the html output directory. |
| 1325 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | 1415 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1326 | 1416 | ||
| 1327 | -CHM_FILE = | 1417 | +CHM_FILE = |
| 1328 | 1418 | ||
| 1329 | # The HHC_LOCATION tag can be used to specify the location (absolute path | 1419 | # The HHC_LOCATION tag can be used to specify the location (absolute path |
| 1330 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, | 1420 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, |
| @@ -1332,10 +1422,10 @@ CHM_FILE = | @@ -1332,10 +1422,10 @@ CHM_FILE = | ||
| 1332 | # The file has to be specified with full path. | 1422 | # The file has to be specified with full path. |
| 1333 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | 1423 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1334 | 1424 | ||
| 1335 | -HHC_LOCATION = | 1425 | +HHC_LOCATION = |
| 1336 | 1426 | ||
| 1337 | # The GENERATE_CHI flag controls if a separate .chi index file is generated | 1427 | # The GENERATE_CHI flag controls if a separate .chi index file is generated |
| 1338 | -# (YES) or that it should be included in the master .chm file (NO). | 1428 | +# (YES) or that it should be included in the main .chm file (NO). |
| 1339 | # The default value is: NO. | 1429 | # The default value is: NO. |
| 1340 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | 1430 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1341 | 1431 | ||
| @@ -1345,7 +1435,7 @@ GENERATE_CHI = NO | @@ -1345,7 +1435,7 @@ GENERATE_CHI = NO | ||
| 1345 | # and project file content. | 1435 | # and project file content. |
| 1346 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. | 1436 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1347 | 1437 | ||
| 1348 | -CHM_INDEX_ENCODING = | 1438 | +CHM_INDEX_ENCODING = |
| 1349 | 1439 | ||
| 1350 | # The BINARY_TOC flag controls whether a binary table of contents is generated | 1440 | # The BINARY_TOC flag controls whether a binary table of contents is generated |
| 1351 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it | 1441 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it |
| @@ -1376,11 +1466,11 @@ GENERATE_QHP = NO | @@ -1376,11 +1466,11 @@ GENERATE_QHP = NO | ||
| 1376 | # the HTML output folder. | 1466 | # the HTML output folder. |
| 1377 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1467 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1378 | 1468 | ||
| 1379 | -QCH_FILE = | 1469 | +QCH_FILE = |
| 1380 | 1470 | ||
| 1381 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help | 1471 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help |
| 1382 | # Project output. For more information please see Qt Help Project / Namespace | 1472 | # Project output. For more information please see Qt Help Project / Namespace |
| 1383 | -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). | 1473 | +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). |
| 1384 | # The default value is: org.doxygen.Project. | 1474 | # The default value is: org.doxygen.Project. |
| 1385 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1475 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1386 | 1476 | ||
| @@ -1388,7 +1478,7 @@ QHP_NAMESPACE = org.doxygen.Project | @@ -1388,7 +1478,7 @@ QHP_NAMESPACE = org.doxygen.Project | ||
| 1388 | 1478 | ||
| 1389 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt | 1479 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt |
| 1390 | # Help Project output. For more information please see Qt Help Project / Virtual | 1480 | # Help Project output. For more information please see Qt Help Project / Virtual |
| 1391 | -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- | 1481 | +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- |
| 1392 | # folders). | 1482 | # folders). |
| 1393 | # The default value is: doc. | 1483 | # The default value is: doc. |
| 1394 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1484 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| @@ -1397,33 +1487,33 @@ QHP_VIRTUAL_FOLDER = doc | @@ -1397,33 +1487,33 @@ QHP_VIRTUAL_FOLDER = doc | ||
| 1397 | 1487 | ||
| 1398 | # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom | 1488 | # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom |
| 1399 | # filter to add. For more information please see Qt Help Project / Custom | 1489 | # filter to add. For more information please see Qt Help Project / Custom |
| 1400 | -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- | 1490 | +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- |
| 1401 | # filters). | 1491 | # filters). |
| 1402 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1492 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1403 | 1493 | ||
| 1404 | -QHP_CUST_FILTER_NAME = | 1494 | +QHP_CUST_FILTER_NAME = |
| 1405 | 1495 | ||
| 1406 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the | 1496 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the |
| 1407 | # custom filter to add. For more information please see Qt Help Project / Custom | 1497 | # custom filter to add. For more information please see Qt Help Project / Custom |
| 1408 | -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- | 1498 | +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- |
| 1409 | # filters). | 1499 | # filters). |
| 1410 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1500 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1411 | 1501 | ||
| 1412 | -QHP_CUST_FILTER_ATTRS = | 1502 | +QHP_CUST_FILTER_ATTRS = |
| 1413 | 1503 | ||
| 1414 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this | 1504 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this |
| 1415 | # project's filter section matches. Qt Help Project / Filter Attributes (see: | 1505 | # project's filter section matches. Qt Help Project / Filter Attributes (see: |
| 1416 | -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). | 1506 | +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). |
| 1417 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1507 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1418 | 1508 | ||
| 1419 | -QHP_SECT_FILTER_ATTRS = | 1509 | +QHP_SECT_FILTER_ATTRS = |
| 1420 | 1510 | ||
| 1421 | # The QHG_LOCATION tag can be used to specify the location of Qt's | 1511 | # The QHG_LOCATION tag can be used to specify the location of Qt's |
| 1422 | # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the | 1512 | # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the |
| 1423 | # generated .qhp file. | 1513 | # generated .qhp file. |
| 1424 | # This tag requires that the tag GENERATE_QHP is set to YES. | 1514 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1425 | 1515 | ||
| 1426 | -QHG_LOCATION = | 1516 | +QHG_LOCATION = |
| 1427 | 1517 | ||
| 1428 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be | 1518 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be |
| 1429 | # generated, together with the HTML files, they form an Eclipse help plugin. To | 1519 | # generated, together with the HTML files, they form an Eclipse help plugin. To |
| @@ -1497,6 +1587,17 @@ TREEVIEW_WIDTH = 250 | @@ -1497,6 +1587,17 @@ TREEVIEW_WIDTH = 250 | ||
| 1497 | 1587 | ||
| 1498 | EXT_LINKS_IN_WINDOW = NO | 1588 | EXT_LINKS_IN_WINDOW = NO |
| 1499 | 1589 | ||
| 1590 | +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg | ||
| 1591 | +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see | ||
| 1592 | +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for | ||
| 1593 | +# the HTML output. These images will generally look nicer at scaled resolutions. | ||
| 1594 | +# Possible values are: png (the default) and svg (looks nicer but requires the | ||
| 1595 | +# pdf2svg or inkscape tool). | ||
| 1596 | +# The default value is: png. | ||
| 1597 | +# This tag requires that the tag GENERATE_HTML is set to YES. | ||
| 1598 | + | ||
| 1599 | +HTML_FORMULA_FORMAT = png | ||
| 1600 | + | ||
| 1500 | # Use this tag to change the font size of LaTeX formulas included as images in | 1601 | # Use this tag to change the font size of LaTeX formulas included as images in |
| 1501 | # the HTML documentation. When you change the font size after a successful | 1602 | # the HTML documentation. When you change the font size after a successful |
| 1502 | # doxygen run you need to manually remove any form_*.png images from the HTML | 1603 | # doxygen run you need to manually remove any form_*.png images from the HTML |
| @@ -1506,7 +1607,7 @@ EXT_LINKS_IN_WINDOW = NO | @@ -1506,7 +1607,7 @@ EXT_LINKS_IN_WINDOW = NO | ||
| 1506 | 1607 | ||
| 1507 | FORMULA_FONTSIZE = 10 | 1608 | FORMULA_FONTSIZE = 10 |
| 1508 | 1609 | ||
| 1509 | -# Use the FORMULA_TRANPARENT tag to determine whether or not the images | 1610 | +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images |
| 1510 | # generated for formulas are transparent PNGs. Transparent PNGs are not | 1611 | # generated for formulas are transparent PNGs. Transparent PNGs are not |
| 1511 | # supported properly for IE 6.0, but are supported on all modern browsers. | 1612 | # supported properly for IE 6.0, but are supported on all modern browsers. |
| 1512 | # | 1613 | # |
| @@ -1517,8 +1618,14 @@ FORMULA_FONTSIZE = 10 | @@ -1517,8 +1618,14 @@ FORMULA_FONTSIZE = 10 | ||
| 1517 | 1618 | ||
| 1518 | FORMULA_TRANSPARENT = YES | 1619 | FORMULA_TRANSPARENT = YES |
| 1519 | 1620 | ||
| 1621 | +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands | ||
| 1622 | +# to create new LaTeX commands to be used in formulas as building blocks. See | ||
| 1623 | +# the section "Including formulas" for details. | ||
| 1624 | + | ||
| 1625 | +FORMULA_MACROFILE = | ||
| 1626 | + | ||
| 1520 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see | 1627 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see |
| 1521 | -# http://www.mathjax.org) which uses client side Javascript for the rendering | 1628 | +# https://www.mathjax.org) which uses client side JavaScript for the rendering |
| 1522 | # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX | 1629 | # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX |
| 1523 | # installed or if you want to formulas look prettier in the HTML output. When | 1630 | # installed or if you want to formulas look prettier in the HTML output. When |
| 1524 | # enabled you may also need to install MathJax separately and configure the path | 1631 | # enabled you may also need to install MathJax separately and configure the path |
| @@ -1545,8 +1652,8 @@ MATHJAX_FORMAT = HTML-CSS | @@ -1545,8 +1652,8 @@ MATHJAX_FORMAT = HTML-CSS | ||
| 1545 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax | 1652 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax |
| 1546 | # Content Delivery Network so you can quickly see the result without installing | 1653 | # Content Delivery Network so you can quickly see the result without installing |
| 1547 | # MathJax. However, it is strongly recommended to install a local copy of | 1654 | # MathJax. However, it is strongly recommended to install a local copy of |
| 1548 | -# MathJax from http://www.mathjax.org before deployment. | ||
| 1549 | -# The default value is: http://cdn.mathjax.org/mathjax/latest. | 1655 | +# MathJax from https://www.mathjax.org before deployment. |
| 1656 | +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. | ||
| 1550 | # This tag requires that the tag USE_MATHJAX is set to YES. | 1657 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1551 | 1658 | ||
| 1552 | MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest | 1659 | MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest |
| @@ -1556,7 +1663,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest | @@ -1556,7 +1663,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest | ||
| 1556 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols | 1663 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols |
| 1557 | # This tag requires that the tag USE_MATHJAX is set to YES. | 1664 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1558 | 1665 | ||
| 1559 | -MATHJAX_EXTENSIONS = | 1666 | +MATHJAX_EXTENSIONS = |
| 1560 | 1667 | ||
| 1561 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces | 1668 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces |
| 1562 | # of code that will be used on startup of the MathJax code. See the MathJax site | 1669 | # of code that will be used on startup of the MathJax code. See the MathJax site |
| @@ -1564,7 +1671,7 @@ MATHJAX_EXTENSIONS = | @@ -1564,7 +1671,7 @@ MATHJAX_EXTENSIONS = | ||
| 1564 | # example see the documentation. | 1671 | # example see the documentation. |
| 1565 | # This tag requires that the tag USE_MATHJAX is set to YES. | 1672 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1566 | 1673 | ||
| 1567 | -MATHJAX_CODEFILE = | 1674 | +MATHJAX_CODEFILE = |
| 1568 | 1675 | ||
| 1569 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for | 1676 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for |
| 1570 | # the HTML output. The underlying search engine uses javascript and DHTML and | 1677 | # the HTML output. The underlying search engine uses javascript and DHTML and |
| @@ -1588,7 +1695,7 @@ MATHJAX_CODEFILE = | @@ -1588,7 +1695,7 @@ MATHJAX_CODEFILE = | ||
| 1588 | SEARCHENGINE = YES | 1695 | SEARCHENGINE = YES |
| 1589 | 1696 | ||
| 1590 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be | 1697 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be |
| 1591 | -# implemented using a web server instead of a web client using Javascript. There | 1698 | +# implemented using a web server instead of a web client using JavaScript. There |
| 1592 | # are two flavors of web server based searching depending on the EXTERNAL_SEARCH | 1699 | # are two flavors of web server based searching depending on the EXTERNAL_SEARCH |
| 1593 | # setting. When disabled, doxygen will generate a PHP script for searching and | 1700 | # setting. When disabled, doxygen will generate a PHP script for searching and |
| 1594 | # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing | 1701 | # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing |
| @@ -1607,7 +1714,7 @@ SERVER_BASED_SEARCH = NO | @@ -1607,7 +1714,7 @@ SERVER_BASED_SEARCH = NO | ||
| 1607 | # | 1714 | # |
| 1608 | # Doxygen ships with an example indexer (doxyindexer) and search engine | 1715 | # Doxygen ships with an example indexer (doxyindexer) and search engine |
| 1609 | # (doxysearch.cgi) which are based on the open source search engine library | 1716 | # (doxysearch.cgi) which are based on the open source search engine library |
| 1610 | -# Xapian (see: http://xapian.org/). | 1717 | +# Xapian (see: https://xapian.org/). |
| 1611 | # | 1718 | # |
| 1612 | # See the section "External Indexing and Searching" for details. | 1719 | # See the section "External Indexing and Searching" for details. |
| 1613 | # The default value is: NO. | 1720 | # The default value is: NO. |
| @@ -1620,11 +1727,11 @@ EXTERNAL_SEARCH = NO | @@ -1620,11 +1727,11 @@ EXTERNAL_SEARCH = NO | ||
| 1620 | # | 1727 | # |
| 1621 | # Doxygen ships with an example indexer (doxyindexer) and search engine | 1728 | # Doxygen ships with an example indexer (doxyindexer) and search engine |
| 1622 | # (doxysearch.cgi) which are based on the open source search engine library | 1729 | # (doxysearch.cgi) which are based on the open source search engine library |
| 1623 | -# Xapian (see: http://xapian.org/). See the section "External Indexing and | 1730 | +# Xapian (see: https://xapian.org/). See the section "External Indexing and |
| 1624 | # Searching" for details. | 1731 | # Searching" for details. |
| 1625 | # This tag requires that the tag SEARCHENGINE is set to YES. | 1732 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1626 | 1733 | ||
| 1627 | -SEARCHENGINE_URL = | 1734 | +SEARCHENGINE_URL = |
| 1628 | 1735 | ||
| 1629 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed | 1736 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed |
| 1630 | # search data is written to a file for indexing by an external tool. With the | 1737 | # search data is written to a file for indexing by an external tool. With the |
| @@ -1640,7 +1747,7 @@ SEARCHDATA_FILE = searchdata.xml | @@ -1640,7 +1747,7 @@ SEARCHDATA_FILE = searchdata.xml | ||
| 1640 | # projects and redirect the results back to the right project. | 1747 | # projects and redirect the results back to the right project. |
| 1641 | # This tag requires that the tag SEARCHENGINE is set to YES. | 1748 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1642 | 1749 | ||
| 1643 | -EXTERNAL_SEARCH_ID = | 1750 | +EXTERNAL_SEARCH_ID = |
| 1644 | 1751 | ||
| 1645 | # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen | 1752 | # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen |
| 1646 | # projects other than the one defined by this configuration file, but that are | 1753 | # projects other than the one defined by this configuration file, but that are |
| @@ -1650,7 +1757,7 @@ EXTERNAL_SEARCH_ID = | @@ -1650,7 +1757,7 @@ EXTERNAL_SEARCH_ID = | ||
| 1650 | # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... | 1757 | # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... |
| 1651 | # This tag requires that the tag SEARCHENGINE is set to YES. | 1758 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1652 | 1759 | ||
| 1653 | -EXTRA_SEARCH_MAPPINGS = | 1760 | +EXTRA_SEARCH_MAPPINGS = |
| 1654 | 1761 | ||
| 1655 | #--------------------------------------------------------------------------- | 1762 | #--------------------------------------------------------------------------- |
| 1656 | # Configuration options related to the LaTeX output | 1763 | # Configuration options related to the LaTeX output |
| @@ -1672,21 +1779,35 @@ LATEX_OUTPUT = latex | @@ -1672,21 +1779,35 @@ LATEX_OUTPUT = latex | ||
| 1672 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | 1779 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be |
| 1673 | # invoked. | 1780 | # invoked. |
| 1674 | # | 1781 | # |
| 1675 | -# Note that when enabling USE_PDFLATEX this option is only used for generating | ||
| 1676 | -# bitmaps for formulas in the HTML output, but not in the Makefile that is | ||
| 1677 | -# written to the output directory. | ||
| 1678 | -# The default file is: latex. | 1782 | +# Note that when not enabling USE_PDFLATEX the default is latex when enabling |
| 1783 | +# USE_PDFLATEX the default is pdflatex and when in the later case latex is | ||
| 1784 | +# chosen this is overwritten by pdflatex. For specific output languages the | ||
| 1785 | +# default can have been set differently, this depends on the implementation of | ||
| 1786 | +# the output language. | ||
| 1679 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1787 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1680 | 1788 | ||
| 1681 | LATEX_CMD_NAME = latex | 1789 | LATEX_CMD_NAME = latex |
| 1682 | 1790 | ||
| 1683 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate | 1791 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate |
| 1684 | # index for LaTeX. | 1792 | # index for LaTeX. |
| 1793 | +# Note: This tag is used in the Makefile / make.bat. | ||
| 1794 | +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file | ||
| 1795 | +# (.tex). | ||
| 1685 | # The default file is: makeindex. | 1796 | # The default file is: makeindex. |
| 1686 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1797 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1687 | 1798 | ||
| 1688 | MAKEINDEX_CMD_NAME = makeindex | 1799 | MAKEINDEX_CMD_NAME = makeindex |
| 1689 | 1800 | ||
| 1801 | +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to | ||
| 1802 | +# generate index for LaTeX. In case there is no backslash (\) as first character | ||
| 1803 | +# it will be automatically added in the LaTeX code. | ||
| 1804 | +# Note: This tag is used in the generated output file (.tex). | ||
| 1805 | +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. | ||
| 1806 | +# The default value is: makeindex. | ||
| 1807 | +# This tag requires that the tag GENERATE_LATEX is set to YES. | ||
| 1808 | + | ||
| 1809 | +LATEX_MAKEINDEX_CMD = makeindex | ||
| 1810 | + | ||
| 1690 | # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX | 1811 | # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX |
| 1691 | # documents. This may be useful for small projects and may help to save some | 1812 | # documents. This may be useful for small projects and may help to save some |
| 1692 | # trees in general. | 1813 | # trees in general. |
| @@ -1714,7 +1835,7 @@ PAPER_TYPE = a4 | @@ -1714,7 +1835,7 @@ PAPER_TYPE = a4 | ||
| 1714 | # If left blank no extra packages will be included. | 1835 | # If left blank no extra packages will be included. |
| 1715 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1836 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1716 | 1837 | ||
| 1717 | -EXTRA_PACKAGES = | 1838 | +EXTRA_PACKAGES = |
| 1718 | 1839 | ||
| 1719 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the | 1840 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the |
| 1720 | # generated LaTeX document. The header should contain everything until the first | 1841 | # generated LaTeX document. The header should contain everything until the first |
| @@ -1730,7 +1851,7 @@ EXTRA_PACKAGES = | @@ -1730,7 +1851,7 @@ EXTRA_PACKAGES = | ||
| 1730 | # to HTML_HEADER. | 1851 | # to HTML_HEADER. |
| 1731 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1852 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1732 | 1853 | ||
| 1733 | -LATEX_HEADER = | 1854 | +LATEX_HEADER = |
| 1734 | 1855 | ||
| 1735 | # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the | 1856 | # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the |
| 1736 | # generated LaTeX document. The footer should contain everything after the last | 1857 | # generated LaTeX document. The footer should contain everything after the last |
| @@ -1741,7 +1862,7 @@ LATEX_HEADER = | @@ -1741,7 +1862,7 @@ LATEX_HEADER = | ||
| 1741 | # Note: Only use a user-defined footer if you know what you are doing! | 1862 | # Note: Only use a user-defined footer if you know what you are doing! |
| 1742 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1863 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1743 | 1864 | ||
| 1744 | -LATEX_FOOTER = | 1865 | +LATEX_FOOTER = |
| 1745 | 1866 | ||
| 1746 | # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined | 1867 | # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1747 | # LaTeX style sheets that are included after the standard style sheets created | 1868 | # LaTeX style sheets that are included after the standard style sheets created |
| @@ -1752,7 +1873,7 @@ LATEX_FOOTER = | @@ -1752,7 +1873,7 @@ LATEX_FOOTER = | ||
| 1752 | # list). | 1873 | # list). |
| 1753 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1874 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1754 | 1875 | ||
| 1755 | -LATEX_EXTRA_STYLESHEET = | 1876 | +LATEX_EXTRA_STYLESHEET = |
| 1756 | 1877 | ||
| 1757 | # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or | 1878 | # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1758 | # other source files which should be copied to the LATEX_OUTPUT output | 1879 | # other source files which should be copied to the LATEX_OUTPUT output |
| @@ -1760,7 +1881,7 @@ LATEX_EXTRA_STYLESHEET = | @@ -1760,7 +1881,7 @@ LATEX_EXTRA_STYLESHEET = | ||
| 1760 | # markers available. | 1881 | # markers available. |
| 1761 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1882 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1762 | 1883 | ||
| 1763 | -LATEX_EXTRA_FILES = | 1884 | +LATEX_EXTRA_FILES = |
| 1764 | 1885 | ||
| 1765 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is | 1886 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is |
| 1766 | # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will | 1887 | # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will |
| @@ -1771,9 +1892,11 @@ LATEX_EXTRA_FILES = | @@ -1771,9 +1892,11 @@ LATEX_EXTRA_FILES = | ||
| 1771 | 1892 | ||
| 1772 | PDF_HYPERLINKS = YES | 1893 | PDF_HYPERLINKS = YES |
| 1773 | 1894 | ||
| 1774 | -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate | ||
| 1775 | -# the PDF file directly from the LaTeX files. Set this option to YES, to get a | ||
| 1776 | -# higher quality PDF documentation. | 1895 | +# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as |
| 1896 | +# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX | ||
| 1897 | +# files. Set this option to YES, to get a higher quality PDF documentation. | ||
| 1898 | +# | ||
| 1899 | +# See also section LATEX_CMD_NAME for selecting the engine. | ||
| 1777 | # The default value is: YES. | 1900 | # The default value is: YES. |
| 1778 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1901 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1779 | 1902 | ||
| @@ -1807,7 +1930,7 @@ LATEX_SOURCE_CODE = NO | @@ -1807,7 +1930,7 @@ LATEX_SOURCE_CODE = NO | ||
| 1807 | 1930 | ||
| 1808 | # The LATEX_BIB_STYLE tag can be used to specify the style to use for the | 1931 | # The LATEX_BIB_STYLE tag can be used to specify the style to use for the |
| 1809 | # bibliography, e.g. plainnat, or ieeetr. See | 1932 | # bibliography, e.g. plainnat, or ieeetr. See |
| 1810 | -# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. | 1933 | +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. |
| 1811 | # The default value is: plain. | 1934 | # The default value is: plain. |
| 1812 | # This tag requires that the tag GENERATE_LATEX is set to YES. | 1935 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1813 | 1936 | ||
| @@ -1821,6 +1944,14 @@ LATEX_BIB_STYLE = plain | @@ -1821,6 +1944,14 @@ LATEX_BIB_STYLE = plain | ||
| 1821 | 1944 | ||
| 1822 | LATEX_TIMESTAMP = NO | 1945 | LATEX_TIMESTAMP = NO |
| 1823 | 1946 | ||
| 1947 | +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) | ||
| 1948 | +# path from which the emoji images will be read. If a relative path is entered, | ||
| 1949 | +# it will be relative to the LATEX_OUTPUT directory. If left blank the | ||
| 1950 | +# LATEX_OUTPUT directory will be used. | ||
| 1951 | +# This tag requires that the tag GENERATE_LATEX is set to YES. | ||
| 1952 | + | ||
| 1953 | +LATEX_EMOJI_DIRECTORY = | ||
| 1954 | + | ||
| 1824 | #--------------------------------------------------------------------------- | 1955 | #--------------------------------------------------------------------------- |
| 1825 | # Configuration options related to the RTF output | 1956 | # Configuration options related to the RTF output |
| 1826 | #--------------------------------------------------------------------------- | 1957 | #--------------------------------------------------------------------------- |
| @@ -1860,22 +1991,22 @@ COMPACT_RTF = NO | @@ -1860,22 +1991,22 @@ COMPACT_RTF = NO | ||
| 1860 | 1991 | ||
| 1861 | RTF_HYPERLINKS = NO | 1992 | RTF_HYPERLINKS = NO |
| 1862 | 1993 | ||
| 1863 | -# Load stylesheet definitions from file. Syntax is similar to doxygen's config | ||
| 1864 | -# file, i.e. a series of assignments. You only have to provide replacements, | ||
| 1865 | -# missing definitions are set to their default value. | 1994 | +# Load stylesheet definitions from file. Syntax is similar to doxygen's |
| 1995 | +# configuration file, i.e. a series of assignments. You only have to provide | ||
| 1996 | +# replacements, missing definitions are set to their default value. | ||
| 1866 | # | 1997 | # |
| 1867 | # See also section "Doxygen usage" for information on how to generate the | 1998 | # See also section "Doxygen usage" for information on how to generate the |
| 1868 | # default style sheet that doxygen normally uses. | 1999 | # default style sheet that doxygen normally uses. |
| 1869 | # This tag requires that the tag GENERATE_RTF is set to YES. | 2000 | # This tag requires that the tag GENERATE_RTF is set to YES. |
| 1870 | 2001 | ||
| 1871 | -RTF_STYLESHEET_FILE = | 2002 | +RTF_STYLESHEET_FILE = |
| 1872 | 2003 | ||
| 1873 | # Set optional variables used in the generation of an RTF document. Syntax is | 2004 | # Set optional variables used in the generation of an RTF document. Syntax is |
| 1874 | -# similar to doxygen's config file. A template extensions file can be generated | ||
| 1875 | -# using doxygen -e rtf extensionFile. | 2005 | +# similar to doxygen's configuration file. A template extensions file can be |
| 2006 | +# generated using doxygen -e rtf extensionFile. | ||
| 1876 | # This tag requires that the tag GENERATE_RTF is set to YES. | 2007 | # This tag requires that the tag GENERATE_RTF is set to YES. |
| 1877 | 2008 | ||
| 1878 | -RTF_EXTENSIONS_FILE = | 2009 | +RTF_EXTENSIONS_FILE = |
| 1879 | 2010 | ||
| 1880 | # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code | 2011 | # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code |
| 1881 | # with syntax highlighting in the RTF output. | 2012 | # with syntax highlighting in the RTF output. |
| @@ -1920,7 +2051,7 @@ MAN_EXTENSION = .3 | @@ -1920,7 +2051,7 @@ MAN_EXTENSION = .3 | ||
| 1920 | # MAN_EXTENSION with the initial . removed. | 2051 | # MAN_EXTENSION with the initial . removed. |
| 1921 | # This tag requires that the tag GENERATE_MAN is set to YES. | 2052 | # This tag requires that the tag GENERATE_MAN is set to YES. |
| 1922 | 2053 | ||
| 1923 | -MAN_SUBDIR = | 2054 | +MAN_SUBDIR = |
| 1924 | 2055 | ||
| 1925 | # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it | 2056 | # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it |
| 1926 | # will generate one additional man file for each entity documented in the real | 2057 | # will generate one additional man file for each entity documented in the real |
| @@ -1958,6 +2089,13 @@ XML_OUTPUT = xml | @@ -1958,6 +2089,13 @@ XML_OUTPUT = xml | ||
| 1958 | 2089 | ||
| 1959 | XML_PROGRAMLISTING = YES | 2090 | XML_PROGRAMLISTING = YES |
| 1960 | 2091 | ||
| 2092 | +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include | ||
| 2093 | +# namespace members in file scope as well, matching the HTML output. | ||
| 2094 | +# The default value is: NO. | ||
| 2095 | +# This tag requires that the tag GENERATE_XML is set to YES. | ||
| 2096 | + | ||
| 2097 | +XML_NS_MEMB_FILE_SCOPE = NO | ||
| 2098 | + | ||
| 1961 | #--------------------------------------------------------------------------- | 2099 | #--------------------------------------------------------------------------- |
| 1962 | # Configuration options related to the DOCBOOK output | 2100 | # Configuration options related to the DOCBOOK output |
| 1963 | #--------------------------------------------------------------------------- | 2101 | #--------------------------------------------------------------------------- |
| @@ -1990,14 +2128,18 @@ DOCBOOK_PROGRAMLISTING = NO | @@ -1990,14 +2128,18 @@ DOCBOOK_PROGRAMLISTING = NO | ||
| 1990 | #--------------------------------------------------------------------------- | 2128 | #--------------------------------------------------------------------------- |
| 1991 | 2129 | ||
| 1992 | # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an | 2130 | # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an |
| 1993 | -# AutoGen Definitions (see http://autogen.sf.net) file that captures the | ||
| 1994 | -# structure of the code including all documentation. Note that this feature is | ||
| 1995 | -# still experimental and incomplete at the moment. | 2131 | +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures |
| 2132 | +# the structure of the code including all documentation. Note that this feature | ||
| 2133 | +# is still experimental and incomplete at the moment. | ||
| 1996 | # The default value is: NO. | 2134 | # The default value is: NO. |
| 1997 | 2135 | ||
| 1998 | GENERATE_AUTOGEN_DEF = NO | 2136 | GENERATE_AUTOGEN_DEF = NO |
| 1999 | 2137 | ||
| 2000 | #--------------------------------------------------------------------------- | 2138 | #--------------------------------------------------------------------------- |
| 2139 | +# Configuration options related to Sqlite3 output | ||
| 2140 | +#--------------------------------------------------------------------------- | ||
| 2141 | + | ||
| 2142 | +#--------------------------------------------------------------------------- | ||
| 2001 | # Configuration options related to the Perl module output | 2143 | # Configuration options related to the Perl module output |
| 2002 | #--------------------------------------------------------------------------- | 2144 | #--------------------------------------------------------------------------- |
| 2003 | 2145 | ||
| @@ -2033,7 +2175,7 @@ PERLMOD_PRETTY = YES | @@ -2033,7 +2175,7 @@ PERLMOD_PRETTY = YES | ||
| 2033 | # overwrite each other's variables. | 2175 | # overwrite each other's variables. |
| 2034 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. | 2176 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. |
| 2035 | 2177 | ||
| 2036 | -PERLMOD_MAKEVAR_PREFIX = | 2178 | +PERLMOD_MAKEVAR_PREFIX = |
| 2037 | 2179 | ||
| 2038 | #--------------------------------------------------------------------------- | 2180 | #--------------------------------------------------------------------------- |
| 2039 | # Configuration options related to the preprocessor | 2181 | # Configuration options related to the preprocessor |
| @@ -2074,7 +2216,7 @@ SEARCH_INCLUDES = YES | @@ -2074,7 +2216,7 @@ SEARCH_INCLUDES = YES | ||
| 2074 | # preprocessor. | 2216 | # preprocessor. |
| 2075 | # This tag requires that the tag SEARCH_INCLUDES is set to YES. | 2217 | # This tag requires that the tag SEARCH_INCLUDES is set to YES. |
| 2076 | 2218 | ||
| 2077 | -INCLUDE_PATH = | 2219 | +INCLUDE_PATH = |
| 2078 | 2220 | ||
| 2079 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | 2221 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
| 2080 | # patterns (like *.h and *.hpp) to filter out the header-files in the | 2222 | # patterns (like *.h and *.hpp) to filter out the header-files in the |
| @@ -2082,7 +2224,7 @@ INCLUDE_PATH = | @@ -2082,7 +2224,7 @@ INCLUDE_PATH = | ||
| 2082 | # used. | 2224 | # used. |
| 2083 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | 2225 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2084 | 2226 | ||
| 2085 | -INCLUDE_FILE_PATTERNS = | 2227 | +INCLUDE_FILE_PATTERNS = |
| 2086 | 2228 | ||
| 2087 | # The PREDEFINED tag can be used to specify one or more macro names that are | 2229 | # The PREDEFINED tag can be used to specify one or more macro names that are |
| 2088 | # defined before the preprocessor is started (similar to the -D option of e.g. | 2230 | # defined before the preprocessor is started (similar to the -D option of e.g. |
| @@ -2092,7 +2234,7 @@ INCLUDE_FILE_PATTERNS = | @@ -2092,7 +2234,7 @@ INCLUDE_FILE_PATTERNS = | ||
| 2092 | # recursively expanded use the := operator instead of the = operator. | 2234 | # recursively expanded use the := operator instead of the = operator. |
| 2093 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | 2235 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2094 | 2236 | ||
| 2095 | -PREDEFINED = | 2237 | +PREDEFINED = |
| 2096 | 2238 | ||
| 2097 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this | 2239 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this |
| 2098 | # tag can be used to specify a list of macro names that should be expanded. The | 2240 | # tag can be used to specify a list of macro names that should be expanded. The |
| @@ -2101,7 +2243,7 @@ PREDEFINED = | @@ -2101,7 +2243,7 @@ PREDEFINED = | ||
| 2101 | # definition found in the source code. | 2243 | # definition found in the source code. |
| 2102 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. | 2244 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2103 | 2245 | ||
| 2104 | -EXPAND_AS_DEFINED = | 2246 | +EXPAND_AS_DEFINED = |
| 2105 | 2247 | ||
| 2106 | # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will | 2248 | # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will |
| 2107 | # remove all references to function-like macros that are alone on a line, have | 2249 | # remove all references to function-like macros that are alone on a line, have |
| @@ -2130,13 +2272,13 @@ SKIP_FUNCTION_MACROS = YES | @@ -2130,13 +2272,13 @@ SKIP_FUNCTION_MACROS = YES | ||
| 2130 | # the path). If a tag file is not located in the directory in which doxygen is | 2272 | # the path). If a tag file is not located in the directory in which doxygen is |
| 2131 | # run, you must also specify the path to the tagfile here. | 2273 | # run, you must also specify the path to the tagfile here. |
| 2132 | 2274 | ||
| 2133 | -TAGFILES = | 2275 | +TAGFILES = |
| 2134 | 2276 | ||
| 2135 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create a | 2277 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create a |
| 2136 | # tag file that is based on the input files it reads. See section "Linking to | 2278 | # tag file that is based on the input files it reads. See section "Linking to |
| 2137 | # external documentation" for more information about the usage of tag files. | 2279 | # external documentation" for more information about the usage of tag files. |
| 2138 | 2280 | ||
| 2139 | -GENERATE_TAGFILE = | 2281 | +GENERATE_TAGFILE = |
| 2140 | 2282 | ||
| 2141 | # If the ALLEXTERNALS tag is set to YES, all external class will be listed in | 2283 | # If the ALLEXTERNALS tag is set to YES, all external class will be listed in |
| 2142 | # the class index. If set to NO, only the inherited external classes will be | 2284 | # the class index. If set to NO, only the inherited external classes will be |
| @@ -2159,12 +2301,6 @@ EXTERNAL_GROUPS = YES | @@ -2159,12 +2301,6 @@ EXTERNAL_GROUPS = YES | ||
| 2159 | 2301 | ||
| 2160 | EXTERNAL_PAGES = YES | 2302 | EXTERNAL_PAGES = YES |
| 2161 | 2303 | ||
| 2162 | -# The PERL_PATH should be the absolute path and name of the perl script | ||
| 2163 | -# interpreter (i.e. the result of 'which perl'). | ||
| 2164 | -# The default file (with absolute path) is: /usr/bin/perl. | ||
| 2165 | - | ||
| 2166 | -PERL_PATH = /usr/bin/perl | ||
| 2167 | - | ||
| 2168 | #--------------------------------------------------------------------------- | 2304 | #--------------------------------------------------------------------------- |
| 2169 | # Configuration options related to the dot tool | 2305 | # Configuration options related to the dot tool |
| 2170 | #--------------------------------------------------------------------------- | 2306 | #--------------------------------------------------------------------------- |
| @@ -2178,21 +2314,12 @@ PERL_PATH = /usr/bin/perl | @@ -2178,21 +2314,12 @@ PERL_PATH = /usr/bin/perl | ||
| 2178 | 2314 | ||
| 2179 | CLASS_DIAGRAMS = NO | 2315 | CLASS_DIAGRAMS = NO |
| 2180 | 2316 | ||
| 2181 | -# You can define message sequence charts within doxygen comments using the \msc | ||
| 2182 | -# command. Doxygen will then run the mscgen tool (see: | ||
| 2183 | -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the | ||
| 2184 | -# documentation. The MSCGEN_PATH tag allows you to specify the directory where | ||
| 2185 | -# the mscgen tool resides. If left empty the tool is assumed to be found in the | ||
| 2186 | -# default search path. | ||
| 2187 | - | ||
| 2188 | -MSCGEN_PATH = | ||
| 2189 | - | ||
| 2190 | # You can include diagrams made with dia in doxygen documentation. Doxygen will | 2317 | # You can include diagrams made with dia in doxygen documentation. Doxygen will |
| 2191 | # then run dia to produce the diagram and insert it in the documentation. The | 2318 | # then run dia to produce the diagram and insert it in the documentation. The |
| 2192 | # DIA_PATH tag allows you to specify the directory where the dia binary resides. | 2319 | # DIA_PATH tag allows you to specify the directory where the dia binary resides. |
| 2193 | # If left empty dia is assumed to be found in the default search path. | 2320 | # If left empty dia is assumed to be found in the default search path. |
| 2194 | 2321 | ||
| 2195 | -DIA_PATH = | 2322 | +DIA_PATH = |
| 2196 | 2323 | ||
| 2197 | # If set to YES the inheritance and collaboration graphs will hide inheritance | 2324 | # If set to YES the inheritance and collaboration graphs will hide inheritance |
| 2198 | # and usage relations if the target is undocumented or is not a class. | 2325 | # and usage relations if the target is undocumented or is not a class. |
| @@ -2241,7 +2368,7 @@ DOT_FONTSIZE = 10 | @@ -2241,7 +2368,7 @@ DOT_FONTSIZE = 10 | ||
| 2241 | # the path where dot can find it using this tag. | 2368 | # the path where dot can find it using this tag. |
| 2242 | # This tag requires that the tag HAVE_DOT is set to YES. | 2369 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2243 | 2370 | ||
| 2244 | -DOT_FONTPATH = | 2371 | +DOT_FONTPATH = |
| 2245 | 2372 | ||
| 2246 | # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for | 2373 | # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for |
| 2247 | # each documented class showing the direct and indirect inheritance relations. | 2374 | # each documented class showing the direct and indirect inheritance relations. |
| @@ -2392,19 +2519,19 @@ DOT_PATH = /usr/local/bin | @@ -2392,19 +2519,19 @@ DOT_PATH = /usr/local/bin | ||
| 2392 | # command). | 2519 | # command). |
| 2393 | # This tag requires that the tag HAVE_DOT is set to YES. | 2520 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2394 | 2521 | ||
| 2395 | -DOTFILE_DIRS = | 2522 | +DOTFILE_DIRS = |
| 2396 | 2523 | ||
| 2397 | # The MSCFILE_DIRS tag can be used to specify one or more directories that | 2524 | # The MSCFILE_DIRS tag can be used to specify one or more directories that |
| 2398 | # contain msc files that are included in the documentation (see the \mscfile | 2525 | # contain msc files that are included in the documentation (see the \mscfile |
| 2399 | # command). | 2526 | # command). |
| 2400 | 2527 | ||
| 2401 | -MSCFILE_DIRS = | 2528 | +MSCFILE_DIRS = |
| 2402 | 2529 | ||
| 2403 | # The DIAFILE_DIRS tag can be used to specify one or more directories that | 2530 | # The DIAFILE_DIRS tag can be used to specify one or more directories that |
| 2404 | # contain dia files that are included in the documentation (see the \diafile | 2531 | # contain dia files that are included in the documentation (see the \diafile |
| 2405 | # command). | 2532 | # command). |
| 2406 | 2533 | ||
| 2407 | -DIAFILE_DIRS = | 2534 | +DIAFILE_DIRS = |
| 2408 | 2535 | ||
| 2409 | # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the | 2536 | # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the |
| 2410 | # path where java can find the plantuml.jar file. If left blank, it is assumed | 2537 | # path where java can find the plantuml.jar file. If left blank, it is assumed |
| @@ -2412,12 +2539,17 @@ DIAFILE_DIRS = | @@ -2412,12 +2539,17 @@ DIAFILE_DIRS = | ||
| 2412 | # generate a warning when it encounters a \startuml command in this case and | 2539 | # generate a warning when it encounters a \startuml command in this case and |
| 2413 | # will not generate output for the diagram. | 2540 | # will not generate output for the diagram. |
| 2414 | 2541 | ||
| 2415 | -PLANTUML_JAR_PATH = | 2542 | +PLANTUML_JAR_PATH = |
| 2543 | + | ||
| 2544 | +# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a | ||
| 2545 | +# configuration file for plantuml. | ||
| 2546 | + | ||
| 2547 | +PLANTUML_CFG_FILE = | ||
| 2416 | 2548 | ||
| 2417 | # When using plantuml, the specified paths are searched for files specified by | 2549 | # When using plantuml, the specified paths are searched for files specified by |
| 2418 | # the !include statement in a plantuml block. | 2550 | # the !include statement in a plantuml block. |
| 2419 | 2551 | ||
| 2420 | -PLANTUML_INCLUDE_PATH = | 2552 | +PLANTUML_INCLUDE_PATH = |
| 2421 | 2553 | ||
| 2422 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes | 2554 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes |
| 2423 | # that will be shown in the graph. If the number of nodes in a graph becomes | 2555 | # that will be shown in the graph. If the number of nodes in a graph becomes |
doc/markdown/Build.md
| 1 | # Build and install {#build} | 1 | # Build and install {#build} |
| 2 | 2 | ||
| 3 | +[TOC] | ||
| 4 | + | ||
| 3 | # Basic installation {#basic-install} | 5 | # Basic installation {#basic-install} |
| 4 | 6 | ||
| 5 | ## Clone from github {#clone} | 7 | ## Clone from github {#clone} |
| @@ -74,11 +76,11 @@ make coveragetest | @@ -74,11 +76,11 @@ make coveragetest | ||
| 74 | ``` | 76 | ``` |
| 75 | 77 | ||
| 76 | ## Building examples {#build-examples} | 78 | ## Building examples {#build-examples} |
| 77 | -There are some small example programs using this library in the examples folder. To build them, | ||
| 78 | -set `hueplusplus_SAMPLES=ON`. The target `hueplusplus_examples` builds all examples into build/examples. | 79 | +There are some small [example programs](@ref examples) using this library in the examples folder. To build them, |
| 80 | +set `hueplusplus_EXAMPLES=ON`. The target `hueplusplus_examples` builds all examples into build/examples. | ||
| 79 | ```{.sh} | 81 | ```{.sh} |
| 80 | mkdir build | 82 | mkdir build |
| 81 | cd build | 83 | cd build |
| 82 | -cmake .. -Dhueplusplus_SAMPLES=ON | 84 | +cmake .. -Dhueplusplus_EXAMPLES=ON |
| 83 | make hueplusplus_examples | 85 | make hueplusplus_examples |
| 84 | ``` | 86 | ``` |
doc/markdown/Getting_Started.md
| @@ -6,54 +6,34 @@ The options are a [WinHttpHandler](@ref hueplusplus::WinHttpHandler) (for window | @@ -6,54 +6,34 @@ The options are a [WinHttpHandler](@ref hueplusplus::WinHttpHandler) (for window | ||
| 6 | 6 | ||
| 7 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. | 7 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. |
| 8 | The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. | 8 | The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. |
| 9 | -After that you can call [findBridges()](@ref hueplusplus::HueFinder::findBridges), which will return a vector containing the ip and mac address of all found Bridges. | ||
| 10 | -```{.cpp} | ||
| 11 | -// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 12 | -auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 13 | -hueplusplus::BridgeFinder finder(handler); | ||
| 14 | -std::vector<hueplusplus::BridgeFinder::BridgeIdentification> bridges = finder.findBridges(); | ||
| 15 | -if (bridges.empty()) | ||
| 16 | -{ | ||
| 17 | - std::cerr << "No bridges found\n"; | ||
| 18 | - return; | ||
| 19 | -} | ||
| 20 | -``` | 9 | +After that you can call [findBridges()](@ref hueplusplus::BridgeFinder::findBridges), which will return a vector containing the ip and mac address of all found Bridges. |
| 10 | +\snippet Snippets.cpp search-bridge | ||
| 21 | 11 | ||
| 22 | ## Authenticate Bridges | 12 | ## Authenticate Bridges |
| 23 | If you have found the Bridge you were looking for, you can then move on with the authentication process. | 13 | If you have found the Bridge you were looking for, you can then move on with the authentication process. |
| 24 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), | 14 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), |
| 25 | where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button. | 15 | where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button. |
| 26 | -```{.cpp} | ||
| 27 | -hueplusplus::Bridge bridge = finder.getBridge(bridges[0]); | ||
| 28 | -``` | 16 | +\snippet Snippets.cpp get-bridge-1 |
| 17 | + | ||
| 29 | If you on the other hand already have a username you can add your bridge like so | 18 | If you on the other hand already have a username you can add your bridge like so |
| 30 | -```{.cpp} | ||
| 31 | -finder.addUsername(bridges[0].mac, "<username>"); | ||
| 32 | -hueplusplus::Bridge bridge = finder.getBridge(bridges[0]); | ||
| 33 | -``` | ||
| 34 | -If you do not want to use the HueFinder or you already know the ip and username of your bridge you have the option to create your own Hue object. | 19 | +\snippet Snippets.cpp get-bridge-2 |
| 20 | + | ||
| 21 | +If you do not want to use the BridgeFinder or you already know the ip and username of your bridge you have the option to create your own Hue object. | ||
| 35 | Here you will need to provide the ip address, the port number, a username and an HttpHandler | 22 | Here you will need to provide the ip address, the port number, a username and an HttpHandler |
| 36 | -```{.cpp} | ||
| 37 | -// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 38 | -auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 39 | -hueplusplus::Bridge bridge("192.168.2.102", 80, "<username>", handler); | ||
| 40 | -``` | 23 | +\snippet Snippets.cpp get-bridge-3 |
| 24 | + | ||
| 41 | At this point you may want to decide whether to use a [shared state](@ref shared-state) cache model or keep the default settings. | 25 | At this point you may want to decide whether to use a [shared state](@ref shared-state) cache model or keep the default settings. |
| 42 | 26 | ||
| 43 | ### Controlling lights | 27 | ### Controlling lights |
| 44 | 28 | ||
| 45 | -```{.cpp} | ||
| 46 | -hueplusplus::Light light = bridge.getLight(1); | ||
| 47 | -light1.On(); | ||
| 48 | -light1.Off(); | ||
| 49 | -``` | 29 | +\snippet Snippets.cpp control-lights |
| 30 | + | ||
| 31 | +Use [transactions](@ref transactions) to change multiple properties at once. | ||
| 50 | 32 | ||
| 51 | ### Controlling groups | 33 | ### Controlling groups |
| 52 | 34 | ||
| 53 | -```{.cpp} | ||
| 54 | -hueplusplus::Group group = bridge.getGroup(1); | ||
| 55 | -group.setOn(true); | ||
| 56 | -``` | 35 | +\snippet Snippets.cpp control-groups |
| 57 | 36 | ||
| 58 | ## More information | 37 | ## More information |
| 59 | -- [Transactions](@ref transactions) | ||
| 60 | \ No newline at end of file | 38 | \ No newline at end of file |
| 39 | +- [Transactions](@ref transactions) | ||
| 40 | +- [Shared state cache](@ref shared-state) |
doc/markdown/Mainpage.md
| 1 | # Documentation for the hueplusplus library | 1 | # Documentation for the hueplusplus library |
| 2 | A simple and easy to use library for Philips Hue Lights. | 2 | A simple and easy to use library for Philips Hue Lights. |
| 3 | 3 | ||
| 4 | +[TOC] | ||
| 5 | + | ||
| 4 | ## Features | 6 | ## Features |
| 5 | * find bridges with SSDP or set an ip manually | 7 | * find bridges with SSDP or set an ip manually |
| 6 | * all common light functions (brightness, color, temperature) | 8 | * all common light functions (brightness, color, temperature) |
| @@ -17,85 +19,57 @@ A simple and easy to use library for Philips Hue Lights. | @@ -17,85 +19,57 @@ A simple and easy to use library for Philips Hue Lights. | ||
| 17 | * Espressif ESP32 SDK & Arduino | 19 | * Espressif ESP32 SDK & Arduino |
| 18 | 20 | ||
| 19 | ## How to use | 21 | ## How to use |
| 20 | -- [Getting Started](@ref getting-started) | 22 | +[Getting started](@ref getting-started) |
| 21 | ### Searching for Bridges | 23 | ### Searching for Bridges |
| 22 | To start searching for a Hue Bridge you will need to choose an IHttpHandler and create one. The options are a [WinHttpHandler](@ref hueplusplus::WinHttpHandler) (for windows) or a [LinHttpHandler](@ref hueplusplus::LinHttpHandler) (for linux or linux-like). | 24 | To start searching for a Hue Bridge you will need to choose an IHttpHandler and create one. The options are a [WinHttpHandler](@ref hueplusplus::WinHttpHandler) (for windows) or a [LinHttpHandler](@ref hueplusplus::LinHttpHandler) (for linux or linux-like). |
| 23 | 25 | ||
| 24 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. | 26 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. |
| 25 | The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. | 27 | The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. |
| 26 | After that you can call [findBridges()](@ref hueplusplus::BridgeFinder::findBridges), which will return a vector containing the ip and mac address of all found Bridges. | 28 | After that you can call [findBridges()](@ref hueplusplus::BridgeFinder::findBridges), which will return a vector containing the ip and mac address of all found Bridges. |
| 27 | -```{.cpp} | ||
| 28 | -// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 29 | -handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 30 | -hueplusplus::BridgeFinder finder(handler); | ||
| 31 | -std::vector<hueplusplus::BridgeFinder::BridgeIdentification> bridges = finder.findBridges(); | ||
| 32 | -if (bridges.empty()) | ||
| 33 | -{ | ||
| 34 | - std::cerr << "No bridges found\n"; | ||
| 35 | - return; | ||
| 36 | -} | 29 | +\snippet Snippets.cpp search-bridge |
| 37 | 30 | ||
| 38 | -``` | 31 | +At this point you may want to decide whether to use a [shared state](@ref shared-state) cache model or keep the default settings. |
| 39 | 32 | ||
| 40 | ### Authenticate Bridges | 33 | ### Authenticate Bridges |
| 41 | If you have found the Bridge you were looking for, you can then move on with the authentication process. | 34 | If you have found the Bridge you were looking for, you can then move on with the authentication process. |
| 42 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), | 35 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), |
| 43 | where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button. | 36 | where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button. |
| 44 | -```{.cpp} | ||
| 45 | -hueplusplus::Bridge bridge = finder.getBridge(bridges[0]); | ||
| 46 | -``` | 37 | +\snippet Snippets.cpp get-bridge-1 |
| 38 | + | ||
| 47 | If you on the other hand already have a username you can add your bridge like so | 39 | If you on the other hand already have a username you can add your bridge like so |
| 48 | -```{.cpp} | ||
| 49 | -finder.addUsername(bridges[0].mac, "<username>"); | ||
| 50 | -hueplusplus::Bridge bridge = finder.getBridge(bridges[0]); | ||
| 51 | -``` | 40 | +\snippet Snippets.cpp get-bridge-2 |
| 41 | + | ||
| 52 | If you do not want to use the BridgeFinder or you already know the ip and username of your bridge you have the option to create your own Bridge object. | 42 | If you do not want to use the BridgeFinder or you already know the ip and username of your bridge you have the option to create your own Bridge object. |
| 53 | Here you will need to provide the ip address, the port number, a username and an HttpHandler | 43 | Here you will need to provide the ip address, the port number, a username and an HttpHandler |
| 54 | -```{.cpp} | ||
| 55 | -// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 56 | -handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 57 | -hueplusplus::Bridge bridge("192.168.2.102", 80, "<username>", handler); | ||
| 58 | -``` | 44 | +\snippet Snippets.cpp get-bridge-3 |
| 45 | + | ||
| 59 | 46 | ||
| 60 | ### Controlling lights | 47 | ### Controlling lights |
| 61 | If you have your Bridge all set up, you can now control its lights. | 48 | If you have your Bridge all set up, you can now control its lights. |
| 62 | For that create a new Light object and call [lights().get(\<id\>)](@ref hueplusplus::ResourceList::get) on your bridge object to get a reference to a specific light, where id | 49 | For that create a new Light object and call [lights().get(\<id\>)](@ref hueplusplus::ResourceList::get) on your bridge object to get a reference to a specific light, where id |
| 63 | is the id of the light set internally by the Hue Bridge. | 50 | is the id of the light set internally by the Hue Bridge. |
| 64 | -```{.cpp} | ||
| 65 | -hueplusplus::Light light1 = bridge.lights().get(1); | ||
| 66 | -``` | 51 | +\snippet Snippets.cpp light-1 |
| 52 | + | ||
| 67 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, | 53 | If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, |
| 68 | you can get a vector containing them by calling [getAll()](@ref hueplusplus::ResourceList::getAll) on your bridge object. If no lights are found the vector will be empty. | 54 | you can get a vector containing them by calling [getAll()](@ref hueplusplus::ResourceList::getAll) on your bridge object. If no lights are found the vector will be empty. |
| 69 | -```{.cpp} | ||
| 70 | -std::vector<hueplusplus::Light> lights = bridge.lights().getAll(); | ||
| 71 | -``` | 55 | +\snippet Snippets.cpp light-2 |
| 56 | + | ||
| 72 | If you now want to control a light, call a specific function of it. | 57 | If you now want to control a light, call a specific function of it. |
| 73 | -```{.cpp} | ||
| 74 | -light1.on(); | ||
| 75 | -light1.setBrightness(120); | ||
| 76 | -light1.alertHueSaturation(25500, 255); | ||
| 77 | -light1.setColorLoop(true); | ||
| 78 | -light1.setColorRGB(255, 128, 0); | ||
| 79 | -lights[1].off(); | ||
| 80 | -lights.at(1).setColorHue(4562); | ||
| 81 | -``` | 58 | +\snippet Snippets.cpp light-3 |
| 59 | + | ||
| 82 | But keep in mind that some light types do not have all functions available. So you might call a | 60 | But keep in mind that some light types do not have all functions available. So you might call a |
| 83 | specific function, but nothing will happen. For that you might want to check what type | 61 | specific function, but nothing will happen. For that you might want to check what type |
| 84 | of a light you are controlling. For that you can call the function [getColorType()](@ref hueplusplus::Light::getColorType()), which will return | 62 | of a light you are controlling. For that you can call the function [getColorType()](@ref hueplusplus::Light::getColorType()), which will return |
| 85 | a ColorType. | 63 | a ColorType. |
| 86 | -```{.cpp} | ||
| 87 | -hueplusplus::ColorType type1 = light1.getColorType(); | ||
| 88 | -``` | 64 | +\snippet Snippets.cpp light-4 |
| 65 | + | ||
| 89 | There's also a new way to check whether specific functions of a light are available: | 66 | There's also a new way to check whether specific functions of a light are available: |
| 90 | -```{.cpp} | ||
| 91 | -light1.hasBrightnessControl(); | ||
| 92 | -light1.hasTemperatureControl(); | ||
| 93 | -light1.hasColorControl(); | ||
| 94 | -``` | 67 | +\snippet Snippets.cpp light-5 |
| 68 | + | ||
| 95 | These will either return true(light has specified function) or false(light lacks specified function). | 69 | These will either return true(light has specified function) or false(light lacks specified function). |
| 96 | 70 | ||
| 97 | ## Build and install | 71 | ## Build and install |
| 98 | -- [Build and install guide](@ref build) | 72 | +[Build and install guide](@ref build) |
| 99 | 73 | ||
| 100 | ### Basic installation | 74 | ### Basic installation |
| 101 | If you want to build the library you can use cmake (at least version 3.8). First create a build folder and then execute cmake. | 75 | If you want to build the library you can use cmake (at least version 3.8). First create a build folder and then execute cmake. |
| @@ -155,3 +129,11 @@ If you also want to execute coverage tests you will need to install gcov and lco | @@ -155,3 +129,11 @@ If you also want to execute coverage tests you will need to install gcov and lco | ||
| 155 | ```bash | 129 | ```bash |
| 156 | make coveragetest | 130 | make coveragetest |
| 157 | ``` | 131 | ``` |
| 132 | + | ||
| 133 | + | ||
| 134 | +## Other pages | ||
| 135 | +- [Getting started](@ref getting-started) | ||
| 136 | +- [Build and install](@ref build) | ||
| 137 | +- [Shared state cache](@ref shared-state) | ||
| 138 | +- [Transactions](@ref transactions) | ||
| 139 | +- [Sensors](@ref sensors) |
doc/markdown/Sensors.md
| 1 | # Sensors {#sensors} | 1 | # Sensors {#sensors} |
| 2 | 2 | ||
| 3 | +[TOC] | ||
| 4 | + | ||
| 3 | ## Sensor support | 5 | ## Sensor support |
| 4 | The library supports the sensor types listed on the Hue developer documentation. | 6 | The library supports the sensor types listed on the Hue developer documentation. |
| 7 | +Include `hueplusplus/ZLLSensors.h` for ZigBee sensors and `hueplusplus/CLIPSensors.h` for CLIP sensors. | ||
| 5 | Other sensors can be used with the generic [Sensor](@ref hueplusplus::Sensor) class. | 8 | Other sensors can be used with the generic [Sensor](@ref hueplusplus::Sensor) class. |
| 6 | 9 | ||
| 7 | ### Working with a known sensor | 10 | ### Working with a known sensor |
| @@ -9,41 +12,19 @@ In most cases, the type of the sensors is known in advance, such as a switch. | @@ -9,41 +12,19 @@ In most cases, the type of the sensors is known in advance, such as a switch. | ||
| 9 | The classes in the [sensors](@ref hueplusplus::sensors) namespace provide the documented | 12 | The classes in the [sensors](@ref hueplusplus::sensors) namespace provide the documented |
| 10 | functionality. The type can be specified when accessing the sensor. When it does not match, | 13 | functionality. The type can be specified when accessing the sensor. When it does not match, |
| 11 | an exception is thrown. | 14 | an exception is thrown. |
| 12 | -```{.cpp} | ||
| 13 | -hueplusplus::sensors::ZLLSwitch switchSensor = bridge.sensors().getAsType<hueplusplus::sensors::ZLLSwitch>(2); | ||
| 14 | -``` | 15 | +\snippet Snippets.cpp known-sensor-1 |
| 15 | 16 | ||
| 16 | You can also get all sensors of a specified type by using [getAllByType<T>()](@ref hueplusplus::SensorList::getAllByType). | 17 | You can also get all sensors of a specified type by using [getAllByType<T>()](@ref hueplusplus::SensorList::getAllByType). |
| 17 | -```{.cpp} | ||
| 18 | -std::vector<hueplusplus::sensors::ZLLSwitch> allSwitches = bridge.sensors().getAllByType<hueplusplus::sensors::ZLLSwitch>(); | ||
| 19 | -``` | 18 | +\snippet Snippets.cpp known-sensor-2 |
| 20 | 19 | ||
| 21 | ### Working with an unknown sensor | 20 | ### Working with an unknown sensor |
| 22 | When the sensor type is not known, use the generic sensor class. In this case, some attributes might not | 21 | When the sensor type is not known, use the generic sensor class. In this case, some attributes might not |
| 23 | exist, so they have to be checked first. This applies to all attributes that have a `hasXXX` method. | 22 | exist, so they have to be checked first. This applies to all attributes that have a `hasXXX` method. |
| 24 | - | ||
| 25 | -```{.cpp} | ||
| 26 | -hueplusplus::Sensor genericSensor = bridge.sensors().get(1); | ||
| 27 | -if(genericSensor.hasOn()) | ||
| 28 | -{ | ||
| 29 | - // Now can check whether it is on | ||
| 30 | - if(genericSensor.isOn()) | ||
| 31 | - { | ||
| 32 | - // ... | ||
| 33 | - } | ||
| 34 | -} | ||
| 35 | -``` | 23 | +\snippet Snippets.cpp generic-sensor-1 |
| 36 | 24 | ||
| 37 | It is easiest to compare the sensor type to the existing ones (`typeStr` on the specific sensor classes) | 25 | It is easiest to compare the sensor type to the existing ones (`typeStr` on the specific sensor classes) |
| 38 | and then convert the sensor to that type. | 26 | and then convert the sensor to that type. |
| 39 | -```{.cpp} | ||
| 40 | -hueplusplus::Sensor genericSensor = bridge.sensors().get(1); | ||
| 41 | -if(genericSensor.getType() == hueplusplus::sensors::ZLLSwitch::typeStr) | ||
| 42 | -{ | ||
| 43 | - hueplusplus::sensors::ZLLSwitch switchSensor = genericSensor.asSensorType<hueplusplus::sensors::ZLLSwitch>(); | ||
| 44 | - // ... | ||
| 45 | -} | ||
| 46 | -``` | 27 | +\snippet Snippets.cpp generic-sensor-2 |
| 47 | 28 | ||
| 48 | ## ZLL sensors vs. CLIP sensors | 29 | ## ZLL sensors vs. CLIP sensors |
| 49 | ZLL sensors (defined in `ZLLSensors.h`) are physical device sensors which send their data | 30 | ZLL sensors (defined in `ZLLSensors.h`) are physical device sensors which send their data |
| @@ -60,19 +41,7 @@ Conditions can be created from the specific sensor types using `makeCondition()` | @@ -60,19 +41,7 @@ Conditions can be created from the specific sensor types using `makeCondition()` | ||
| 60 | These functions return a helper class with methods for the [possible operators](@ref hueplusplus::Condition::Operator) valid for the state. | 41 | These functions return a helper class with methods for the [possible operators](@ref hueplusplus::Condition::Operator) valid for the state. |
| 61 | 42 | ||
| 62 | For some sensors, which have multiple possible states, there exist multiple variations of makeCondition. | 43 | For some sensors, which have multiple possible states, there exist multiple variations of makeCondition. |
| 63 | - | ||
| 64 | -```{.cpp} | ||
| 65 | -hueplusplus::sensors::ZLLSwitch switchSensor = ...; | ||
| 66 | -// ZLLSwitch conditions operate on `buttonEvent`, use makeConditionLastUpdate() | ||
| 67 | -// to trigger on the last update time. | ||
| 68 | - | ||
| 69 | -// Some examples: | ||
| 70 | -hueplusplus::Condition upPressed = makeCondition(switchSensor).eq(hueplusplus::sensors::ZLLSwitch::c_UP_INITIAL_PRESS); | ||
| 71 | -hueplusplus::Condition buttonChanged = makeCondition(switchSensor).dx(); | ||
| 72 | - | ||
| 73 | -hueplusplus::time::TimeInterval interval(std::chrono::hours(12), std::chrono::hours(13)); | ||
| 74 | -hueplusplus::Condition updatedAtNoon = makeConditionLastUpdate(switchSensor).in(interval); | ||
| 75 | -``` | 44 | +\snippet Snippets.cpp sensor-conditions |
| 76 | 45 | ||
| 77 | For generic sensors, the conditions must be created manually using the [Condition](@ref hueplusplus::Condition::Condition) | 46 | For generic sensors, the conditions must be created manually using the [Condition](@ref hueplusplus::Condition::Condition) |
| 78 | -constructor with a proper address to the sensor state. | ||
| 79 | \ No newline at end of file | 47 | \ No newline at end of file |
| 48 | +constructor with a proper address to the sensor state. |
doc/markdown/Shared_State.md
| 1 | # Shared state cache {#shared-state} | 1 | # Shared state cache {#shared-state} |
| 2 | 2 | ||
| 3 | +[TOC] | ||
| 4 | + | ||
| 3 | ## What shared state means | 5 | ## What shared state means |
| 4 | There are two ways in which the API state (internally JSON) can be handled: | 6 | There are two ways in which the API state (internally JSON) can be handled: |
| 5 | 1. Every resource instance holds its own cache of the state (default). | 7 | 1. Every resource instance holds its own cache of the state (default). |
| 6 | -2. All instances share the cache for the entire bridge. | 8 | +2. All instances share the cache of the entire bridge. |
| 7 | 9 | ||
| 8 | ### Advantages of shared state | 10 | ### Advantages of shared state |
| 9 | * Different resources are always consistent on the library level. | 11 | * Different resources are always consistent on the library level. |
| @@ -23,12 +25,8 @@ Because of these considerations, shared state is disabled by default. | @@ -23,12 +25,8 @@ Because of these considerations, shared state is disabled by default. | ||
| 23 | Shared state can be configured when the bridge is first constructed, either in [getBridge()](@ref hueplusplus::BridgeFinder::getBridge) | 25 | Shared state can be configured when the bridge is first constructed, either in [getBridge()](@ref hueplusplus::BridgeFinder::getBridge) |
| 24 | or in the [constructor](@ref hueplusplus::Bridge::Bridge). Set `sharedState` to `true` to keep all resources | 26 | or in the [constructor](@ref hueplusplus::Bridge::Bridge). Set `sharedState` to `true` to keep all resources |
| 25 | connected to the bridge cache. | 27 | connected to the bridge cache. |
| 26 | -```{.cpp} | ||
| 27 | -hueplusplus::Bridge bridge = finder.getBridge(bridges[0], true); | ||
| 28 | -``` | ||
| 29 | -```{.cpp} | ||
| 30 | -hueplusplus::Bridge bridge("192.168.2.102", 80, "<username>", handler, std::chrono::seconds(10), true); | ||
| 31 | -``` | 28 | +\snippet Snippets.cpp shared-bridge-1 |
| 29 | +\snippet Snippets.cpp shared-bridge-2 | ||
| 32 | 30 | ||
| 33 | ## Shared state and refreshing | 31 | ## Shared state and refreshing |
| 34 | When shared cache is used, refreshes use a hierarchichal structure to determine how much should be requested from the bridge. | 32 | When shared cache is used, refreshes use a hierarchichal structure to determine how much should be requested from the bridge. |
| @@ -38,13 +36,7 @@ Otherwise, only the lowest necessary level is requested from the bridge to be mo | @@ -38,13 +36,7 @@ Otherwise, only the lowest necessary level is requested from the bridge to be mo | ||
| 38 | 36 | ||
| 39 | ### Example: | 37 | ### Example: |
| 40 | 38 | ||
| 41 | -```{.cpp} | ||
| 42 | -bridge.setRefreshDuration(std::chrono::minutes(1)); | ||
| 43 | -bridge.lights().setRefreshDuration(std::chrono::seconds(30)); | ||
| 44 | -hueplusplus::Light light = bridge.lights().get(1); | ||
| 45 | -// ... wait some time | ||
| 46 | -bool on = light.isOn(); | ||
| 47 | -``` | 39 | +\snippet Snippets.cpp refresh-example |
| 48 | [isOn()](@ref hueplusplus::Light::isOn) is a non-const method (in this case). That means it will refresh the | 40 | [isOn()](@ref hueplusplus::Light::isOn) is a non-const method (in this case). That means it will refresh the |
| 49 | state if it is outdated. The default refresh time is inherited from `bridge.lights()`, so it is 30 seconds. | 41 | state if it is outdated. The default refresh time is inherited from `bridge.lights()`, so it is 30 seconds. |
| 50 | After 30 seconds, the state of `light` *and* `bridge.lights()` is outdated. Therefore, the entire list of lights is | 42 | After 30 seconds, the state of `light` *and* `bridge.lights()` is outdated. Therefore, the entire list of lights is |
doc/markdown/Transactions.md
| 1 | # Transactions {#transactions} | 1 | # Transactions {#transactions} |
| 2 | 2 | ||
| 3 | +[TOC] | ||
| 4 | + | ||
| 3 | ## Using a transaction for lights | 5 | ## Using a transaction for lights |
| 4 | -Often, you want to change more than one variable on a light at the same time, | 6 | +Often, you want to change more than one property on a light at the same time, |
| 5 | for example brightness and color. This is done using transactions ([StateTransaction](@ref hueplusplus::StateTransaction)). | 7 | for example brightness and color. This is done using transactions ([StateTransaction](@ref hueplusplus::StateTransaction)). |
| 8 | +\snippet Snippets.cpp transaction-lights | ||
| 6 | 9 | ||
| 7 | -```{.cpp} | ||
| 8 | -light.transaction().setOn(true).setBrightness(29).setColorHue(3000).setColorSaturation(128).commit(); | ||
| 9 | -``` | ||
| 10 | The request is reduced to only the variables that need to be changed based on the current state. | 10 | The request is reduced to only the variables that need to be changed based on the current state. |
| 11 | For example, if the light is already on, that part of the transaction is ignored. | 11 | For example, if the light is already on, that part of the transaction is ignored. |
| 12 | 12 | ||
| @@ -16,13 +16,7 @@ because that invalidates the reference. | @@ -16,13 +16,7 @@ because that invalidates the reference. | ||
| 16 | 16 | ||
| 17 | ### Advanced usage | 17 | ### Advanced usage |
| 18 | Another way to use the transaction is by storing it and building up the calls separately. | 18 | Another way to use the transaction is by storing it and building up the calls separately. |
| 19 | - | ||
| 20 | -```{.cpp} | ||
| 21 | -hueplusplus::StateTransaction t = light.transaction(); | ||
| 22 | -if(shouldTurnOn) | ||
| 23 | - t.setOn(true); | ||
| 24 | -t.commit(); | ||
| 25 | -``` | 19 | +\snippet Snippets.cpp transaction-advanced |
| 26 | 20 | ||
| 27 | In this case, it is especially important that the light and the state of the light __MUST NOT__ invalidate. That means | 21 | In this case, it is especially important that the light and the state of the light __MUST NOT__ invalidate. That means |
| 28 | * the light variable has to live longer than the transaction | 22 | * the light variable has to live longer than the transaction |
| @@ -34,17 +28,11 @@ In general, this method is easier to screw up and should only be used when reall | @@ -34,17 +28,11 @@ In general, this method is easier to screw up and should only be used when reall | ||
| 34 | The same principles of transactions for lights also apply for groups. The main difference is that | 28 | The same principles of transactions for lights also apply for groups. The main difference is that |
| 35 | for groups, there are no checks of the current state. Even if all lights in the group are already on, | 29 | for groups, there are no checks of the current state. Even if all lights in the group are already on, |
| 36 | the request to turn on all lights on the group is still sent. | 30 | the request to turn on all lights on the group is still sent. |
| 37 | - | ||
| 38 | -```{.cpp} | ||
| 39 | -group.transaction().setOn(true).setBrightness(64).commit(); | ||
| 40 | -``` | 31 | +\snippet Snippets.cpp transaction-groups |
| 41 | 32 | ||
| 42 | 33 | ||
| 43 | ## Creating Actions | 34 | ## Creating Actions |
| 44 | In a [Schedule](@ref hueplusplus::Schedule) or [Rule](@ref hueplusplus::Rule), | 35 | In a [Schedule](@ref hueplusplus::Schedule) or [Rule](@ref hueplusplus::Rule), |
| 45 | the bridge can set the state of lights and groups. To configure this, a transaction | 36 | the bridge can set the state of lights and groups. To configure this, a transaction |
| 46 | can be saved for later instead of committing it directly. | 37 | can be saved for later instead of committing it directly. |
| 47 | -```{.cpp} | ||
| 48 | -hueplusplus::Action action = light.transaction().setOn(true).setBrightness(255).toAction(); | ||
| 49 | -schedule.setCommand(action); | ||
| 50 | -``` | 38 | +\snippet Snippets.cpp transaction-action |
examples/BridgeSetup.cpp
| @@ -18,7 +18,8 @@ | @@ -18,7 +18,8 @@ | ||
| 18 | You should have received a copy of the GNU Lesser General Public License | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. | 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. |
| 20 | 20 | ||
| 21 | - \brief This example connects to a bridge with hardcoded mac and username. | 21 | + \example{lineno} BridgeSetup.cpp |
| 22 | + This example connects to a bridge with hardcoded mac and username. | ||
| 22 | **/ | 23 | **/ |
| 23 | 24 | ||
| 24 | 25 | ||
| @@ -45,7 +46,7 @@ namespace hue = hueplusplus; | @@ -45,7 +46,7 @@ namespace hue = hueplusplus; | ||
| 45 | const std::string macAddress = ""; | 46 | const std::string macAddress = ""; |
| 46 | const std::string username = ""; | 47 | const std::string username = ""; |
| 47 | 48 | ||
| 48 | -//! \brief Connects to a bridge and returns it. | 49 | +// Connects to a bridge and returns it. |
| 49 | hue::Bridge connectToBridge() | 50 | hue::Bridge connectToBridge() |
| 50 | { | 51 | { |
| 51 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); | 52 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); |
examples/CMakeLists.txt
| @@ -15,4 +15,10 @@ set_property(TARGET lights_off PROPERTY CXX_EXTENSIONS OFF) | @@ -15,4 +15,10 @@ set_property(TARGET lights_off PROPERTY CXX_EXTENSIONS OFF) | ||
| 15 | target_link_libraries(username_config hueplusplusstatic) | 15 | target_link_libraries(username_config hueplusplusstatic) |
| 16 | 16 | ||
| 17 | add_custom_target(hueplusplus_examples) | 17 | add_custom_target(hueplusplus_examples) |
| 18 | -add_dependencies(hueplusplus_examples bridge_setup lights_off) | ||
| 19 | \ No newline at end of file | 18 | \ No newline at end of file |
| 19 | +add_dependencies(hueplusplus_examples bridge_setup lights_off username_config) | ||
| 20 | + | ||
| 21 | +# Snippets for documentation, not included with the examples target | ||
| 22 | +add_executable(hueplusplus_snippets Snippets.cpp) | ||
| 23 | +set_property(TARGET hueplusplus_snippets PROPERTY CXX_STANDARD 14) | ||
| 24 | +set_property(TARGET hueplusplus_snippets PROPERTY CXX_EXTENSIONS OFF) | ||
| 25 | +target_link_libraries(hueplusplus_snippets hueplusplusstatic) |
examples/LightsOff.cpp
| @@ -18,7 +18,8 @@ | @@ -18,7 +18,8 @@ | ||
| 18 | You should have received a copy of the GNU Lesser General Public License | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. | 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. |
| 20 | 20 | ||
| 21 | - \brief This example turns off all lights for 20 seconds, then turns them on again. | 21 | + \example{lineno} LightsOff.cpp |
| 22 | + This example turns off all lights for 20 seconds, then turns them on again. | ||
| 22 | **/ | 23 | **/ |
| 23 | 24 | ||
| 24 | #include <thread> | 25 | #include <thread> |
| @@ -43,7 +44,7 @@ namespace hue = hueplusplus; | @@ -43,7 +44,7 @@ namespace hue = hueplusplus; | ||
| 43 | const std::string macAddress = ""; | 44 | const std::string macAddress = ""; |
| 44 | const std::string username = ""; | 45 | const std::string username = ""; |
| 45 | 46 | ||
| 46 | -//! \brief Connects to a bridge and returns it. | 47 | +// Connects to a bridge and returns it. |
| 47 | hue::Bridge connectToBridge() | 48 | hue::Bridge connectToBridge() |
| 48 | { | 49 | { |
| 49 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); | 50 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); |
| @@ -79,9 +80,8 @@ hue::Bridge connectToBridge() | @@ -79,9 +80,8 @@ hue::Bridge connectToBridge() | ||
| 79 | return finder.getBridge(*it); | 80 | return finder.getBridge(*it); |
| 80 | } | 81 | } |
| 81 | 82 | ||
| 82 | -//! \brief Turns off the lights on the bridge for 20 seconds. | ||
| 83 | -//! | ||
| 84 | -//! Only turns the lights back on that were on before. | 83 | +// Turns off the lights on the bridge for 20 seconds. |
| 84 | +// Only turns the lights back on that were on before. | ||
| 85 | void lightsOff(hue::Bridge& hue) | 85 | void lightsOff(hue::Bridge& hue) |
| 86 | { | 86 | { |
| 87 | std::vector<hue::Light> lights = hue.lights().getAll(); | 87 | std::vector<hue::Light> lights = hue.lights().getAll(); |
examples/Snippets.cpp
0 โ 100644
| 1 | +/** | ||
| 2 | + \file Snippets.cpp | ||
| 3 | + Copyright Notice\n | ||
| 4 | + Copyright (C) 2021 Jan Rogall - developer\n | ||
| 5 | + | ||
| 6 | + This file is part of hueplusplus. | ||
| 7 | + | ||
| 8 | + hueplusplus is free software: you can redistribute it and/or modify | ||
| 9 | + it under the terms of the GNU Lesser General Public License as published by | ||
| 10 | + the Free Software Foundation, either version 3 of the License, or | ||
| 11 | + (at your option) any later version. | ||
| 12 | + | ||
| 13 | + hueplusplus is distributed in the hope that it will be useful, | ||
| 14 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | + GNU Lesser General Public License for more details. | ||
| 17 | + | ||
| 18 | + You should have received a copy of the GNU Lesser General Public License | ||
| 19 | + along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | + | ||
| 21 | + \brief Contains code snippets used in the documentation, performs no useful functions. | ||
| 22 | +**/ | ||
| 23 | + | ||
| 24 | +#include <hueplusplus/Bridge.h> | ||
| 25 | +#include <hueplusplus/CLIPSensors.h> | ||
| 26 | +#include <hueplusplus/ZLLSensors.h> | ||
| 27 | + | ||
| 28 | +#ifdef _MSC_VER | ||
| 29 | +#include <hueplusplus/WinHttpHandler.h> | ||
| 30 | + | ||
| 31 | +namespace hueplusplus | ||
| 32 | +{ | ||
| 33 | +// Dirty hack to make the snippets compile under windows. Dont do this, | ||
| 34 | +// instead use your own alias which is set to either type like in BridgeSetup.cpp! | ||
| 35 | +using LinHttpHandler = WinHttpHandler; | ||
| 36 | +} // namespace hueplusplus | ||
| 37 | + | ||
| 38 | +#else | ||
| 39 | +#include <hueplusplus/LinHttpHandler.h> | ||
| 40 | + | ||
| 41 | +#endif | ||
| 42 | + | ||
| 43 | +void snippet1() | ||
| 44 | +{ | ||
| 45 | + // Main page | ||
| 46 | + //! [search-bridge] | ||
| 47 | + // For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 48 | + auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 49 | + hueplusplus::BridgeFinder finder(handler); | ||
| 50 | + std::vector<hueplusplus::BridgeFinder::BridgeIdentification> bridges = finder.findBridges(); | ||
| 51 | + if (bridges.empty()) | ||
| 52 | + { | ||
| 53 | + std::cerr << "No bridges found\n"; | ||
| 54 | + return; | ||
| 55 | + } | ||
| 56 | + //! [search-bridge] | ||
| 57 | + //! [get-bridge-2] | ||
| 58 | + finder.addUsername(bridges[0].mac, "<username>"); | ||
| 59 | + //! [get-bridge-1] | ||
| 60 | + hueplusplus::Bridge bridge = finder.getBridge(bridges[0]); | ||
| 61 | + //! [get-bridge-1] | ||
| 62 | + //! [get-bridge-2] | ||
| 63 | + //! [light-1] | ||
| 64 | + hueplusplus::Light light1 = bridge.lights().get(1); | ||
| 65 | + //! [light-1] | ||
| 66 | + //! [light-2] | ||
| 67 | + std::vector<hueplusplus::Light> lights = bridge.lights().getAll(); | ||
| 68 | + //! [light-2] | ||
| 69 | + //! [light-3] | ||
| 70 | + light1.on(); | ||
| 71 | + light1.setBrightness(120); | ||
| 72 | + light1.alertHueSaturation({25500, 254}); | ||
| 73 | + light1.setColorLoop(true); | ||
| 74 | + light1.setColorRGB({255, 128, 0}); | ||
| 75 | + lights[1].off(); | ||
| 76 | + lights.at(1).setColorHue(4562); | ||
| 77 | + //! [light-3] | ||
| 78 | + //! [light-4] | ||
| 79 | + hueplusplus::ColorType type1 = light1.getColorType(); | ||
| 80 | + //! [light-4] | ||
| 81 | + //! [light-5] | ||
| 82 | + light1.hasBrightnessControl(); | ||
| 83 | + light1.hasTemperatureControl(); | ||
| 84 | + light1.hasColorControl(); | ||
| 85 | + //! [light-5] | ||
| 86 | + | ||
| 87 | + // Getting started | ||
| 88 | + //! [control-lights] | ||
| 89 | + hueplusplus::Light light = bridge.lights().get(1); | ||
| 90 | + light.on(); | ||
| 91 | + light.off(); | ||
| 92 | + //! [control-lights] | ||
| 93 | + //! [control-groups] | ||
| 94 | + hueplusplus::Group group = bridge.groups().get(1); | ||
| 95 | + group.setOn(true); | ||
| 96 | + //! [control-groups] | ||
| 97 | + | ||
| 98 | + // Sensors | ||
| 99 | + //! [sensor-conditions] | ||
| 100 | + //! [known-sensor-1] | ||
| 101 | + hueplusplus::sensors::ZLLSwitch switchSensor = bridge.sensors().getAsType<hueplusplus::sensors::ZLLSwitch>(2); | ||
| 102 | + //! [known-sensor-1] | ||
| 103 | + // ZLLSwitch conditions operate on `buttonEvent`, use makeConditionLastUpdate() | ||
| 104 | + // to trigger on the last update time. | ||
| 105 | + | ||
| 106 | + // Some examples: | ||
| 107 | + hueplusplus::Condition upPressed | ||
| 108 | + = makeCondition(switchSensor).eq(hueplusplus::sensors::ZLLSwitch::c_UP_INITIAL_PRESS); | ||
| 109 | + hueplusplus::Condition buttonChanged = makeCondition(switchSensor).dx(); | ||
| 110 | + | ||
| 111 | + hueplusplus::time::TimeInterval interval(std::chrono::hours(12), std::chrono::hours(13)); | ||
| 112 | + hueplusplus::Condition updatedAtNoon = makeConditionLastUpdate(switchSensor).in(interval); | ||
| 113 | + //! [sensor-conditions] | ||
| 114 | + //! [known-sensor-2] | ||
| 115 | + std::vector<hueplusplus::sensors::ZLLSwitch> allSwitches | ||
| 116 | + = bridge.sensors().getAllByType<hueplusplus::sensors::ZLLSwitch>(); | ||
| 117 | + //! [known-sensor-2] | ||
| 118 | + //! [generic-sensor-1] | ||
| 119 | + hueplusplus::Sensor genericSensor = bridge.sensors().get(1); | ||
| 120 | + if (genericSensor.hasOn()) | ||
| 121 | + { | ||
| 122 | + // Now can check whether it is on | ||
| 123 | + if (genericSensor.isOn()) | ||
| 124 | + { | ||
| 125 | + // ... | ||
| 126 | + } | ||
| 127 | + } | ||
| 128 | + //! [generic-sensor-1] | ||
| 129 | + | ||
| 130 | + // Transactions | ||
| 131 | + //! [transaction-lights] | ||
| 132 | + light.transaction().setOn(true).setBrightness(29).setColorHue(3000).setColorSaturation(128).commit(); | ||
| 133 | + //! [transaction-lights] | ||
| 134 | + bool shouldTurnOn = true; | ||
| 135 | + //! [transaction-advanced] | ||
| 136 | + hueplusplus::StateTransaction t = light.transaction(); | ||
| 137 | + if (shouldTurnOn) | ||
| 138 | + t.setOn(true); | ||
| 139 | + t.commit(); | ||
| 140 | + //! [transaction-advanced] | ||
| 141 | + //! [transaction-groups] | ||
| 142 | + group.transaction().setOn(true).setBrightness(64).commit(); | ||
| 143 | + //! [transaction-groups] | ||
| 144 | + hueplusplus::Schedule schedule = bridge.schedules().get(1); | ||
| 145 | + //! [transaction-action] | ||
| 146 | + hueplusplus::Action action = light.transaction().setOn(true).setBrightness(254).toAction(); | ||
| 147 | + schedule.setCommand(action); | ||
| 148 | + //! [transaction-action] | ||
| 149 | +} | ||
| 150 | +void snippet2() | ||
| 151 | +{ | ||
| 152 | + // Main page | ||
| 153 | + //! [get-bridge-3] | ||
| 154 | + // For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | ||
| 155 | + auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 156 | + hueplusplus::Bridge bridge("192.168.2.102", 80, "<username>", handler); | ||
| 157 | + //! [get-bridge-3] | ||
| 158 | + | ||
| 159 | + // Sensors | ||
| 160 | + //! [generic-sensor-2] | ||
| 161 | + hueplusplus::Sensor genericSensor = bridge.sensors().get(1); | ||
| 162 | + if (genericSensor.getType() == hueplusplus::sensors::ZLLSwitch::typeStr) | ||
| 163 | + { | ||
| 164 | + hueplusplus::sensors::ZLLSwitch switchSensor = genericSensor.asSensorType<hueplusplus::sensors::ZLLSwitch>(); | ||
| 165 | + // ... | ||
| 166 | + } | ||
| 167 | + //! [generic-sensor-2] | ||
| 168 | +} | ||
| 169 | + | ||
| 170 | +void snippet3() | ||
| 171 | +{ | ||
| 172 | + // Shared state | ||
| 173 | + auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 174 | + hueplusplus::BridgeFinder finder(handler); | ||
| 175 | + std::vector<hueplusplus::BridgeFinder::BridgeIdentification> bridges = finder.findBridges(); | ||
| 176 | + //! [shared-bridge-1] | ||
| 177 | + hueplusplus::Bridge bridge = finder.getBridge(bridges[0], true); | ||
| 178 | + //! [shared-bridge-1] | ||
| 179 | + //! [refresh-example] | ||
| 180 | + bridge.setRefreshDuration(std::chrono::minutes(1)); | ||
| 181 | + bridge.lights().setRefreshDuration(std::chrono::seconds(30)); | ||
| 182 | + hueplusplus::Light light = bridge.lights().get(1); | ||
| 183 | + // ... wait some time | ||
| 184 | + bool on = light.isOn(); | ||
| 185 | + //! [refresh-example] | ||
| 186 | +} | ||
| 187 | +void snippet4() | ||
| 188 | +{ | ||
| 189 | + // Shared state | ||
| 190 | + auto handler = std::make_shared<hueplusplus::LinHttpHandler>(); | ||
| 191 | + //! [shared-bridge-2] | ||
| 192 | + hueplusplus::Bridge bridge("192.168.2.102", 80, "<username>", handler, "", std::chrono::seconds(10), true); | ||
| 193 | + //! [shared-bridge-2] | ||
| 194 | +} | ||
| 195 | + | ||
| 196 | +int main(int argc, char** argv) | ||
| 197 | +{ | ||
| 198 | + return 0; | ||
| 199 | +} | ||
| 0 | \ No newline at end of file | 200 | \ No newline at end of file |
examples/UsernameConfig.cpp
| @@ -18,7 +18,8 @@ | @@ -18,7 +18,8 @@ | ||
| 18 | You should have received a copy of the GNU Lesser General Public License | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. | 19 | along with hueplusplus. If not, see <http://www.gnu.org/licenses/>. |
| 20 | 20 | ||
| 21 | - \brief This example reads the username and mac address from a config file. | 21 | + \example{lineno} UsernameConfig.cpp |
| 22 | + This example reads the username and mac address from a config file. | ||
| 22 | **/ | 23 | **/ |
| 23 | 24 | ||
| 24 | #include <algorithm> | 25 | #include <algorithm> |
| @@ -42,9 +43,9 @@ using SystemHttpHandler = hueplusplus::LinHttpHandler; | @@ -42,9 +43,9 @@ using SystemHttpHandler = hueplusplus::LinHttpHandler; | ||
| 42 | 43 | ||
| 43 | namespace hue = hueplusplus; | 44 | namespace hue = hueplusplus; |
| 44 | 45 | ||
| 45 | -//! \brief Reads a json config file. | ||
| 46 | -//! \param filename Path to the config file | ||
| 47 | -//! \returns Parsed json or an empty object if not successful. | 46 | +// Reads a json config file. |
| 47 | +// filename: Path to the config file | ||
| 48 | +// returns parsed json or an empty object if not successful. | ||
| 48 | nlohmann::json readConfigFile(const std::string& filename) | 49 | nlohmann::json readConfigFile(const std::string& filename) |
| 49 | { | 50 | { |
| 50 | std::ifstream stream(filename); | 51 | std::ifstream stream(filename); |
| @@ -64,20 +65,20 @@ nlohmann::json readConfigFile(const std::string& filename) | @@ -64,20 +65,20 @@ nlohmann::json readConfigFile(const std::string& filename) | ||
| 64 | } | 65 | } |
| 65 | } | 66 | } |
| 66 | 67 | ||
| 67 | -//! \brief Saves a json file. | ||
| 68 | -//! \param filename Path to the config file | ||
| 69 | -//! \param config Json value to save | 68 | +// Saves a json file. |
| 69 | +// filename: Path to the config file | ||
| 70 | +// config: Json value to save | ||
| 70 | void saveConfigFile(const std::string& filename, const nlohmann::json& config) | 71 | void saveConfigFile(const std::string& filename, const nlohmann::json& config) |
| 71 | { | 72 | { |
| 72 | std::ofstream stream(filename); | 73 | std::ofstream stream(filename); |
| 73 | stream << std::setw(4) << config; | 74 | stream << std::setw(4) << config; |
| 74 | } | 75 | } |
| 75 | 76 | ||
| 76 | -//! \brief Connects to a bridge and returns it | ||
| 77 | -//! \param username Already existing username, can be left empty. | ||
| 78 | -//! \param macAddress MAC address of the bridge, can be left empty. | ||
| 79 | -//! \throws std::runtime_error When the bridge was not found. | ||
| 80 | -//! \returns A connected bridge. | 77 | +// Connects to a bridge and returns it |
| 78 | +// username: Already existing username, can be left empty. | ||
| 79 | +// macAddress: MAC address of the bridge, can be left empty. | ||
| 80 | +// throws std::runtime_error when the bridge was not found. | ||
| 81 | +// returns a connected bridge. | ||
| 81 | hue::Bridge connectToBridge(const std::string& username, const std::string& macAddress) | 82 | hue::Bridge connectToBridge(const std::string& username, const std::string& macAddress) |
| 82 | { | 83 | { |
| 83 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); | 84 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); |
| @@ -113,12 +114,12 @@ hue::Bridge connectToBridge(const std::string& username, const std::string& macA | @@ -113,12 +114,12 @@ hue::Bridge connectToBridge(const std::string& username, const std::string& macA | ||
| 113 | return finder.getBridge(*it); | 114 | return finder.getBridge(*it); |
| 114 | } | 115 | } |
| 115 | 116 | ||
| 116 | -//! Connects to a bridge. The steps are: | ||
| 117 | -//! - read "config.json" for an existing config | ||
| 118 | -//! - connect to the bridge | ||
| 119 | -//! - save the username to the config file for the next run | ||
| 120 | -//! | ||
| 121 | -//! Also prints out the IP and username. | 117 | +// Connects to a bridge. The steps are: |
| 118 | +// - read "config.json" for an existing config | ||
| 119 | +// - connect to the bridge | ||
| 120 | +// - save the username to the config file for the next run | ||
| 121 | +// | ||
| 122 | +// Also prints out the IP and username. | ||
| 122 | int main(int argc, char** argv) | 123 | int main(int argc, char** argv) |
| 123 | { | 124 | { |
| 124 | 125 |