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 | 49 | |
| 50 | 50 | script: |
| 51 | 51 | ############################################################################ |
| 52 | - # Build main and tests | |
| 52 | + # Build main, tests and examples | |
| 53 | 53 | ############################################################################ |
| 54 | 54 | - mkdir -p build |
| 55 | 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 | 58 | - make coveragetest |
| 58 | 59 | - cd .. |
| 59 | 60 | - doxygen Doxyfile | ... | ... |
CMakeLists.txt
| ... | ... | @@ -22,7 +22,7 @@ endif() |
| 22 | 22 | |
| 23 | 23 | # options to set |
| 24 | 24 | option(hueplusplus_TESTS "Build tests" OFF) |
| 25 | -option(hueplusplus_SAMPLES "Build examples" OFF) | |
| 25 | +option(hueplusplus_EXAMPLES "Build examples" OFF) | |
| 26 | 26 | |
| 27 | 27 | option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) |
| 28 | 28 | find_program(CLANG_TIDY_EXE NAMES "clang-tidy" DOC "Path to clang-tidy executable") |
| ... | ... | @@ -100,6 +100,6 @@ if(hueplusplus_TESTS) |
| 100 | 100 | add_subdirectory("test") |
| 101 | 101 | endif() |
| 102 | 102 | |
| 103 | -if(hueplusplus_SAMPLES) | |
| 103 | +if(hueplusplus_EXAMPLES) | |
| 104 | 104 | add_subdirectory("examples") |
| 105 | 105 | endif() | ... | ... |
Doxyfile
| 1 | -# Doxyfile 1.8.11 | |
| 1 | +# Doxyfile 1.8.20 | |
| 2 | 2 | |
| 3 | 3 | # This file describes the settings to be used by the documentation system |
| 4 | 4 | # doxygen (www.doxygen.org) for a project. |
| ... | ... | @@ -17,11 +17,11 @@ |
| 17 | 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 | 25 | # The default value is: UTF-8. |
| 26 | 26 | |
| 27 | 27 | DOXYFILE_ENCODING = UTF-8 |
| ... | ... | @@ -38,20 +38,20 @@ PROJECT_NAME = hueplusplus |
| 38 | 38 | # could be handy for archiving the generated documentation or if some version |
| 39 | 39 | # control system is used. |
| 40 | 40 | |
| 41 | -PROJECT_NUMBER = | |
| 41 | +PROJECT_NUMBER = 1.0.0 | |
| 42 | 42 | |
| 43 | 43 | # Using the PROJECT_BRIEF tag one can provide an optional one line description |
| 44 | 44 | # for a project that appears at the top of each page and should give viewer a |
| 45 | 45 | # quick idea about the purpose of the project. Keep the description short. |
| 46 | 46 | |
| 47 | -PROJECT_BRIEF = | |
| 47 | +PROJECT_BRIEF = | |
| 48 | 48 | |
| 49 | 49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included |
| 50 | 50 | # in the documentation. The maximum height of the logo should not exceed 55 |
| 51 | 51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy |
| 52 | 52 | # the logo to the output directory. |
| 53 | 53 | |
| 54 | -PROJECT_LOGO = | |
| 54 | +PROJECT_LOGO = | |
| 55 | 55 | |
| 56 | 56 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path |
| 57 | 57 | # into which the generated documentation will be written. If a relative path is |
| ... | ... | @@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES = NO |
| 93 | 93 | |
| 94 | 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 | 104 | # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member |
| 97 | 105 | # descriptions after the members that are listed in the file and class |
| 98 | 106 | # documentation (similar to Javadoc). Set to NO to disable this. |
| ... | ... | @@ -162,7 +170,7 @@ FULL_PATH_NAMES = YES |
| 162 | 170 | # will be relative from the directory where doxygen is started. |
| 163 | 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 | 175 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the |
| 168 | 176 | # path mentioned in the documentation of a class, which tells the reader which |
| ... | ... | @@ -189,6 +197,16 @@ SHORT_NAMES = NO |
| 189 | 197 | |
| 190 | 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 | 210 | # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first |
| 193 | 211 | # line (until the first dot) of a Qt-style comment as the brief description. If |
| 194 | 212 | # set to NO, the Qt-style will behave just like regular Qt-style comments (thus |
| ... | ... | @@ -209,6 +227,14 @@ QT_AUTOBRIEF = NO |
| 209 | 227 | |
| 210 | 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 | 238 | # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the |
| 213 | 239 | # documentation from any documented member that it re-implements. |
| 214 | 240 | # The default value is: YES. |
| ... | ... | @@ -236,15 +262,14 @@ TAB_SIZE = 4 |
| 236 | 262 | # will allow you to put the command \sideeffect (or @sideeffect) in the |
| 237 | 263 | # documentation, which will result in a user-defined paragraph with heading |
| 238 | 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 | 274 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources |
| 250 | 275 | # only. Doxygen will then generate output that is more tailored for C. For |
| ... | ... | @@ -274,28 +299,37 @@ OPTIMIZE_FOR_FORTRAN = NO |
| 274 | 299 | |
| 275 | 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 | 310 | # Doxygen selects the parser to use depending on the extension of the files it |
| 278 | 311 | # parses. With this tag you can assign which parser to use for a given |
| 279 | 312 | # extension. Doxygen has a built-in mapping, but you can override or extend it |
| 280 | 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 | 323 | # Note: For files without extension you can use no_extension as a placeholder. |
| 290 | 324 | # |
| 291 | 325 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise |
| 292 | 326 | # the files are not read by doxygen. |
| 293 | 327 | |
| 294 | -EXTENSION_MAPPING = | |
| 328 | +EXTENSION_MAPPING = | |
| 295 | 329 | |
| 296 | 330 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments |
| 297 | 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 | 333 | # The output of markdown processing is further processed by doxygen, so you can |
| 300 | 334 | # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in |
| 301 | 335 | # case of backward compatibilities issues. |
| ... | ... | @@ -303,6 +337,15 @@ EXTENSION_MAPPING = |
| 303 | 337 | |
| 304 | 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 | 349 | # When enabled doxygen tries to link words that correspond to documented |
| 307 | 350 | # classes, or namespaces to their corresponding documentation. Such a link can |
| 308 | 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 | 371 | CPP_CLI_SUPPORT = NO |
| 329 | 372 | |
| 330 | 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 | 375 | # will parse them like normal C++ but will assume all classes use public instead |
| 333 | 376 | # of private inheritance when no explicit protection keyword is present. |
| 334 | 377 | # The default value is: NO. |
| ... | ... | @@ -414,6 +457,19 @@ TYPEDEF_HIDES_STRUCT = NO |
| 414 | 457 | |
| 415 | 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 | 474 | # Build related configuration options |
| 419 | 475 | #--------------------------------------------------------------------------- |
| ... | ... | @@ -434,6 +490,12 @@ EXTRACT_ALL = YES |
| 434 | 490 | |
| 435 | 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 | 499 | # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal |
| 438 | 500 | # scope will be included in the documentation. |
| 439 | 501 | # The default value is: NO. |
| ... | ... | @@ -488,8 +550,8 @@ HIDE_UNDOC_MEMBERS = NO |
| 488 | 550 | HIDE_UNDOC_CLASSES = NO |
| 489 | 551 | |
| 490 | 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 | 555 | # The default value is: NO. |
| 494 | 556 | |
| 495 | 557 | HIDE_FRIEND_COMPOUNDS = NO |
| ... | ... | @@ -512,7 +574,7 @@ INTERNAL_DOCS = NO |
| 512 | 574 | # names in lower-case letters. If set to YES, upper-case letters are also |
| 513 | 575 | # allowed. This is useful if you have classes or files whose names only differ |
| 514 | 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 | 578 | # The default value is: system dependent. |
| 517 | 579 | |
| 518 | 580 | CASE_SENSE_NAMES = NO |
| ... | ... | @@ -639,7 +701,7 @@ GENERATE_DEPRECATEDLIST= YES |
| 639 | 701 | # sections, marked by \if <section_label> ... \endif and \cond <section_label> |
| 640 | 702 | # ... \endcond blocks. |
| 641 | 703 | |
| 642 | -ENABLED_SECTIONS = | |
| 704 | +ENABLED_SECTIONS = | |
| 643 | 705 | |
| 644 | 706 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the |
| 645 | 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 | 743 | # by doxygen. Whatever the program writes to standard output is used as the file |
| 682 | 744 | # version. For an example see the documentation. |
| 683 | 745 | |
| 684 | -FILE_VERSION_FILTER = | |
| 746 | +FILE_VERSION_FILTER = | |
| 685 | 747 | |
| 686 | 748 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed |
| 687 | 749 | # by doxygen. The layout file controls the global structure of the generated |
| ... | ... | @@ -694,17 +756,17 @@ FILE_VERSION_FILTER = |
| 694 | 756 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE |
| 695 | 757 | # tag is left empty. |
| 696 | 758 | |
| 697 | -LAYOUT_FILE = | |
| 759 | +LAYOUT_FILE = | |
| 698 | 760 | |
| 699 | 761 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing |
| 700 | 762 | # the reference definitions. This must be a list of .bib files. The .bib |
| 701 | 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 | 765 | # For LaTeX the style of the bibliography can be controlled using |
| 704 | 766 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the |
| 705 | 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 | 772 | # Configuration options related to warning and progress messages |
| ... | ... | @@ -744,7 +806,8 @@ WARN_IF_DOC_ERROR = YES |
| 744 | 806 | # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that |
| 745 | 807 | # are documented, but have no documentation for their parameters or return |
| 746 | 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 | 811 | # The default value is: NO. |
| 749 | 812 | |
| 750 | 813 | WARN_NO_PARAMDOC = NO |
| ... | ... | @@ -769,7 +832,7 @@ WARN_FORMAT = "$file:$line: $text" |
| 769 | 832 | # messages should be written. If left blank the output is written to standard |
| 770 | 833 | # error (stderr). |
| 771 | 834 | |
| 772 | -WARN_LOGFILE = | |
| 835 | +WARN_LOGFILE = | |
| 773 | 836 | |
| 774 | 837 | #--------------------------------------------------------------------------- |
| 775 | 838 | # Configuration options related to the input files |
| ... | ... | @@ -783,12 +846,13 @@ WARN_LOGFILE = |
| 783 | 846 | |
| 784 | 847 | INPUT = include/hueplusplus \ |
| 785 | 848 | src \ |
| 786 | - doc/markdown | |
| 849 | + doc/markdown \ | |
| 850 | + examples | |
| 787 | 851 | |
| 788 | 852 | # This tag can be used to specify the character encoding of the source files |
| 789 | 853 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses |
| 790 | 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 | 856 | # possible encodings. |
| 793 | 857 | # The default value is: UTF-8. |
| 794 | 858 | |
| ... | ... | @@ -805,8 +869,10 @@ INPUT_ENCODING = UTF-8 |
| 805 | 869 | # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, |
| 806 | 870 | # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, |
| 807 | 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 | 877 | FILE_PATTERNS = *.c \ |
| 812 | 878 | *.cc \ |
| ... | ... | @@ -866,7 +932,7 @@ RECURSIVE = YES |
| 866 | 932 | # Note that relative paths are relative to the directory from which doxygen is |
| 867 | 933 | # run. |
| 868 | 934 | |
| 869 | -EXCLUDE = | |
| 935 | +EXCLUDE = | |
| 870 | 936 | |
| 871 | 937 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or |
| 872 | 938 | # directories that are symbolic links (a Unix file system feature) are excluded |
| ... | ... | @@ -882,7 +948,7 @@ EXCLUDE_SYMLINKS = NO |
| 882 | 948 | # Note that the wildcards are matched against the file with absolute path, so to |
| 883 | 949 | # exclude all test directories for example use the pattern */test/* |
| 884 | 950 | |
| 885 | -EXCLUDE_PATTERNS = | |
| 951 | +EXCLUDE_PATTERNS = | |
| 886 | 952 | |
| 887 | 953 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names |
| 888 | 954 | # (namespaces, classes, functions, etc.) that should be excluded from the |
| ... | ... | @@ -899,14 +965,14 @@ EXCLUDE_SYMBOLS = *::detail |
| 899 | 965 | # that contain example code fragments that are included (see the \include |
| 900 | 966 | # command). |
| 901 | 967 | |
| 902 | -EXAMPLE_PATH = | |
| 968 | +EXAMPLE_PATH = examples | |
| 903 | 969 | |
| 904 | 970 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the |
| 905 | 971 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and |
| 906 | 972 | # *.h) to filter out the source-files in the directories. If left blank all |
| 907 | 973 | # files are included. |
| 908 | 974 | |
| 909 | -EXAMPLE_PATTERNS = * | |
| 975 | +EXAMPLE_PATTERNS = *.cpp | |
| 910 | 976 | |
| 911 | 977 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be |
| 912 | 978 | # searched for input files to be used with the \include or \dontinclude commands |
| ... | ... | @@ -919,7 +985,7 @@ EXAMPLE_RECURSIVE = NO |
| 919 | 985 | # that contain images that are to be included in the documentation (see the |
| 920 | 986 | # \image command). |
| 921 | 987 | |
| 922 | -IMAGE_PATH = | |
| 988 | +IMAGE_PATH = | |
| 923 | 989 | |
| 924 | 990 | # The INPUT_FILTER tag can be used to specify a program that doxygen should |
| 925 | 991 | # invoke to filter for each input file. Doxygen will invoke the filter program |
| ... | ... | @@ -940,7 +1006,7 @@ IMAGE_PATH = |
| 940 | 1006 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 941 | 1007 | # properly processed by doxygen. |
| 942 | 1008 | |
| 943 | -INPUT_FILTER = | |
| 1009 | +INPUT_FILTER = | |
| 944 | 1010 | |
| 945 | 1011 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
| 946 | 1012 | # basis. Doxygen will compare the file name with each pattern and apply the |
| ... | ... | @@ -953,7 +1019,7 @@ INPUT_FILTER = |
| 953 | 1019 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 954 | 1020 | # properly processed by doxygen. |
| 955 | 1021 | |
| 956 | -FILTER_PATTERNS = | |
| 1022 | +FILTER_PATTERNS = | |
| 957 | 1023 | |
| 958 | 1024 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
| 959 | 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 | 1034 | # *.ext= (so without naming a filter). |
| 969 | 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 | 1039 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that |
| 974 | 1040 | # is part of the input, its contents will be placed on the main page |
| ... | ... | @@ -1004,7 +1070,7 @@ INLINE_SOURCES = NO |
| 1004 | 1070 | STRIP_CODE_COMMENTS = YES |
| 1005 | 1071 | |
| 1006 | 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 | 1074 | # The default value is: NO. |
| 1009 | 1075 | |
| 1010 | 1076 | REFERENCED_BY_RELATION = NO |
| ... | ... | @@ -1036,12 +1102,12 @@ SOURCE_TOOLTIPS = YES |
| 1036 | 1102 | # If the USE_HTAGS tag is set to YES then the references to source code will |
| 1037 | 1103 | # point to the HTML generated by the htags(1) tool instead of doxygen built-in |
| 1038 | 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 | 1106 | # 4.8.6 or higher. |
| 1041 | 1107 | # |
| 1042 | 1108 | # To use it do the following: |
| 1043 | 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 | 1111 | # - Make sure the INPUT points to the root of the source tree |
| 1046 | 1112 | # - Run doxygen as normal |
| 1047 | 1113 | # |
| ... | ... | @@ -1069,7 +1135,7 @@ VERBATIM_HEADERS = YES |
| 1069 | 1135 | # rich C++ code for which doxygen's built-in parser lacks the necessary type |
| 1070 | 1136 | # information. |
| 1071 | 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 | 1139 | # The default value is: NO. |
| 1074 | 1140 | |
| 1075 | 1141 | CLANG_ASSISTED_PARSING = NO |
| ... | ... | @@ -1080,7 +1146,20 @@ CLANG_ASSISTED_PARSING = NO |
| 1080 | 1146 | # specified with INPUT and INCLUDE_PATH. |
| 1081 | 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 | 1165 | # Configuration options related to the alphabetical class index |
| ... | ... | @@ -1106,7 +1185,7 @@ COLS_IN_ALPHA_INDEX = 5 |
| 1106 | 1185 | # while generating the index headers. |
| 1107 | 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 | 1191 | # Configuration options related to the HTML output |
| ... | ... | @@ -1150,7 +1229,7 @@ HTML_FILE_EXTENSION = .html |
| 1150 | 1229 | # of the possible markers and block names see the documentation. |
| 1151 | 1230 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1152 | 1231 | |
| 1153 | -HTML_HEADER = | |
| 1232 | +HTML_HEADER = | |
| 1154 | 1233 | |
| 1155 | 1234 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each |
| 1156 | 1235 | # generated HTML page. If the tag is left blank doxygen will generate a standard |
| ... | ... | @@ -1160,7 +1239,7 @@ HTML_HEADER = |
| 1160 | 1239 | # that doxygen normally uses. |
| 1161 | 1240 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1162 | 1241 | |
| 1163 | -HTML_FOOTER = | |
| 1242 | +HTML_FOOTER = | |
| 1164 | 1243 | |
| 1165 | 1244 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style |
| 1166 | 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 | 1251 | # obsolete. |
| 1173 | 1252 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1174 | 1253 | |
| 1175 | -HTML_STYLESHEET = | |
| 1254 | +HTML_STYLESHEET = | |
| 1176 | 1255 | |
| 1177 | 1256 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1178 | 1257 | # cascading style sheets that are included after the standard style sheets |
| ... | ... | @@ -1185,7 +1264,7 @@ HTML_STYLESHEET = |
| 1185 | 1264 | # list). For an example see the documentation. |
| 1186 | 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 | 1269 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1191 | 1270 | # other source files which should be copied to the HTML output directory. Note |
| ... | ... | @@ -1195,12 +1274,12 @@ HTML_EXTRA_STYLESHEET = |
| 1195 | 1274 | # files will be copied as-is; there are no commands or markers available. |
| 1196 | 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 | 1279 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen |
| 1201 | 1280 | # will adjust the colors in the style sheet and background images according to |
| 1202 | 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 | 1283 | # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 |
| 1205 | 1284 | # purple, and 360 is red again. |
| 1206 | 1285 | # Minimum value: 0, maximum value: 359, default value: 220. |
| ... | ... | @@ -1236,13 +1315,24 @@ HTML_COLORSTYLE_GAMMA = 80 |
| 1236 | 1315 | |
| 1237 | 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 | 1329 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML |
| 1240 | 1330 | # documentation will contain sections that can be hidden and shown after the |
| 1241 | 1331 | # page has loaded. |
| 1242 | 1332 | # The default value is: NO. |
| 1243 | 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 | 1337 | # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries |
| 1248 | 1338 | # shown in the various tree structured indices initially; the user can expand |
| ... | ... | @@ -1259,13 +1349,13 @@ HTML_INDEX_NUM_ENTRIES = 100 |
| 1259 | 1349 | |
| 1260 | 1350 | # If the GENERATE_DOCSET tag is set to YES, additional index files will be |
| 1261 | 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 | 1354 | # Makefile in the HTML output directory. Running make will produce the docset in |
| 1265 | 1355 | # that directory and running make install will install the docset in |
| 1266 | 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 | 1359 | # The default value is: NO. |
| 1270 | 1360 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1271 | 1361 | |
| ... | ... | @@ -1304,7 +1394,7 @@ DOCSET_PUBLISHER_NAME = Publisher |
| 1304 | 1394 | # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three |
| 1305 | 1395 | # additional HTML index files: index.hhp, index.hhc, and index.hhk. The |
| 1306 | 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 | 1398 | # Windows. |
| 1309 | 1399 | # |
| 1310 | 1400 | # The HTML Help Workshop contains a compiler that can convert all HTML output |
| ... | ... | @@ -1324,7 +1414,7 @@ GENERATE_HTMLHELP = NO |
| 1324 | 1414 | # written to the html output directory. |
| 1325 | 1415 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1326 | 1416 | |
| 1327 | -CHM_FILE = | |
| 1417 | +CHM_FILE = | |
| 1328 | 1418 | |
| 1329 | 1419 | # The HHC_LOCATION tag can be used to specify the location (absolute path |
| 1330 | 1420 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, |
| ... | ... | @@ -1332,10 +1422,10 @@ CHM_FILE = |
| 1332 | 1422 | # The file has to be specified with full path. |
| 1333 | 1423 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1334 | 1424 | |
| 1335 | -HHC_LOCATION = | |
| 1425 | +HHC_LOCATION = | |
| 1336 | 1426 | |
| 1337 | 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 | 1429 | # The default value is: NO. |
| 1340 | 1430 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1341 | 1431 | |
| ... | ... | @@ -1345,7 +1435,7 @@ GENERATE_CHI = NO |
| 1345 | 1435 | # and project file content. |
| 1346 | 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 | 1440 | # The BINARY_TOC flag controls whether a binary table of contents is generated |
| 1351 | 1441 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it |
| ... | ... | @@ -1376,11 +1466,11 @@ GENERATE_QHP = NO |
| 1376 | 1466 | # the HTML output folder. |
| 1377 | 1467 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1378 | 1468 | |
| 1379 | -QCH_FILE = | |
| 1469 | +QCH_FILE = | |
| 1380 | 1470 | |
| 1381 | 1471 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help |
| 1382 | 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 | 1474 | # The default value is: org.doxygen.Project. |
| 1385 | 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 | 1478 | |
| 1389 | 1479 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt |
| 1390 | 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 | 1482 | # folders). |
| 1393 | 1483 | # The default value is: doc. |
| 1394 | 1484 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| ... | ... | @@ -1397,33 +1487,33 @@ QHP_VIRTUAL_FOLDER = doc |
| 1397 | 1487 | |
| 1398 | 1488 | # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom |
| 1399 | 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 | 1491 | # filters). |
| 1402 | 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 | 1496 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the |
| 1407 | 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 | 1499 | # filters). |
| 1410 | 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 | 1504 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this |
| 1415 | 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 | 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 | 1511 | # The QHG_LOCATION tag can be used to specify the location of Qt's |
| 1422 | 1512 | # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the |
| 1423 | 1513 | # generated .qhp file. |
| 1424 | 1514 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1425 | 1515 | |
| 1426 | -QHG_LOCATION = | |
| 1516 | +QHG_LOCATION = | |
| 1427 | 1517 | |
| 1428 | 1518 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be |
| 1429 | 1519 | # generated, together with the HTML files, they form an Eclipse help plugin. To |
| ... | ... | @@ -1497,6 +1587,17 @@ TREEVIEW_WIDTH = 250 |
| 1497 | 1587 | |
| 1498 | 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 | 1601 | # Use this tag to change the font size of LaTeX formulas included as images in |
| 1501 | 1602 | # the HTML documentation. When you change the font size after a successful |
| 1502 | 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 | 1607 | |
| 1507 | 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 | 1611 | # generated for formulas are transparent PNGs. Transparent PNGs are not |
| 1511 | 1612 | # supported properly for IE 6.0, but are supported on all modern browsers. |
| 1512 | 1613 | # |
| ... | ... | @@ -1517,8 +1618,14 @@ FORMULA_FONTSIZE = 10 |
| 1517 | 1618 | |
| 1518 | 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 | 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 | 1629 | # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX |
| 1523 | 1630 | # installed or if you want to formulas look prettier in the HTML output. When |
| 1524 | 1631 | # enabled you may also need to install MathJax separately and configure the path |
| ... | ... | @@ -1545,8 +1652,8 @@ MATHJAX_FORMAT = HTML-CSS |
| 1545 | 1652 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax |
| 1546 | 1653 | # Content Delivery Network so you can quickly see the result without installing |
| 1547 | 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 | 1657 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1551 | 1658 | |
| 1552 | 1659 | MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest |
| ... | ... | @@ -1556,7 +1663,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest |
| 1556 | 1663 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols |
| 1557 | 1664 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1558 | 1665 | |
| 1559 | -MATHJAX_EXTENSIONS = | |
| 1666 | +MATHJAX_EXTENSIONS = | |
| 1560 | 1667 | |
| 1561 | 1668 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces |
| 1562 | 1669 | # of code that will be used on startup of the MathJax code. See the MathJax site |
| ... | ... | @@ -1564,7 +1671,7 @@ MATHJAX_EXTENSIONS = |
| 1564 | 1671 | # example see the documentation. |
| 1565 | 1672 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1566 | 1673 | |
| 1567 | -MATHJAX_CODEFILE = | |
| 1674 | +MATHJAX_CODEFILE = | |
| 1568 | 1675 | |
| 1569 | 1676 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for |
| 1570 | 1677 | # the HTML output. The underlying search engine uses javascript and DHTML and |
| ... | ... | @@ -1588,7 +1695,7 @@ MATHJAX_CODEFILE = |
| 1588 | 1695 | SEARCHENGINE = YES |
| 1589 | 1696 | |
| 1590 | 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 | 1699 | # are two flavors of web server based searching depending on the EXTERNAL_SEARCH |
| 1593 | 1700 | # setting. When disabled, doxygen will generate a PHP script for searching and |
| 1594 | 1701 | # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing |
| ... | ... | @@ -1607,7 +1714,7 @@ SERVER_BASED_SEARCH = NO |
| 1607 | 1714 | # |
| 1608 | 1715 | # Doxygen ships with an example indexer (doxyindexer) and search engine |
| 1609 | 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 | 1719 | # See the section "External Indexing and Searching" for details. |
| 1613 | 1720 | # The default value is: NO. |
| ... | ... | @@ -1620,11 +1727,11 @@ EXTERNAL_SEARCH = NO |
| 1620 | 1727 | # |
| 1621 | 1728 | # Doxygen ships with an example indexer (doxyindexer) and search engine |
| 1622 | 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 | 1731 | # Searching" for details. |
| 1625 | 1732 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1626 | 1733 | |
| 1627 | -SEARCHENGINE_URL = | |
| 1734 | +SEARCHENGINE_URL = | |
| 1628 | 1735 | |
| 1629 | 1736 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed |
| 1630 | 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 | 1747 | # projects and redirect the results back to the right project. |
| 1641 | 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 | 1752 | # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen |
| 1646 | 1753 | # projects other than the one defined by this configuration file, but that are |
| ... | ... | @@ -1650,7 +1757,7 @@ EXTERNAL_SEARCH_ID = |
| 1650 | 1757 | # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... |
| 1651 | 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 | 1763 | # Configuration options related to the LaTeX output |
| ... | ... | @@ -1672,21 +1779,35 @@ LATEX_OUTPUT = latex |
| 1672 | 1779 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be |
| 1673 | 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 | 1787 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1680 | 1788 | |
| 1681 | 1789 | LATEX_CMD_NAME = latex |
| 1682 | 1790 | |
| 1683 | 1791 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate |
| 1684 | 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 | 1796 | # The default file is: makeindex. |
| 1686 | 1797 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1687 | 1798 | |
| 1688 | 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 | 1811 | # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX |
| 1691 | 1812 | # documents. This may be useful for small projects and may help to save some |
| 1692 | 1813 | # trees in general. |
| ... | ... | @@ -1714,7 +1835,7 @@ PAPER_TYPE = a4 |
| 1714 | 1835 | # If left blank no extra packages will be included. |
| 1715 | 1836 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1716 | 1837 | |
| 1717 | -EXTRA_PACKAGES = | |
| 1838 | +EXTRA_PACKAGES = | |
| 1718 | 1839 | |
| 1719 | 1840 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the |
| 1720 | 1841 | # generated LaTeX document. The header should contain everything until the first |
| ... | ... | @@ -1730,7 +1851,7 @@ EXTRA_PACKAGES = |
| 1730 | 1851 | # to HTML_HEADER. |
| 1731 | 1852 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1732 | 1853 | |
| 1733 | -LATEX_HEADER = | |
| 1854 | +LATEX_HEADER = | |
| 1734 | 1855 | |
| 1735 | 1856 | # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the |
| 1736 | 1857 | # generated LaTeX document. The footer should contain everything after the last |
| ... | ... | @@ -1741,7 +1862,7 @@ LATEX_HEADER = |
| 1741 | 1862 | # Note: Only use a user-defined footer if you know what you are doing! |
| 1742 | 1863 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1743 | 1864 | |
| 1744 | -LATEX_FOOTER = | |
| 1865 | +LATEX_FOOTER = | |
| 1745 | 1866 | |
| 1746 | 1867 | # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1747 | 1868 | # LaTeX style sheets that are included after the standard style sheets created |
| ... | ... | @@ -1752,7 +1873,7 @@ LATEX_FOOTER = |
| 1752 | 1873 | # list). |
| 1753 | 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 | 1878 | # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1758 | 1879 | # other source files which should be copied to the LATEX_OUTPUT output |
| ... | ... | @@ -1760,7 +1881,7 @@ LATEX_EXTRA_STYLESHEET = |
| 1760 | 1881 | # markers available. |
| 1761 | 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 | 1886 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is |
| 1766 | 1887 | # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will |
| ... | ... | @@ -1771,9 +1892,11 @@ LATEX_EXTRA_FILES = |
| 1771 | 1892 | |
| 1772 | 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 | 1900 | # The default value is: YES. |
| 1778 | 1901 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1779 | 1902 | |
| ... | ... | @@ -1807,7 +1930,7 @@ LATEX_SOURCE_CODE = NO |
| 1807 | 1930 | |
| 1808 | 1931 | # The LATEX_BIB_STYLE tag can be used to specify the style to use for the |
| 1809 | 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 | 1934 | # The default value is: plain. |
| 1812 | 1935 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1813 | 1936 | |
| ... | ... | @@ -1821,6 +1944,14 @@ LATEX_BIB_STYLE = plain |
| 1821 | 1944 | |
| 1822 | 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 | 1956 | # Configuration options related to the RTF output |
| 1826 | 1957 | #--------------------------------------------------------------------------- |
| ... | ... | @@ -1860,22 +1991,22 @@ COMPACT_RTF = NO |
| 1860 | 1991 | |
| 1861 | 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 | 1998 | # See also section "Doxygen usage" for information on how to generate the |
| 1868 | 1999 | # default style sheet that doxygen normally uses. |
| 1869 | 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 | 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 | 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 | 2011 | # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code |
| 1881 | 2012 | # with syntax highlighting in the RTF output. |
| ... | ... | @@ -1920,7 +2051,7 @@ MAN_EXTENSION = .3 |
| 1920 | 2051 | # MAN_EXTENSION with the initial . removed. |
| 1921 | 2052 | # This tag requires that the tag GENERATE_MAN is set to YES. |
| 1922 | 2053 | |
| 1923 | -MAN_SUBDIR = | |
| 2054 | +MAN_SUBDIR = | |
| 1924 | 2055 | |
| 1925 | 2056 | # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it |
| 1926 | 2057 | # will generate one additional man file for each entity documented in the real |
| ... | ... | @@ -1958,6 +2089,13 @@ XML_OUTPUT = xml |
| 1958 | 2089 | |
| 1959 | 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 | 2100 | # Configuration options related to the DOCBOOK output |
| 1963 | 2101 | #--------------------------------------------------------------------------- |
| ... | ... | @@ -1990,14 +2128,18 @@ DOCBOOK_PROGRAMLISTING = NO |
| 1990 | 2128 | #--------------------------------------------------------------------------- |
| 1991 | 2129 | |
| 1992 | 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 | 2134 | # The default value is: NO. |
| 1997 | 2135 | |
| 1998 | 2136 | GENERATE_AUTOGEN_DEF = NO |
| 1999 | 2137 | |
| 2000 | 2138 | #--------------------------------------------------------------------------- |
| 2139 | +# Configuration options related to Sqlite3 output | |
| 2140 | +#--------------------------------------------------------------------------- | |
| 2141 | + | |
| 2142 | +#--------------------------------------------------------------------------- | |
| 2001 | 2143 | # Configuration options related to the Perl module output |
| 2002 | 2144 | #--------------------------------------------------------------------------- |
| 2003 | 2145 | |
| ... | ... | @@ -2033,7 +2175,7 @@ PERLMOD_PRETTY = YES |
| 2033 | 2175 | # overwrite each other's variables. |
| 2034 | 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 | 2181 | # Configuration options related to the preprocessor |
| ... | ... | @@ -2074,7 +2216,7 @@ SEARCH_INCLUDES = YES |
| 2074 | 2216 | # preprocessor. |
| 2075 | 2217 | # This tag requires that the tag SEARCH_INCLUDES is set to YES. |
| 2076 | 2218 | |
| 2077 | -INCLUDE_PATH = | |
| 2219 | +INCLUDE_PATH = | |
| 2078 | 2220 | |
| 2079 | 2221 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
| 2080 | 2222 | # patterns (like *.h and *.hpp) to filter out the header-files in the |
| ... | ... | @@ -2082,7 +2224,7 @@ INCLUDE_PATH = |
| 2082 | 2224 | # used. |
| 2083 | 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 | 2229 | # The PREDEFINED tag can be used to specify one or more macro names that are |
| 2088 | 2230 | # defined before the preprocessor is started (similar to the -D option of e.g. |
| ... | ... | @@ -2092,7 +2234,7 @@ INCLUDE_FILE_PATTERNS = |
| 2092 | 2234 | # recursively expanded use the := operator instead of the = operator. |
| 2093 | 2235 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2094 | 2236 | |
| 2095 | -PREDEFINED = | |
| 2237 | +PREDEFINED = | |
| 2096 | 2238 | |
| 2097 | 2239 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this |
| 2098 | 2240 | # tag can be used to specify a list of macro names that should be expanded. The |
| ... | ... | @@ -2101,7 +2243,7 @@ PREDEFINED = |
| 2101 | 2243 | # definition found in the source code. |
| 2102 | 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 | 2248 | # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will |
| 2107 | 2249 | # remove all references to function-like macros that are alone on a line, have |
| ... | ... | @@ -2130,13 +2272,13 @@ SKIP_FUNCTION_MACROS = YES |
| 2130 | 2272 | # the path). If a tag file is not located in the directory in which doxygen is |
| 2131 | 2273 | # run, you must also specify the path to the tagfile here. |
| 2132 | 2274 | |
| 2133 | -TAGFILES = | |
| 2275 | +TAGFILES = | |
| 2134 | 2276 | |
| 2135 | 2277 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create a |
| 2136 | 2278 | # tag file that is based on the input files it reads. See section "Linking to |
| 2137 | 2279 | # external documentation" for more information about the usage of tag files. |
| 2138 | 2280 | |
| 2139 | -GENERATE_TAGFILE = | |
| 2281 | +GENERATE_TAGFILE = | |
| 2140 | 2282 | |
| 2141 | 2283 | # If the ALLEXTERNALS tag is set to YES, all external class will be listed in |
| 2142 | 2284 | # the class index. If set to NO, only the inherited external classes will be |
| ... | ... | @@ -2159,12 +2301,6 @@ EXTERNAL_GROUPS = YES |
| 2159 | 2301 | |
| 2160 | 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 | 2305 | # Configuration options related to the dot tool |
| 2170 | 2306 | #--------------------------------------------------------------------------- |
| ... | ... | @@ -2178,21 +2314,12 @@ PERL_PATH = /usr/bin/perl |
| 2178 | 2314 | |
| 2179 | 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 | 2317 | # You can include diagrams made with dia in doxygen documentation. Doxygen will |
| 2191 | 2318 | # then run dia to produce the diagram and insert it in the documentation. The |
| 2192 | 2319 | # DIA_PATH tag allows you to specify the directory where the dia binary resides. |
| 2193 | 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 | 2324 | # If set to YES the inheritance and collaboration graphs will hide inheritance |
| 2198 | 2325 | # and usage relations if the target is undocumented or is not a class. |
| ... | ... | @@ -2241,7 +2368,7 @@ DOT_FONTSIZE = 10 |
| 2241 | 2368 | # the path where dot can find it using this tag. |
| 2242 | 2369 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2243 | 2370 | |
| 2244 | -DOT_FONTPATH = | |
| 2371 | +DOT_FONTPATH = | |
| 2245 | 2372 | |
| 2246 | 2373 | # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for |
| 2247 | 2374 | # each documented class showing the direct and indirect inheritance relations. |
| ... | ... | @@ -2392,19 +2519,19 @@ DOT_PATH = /usr/local/bin |
| 2392 | 2519 | # command). |
| 2393 | 2520 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2394 | 2521 | |
| 2395 | -DOTFILE_DIRS = | |
| 2522 | +DOTFILE_DIRS = | |
| 2396 | 2523 | |
| 2397 | 2524 | # The MSCFILE_DIRS tag can be used to specify one or more directories that |
| 2398 | 2525 | # contain msc files that are included in the documentation (see the \mscfile |
| 2399 | 2526 | # command). |
| 2400 | 2527 | |
| 2401 | -MSCFILE_DIRS = | |
| 2528 | +MSCFILE_DIRS = | |
| 2402 | 2529 | |
| 2403 | 2530 | # The DIAFILE_DIRS tag can be used to specify one or more directories that |
| 2404 | 2531 | # contain dia files that are included in the documentation (see the \diafile |
| 2405 | 2532 | # command). |
| 2406 | 2533 | |
| 2407 | -DIAFILE_DIRS = | |
| 2534 | +DIAFILE_DIRS = | |
| 2408 | 2535 | |
| 2409 | 2536 | # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the |
| 2410 | 2537 | # path where java can find the plantuml.jar file. If left blank, it is assumed |
| ... | ... | @@ -2412,12 +2539,17 @@ DIAFILE_DIRS = |
| 2412 | 2539 | # generate a warning when it encounters a \startuml command in this case and |
| 2413 | 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 | 2549 | # When using plantuml, the specified paths are searched for files specified by |
| 2418 | 2550 | # the !include statement in a plantuml block. |
| 2419 | 2551 | |
| 2420 | -PLANTUML_INCLUDE_PATH = | |
| 2552 | +PLANTUML_INCLUDE_PATH = | |
| 2421 | 2553 | |
| 2422 | 2554 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes |
| 2423 | 2555 | # that will be shown in the graph. If the number of nodes in a graph becomes | ... | ... |
doc/markdown/Build.md
| 1 | 1 | # Build and install {#build} |
| 2 | 2 | |
| 3 | +[TOC] | |
| 4 | + | |
| 3 | 5 | # Basic installation {#basic-install} |
| 4 | 6 | |
| 5 | 7 | ## Clone from github {#clone} |
| ... | ... | @@ -74,11 +76,11 @@ make coveragetest |
| 74 | 76 | ``` |
| 75 | 77 | |
| 76 | 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 | 81 | ```{.sh} |
| 80 | 82 | mkdir build |
| 81 | 83 | cd build |
| 82 | -cmake .. -Dhueplusplus_SAMPLES=ON | |
| 84 | +cmake .. -Dhueplusplus_EXAMPLES=ON | |
| 83 | 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 | 6 | |
| 7 | 7 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. |
| 8 | 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 | 12 | ## Authenticate Bridges |
| 23 | 13 | If you have found the Bridge you were looking for, you can then move on with the authentication process. |
| 24 | 14 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), |
| 25 | 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 | 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 | 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 | 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 | 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 | 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 | 37 | ## More information |
| 59 | -- [Transactions](@ref transactions) | |
| 60 | 38 | \ No newline at end of file |
| 39 | +- [Transactions](@ref transactions) | |
| 40 | +- [Shared state cache](@ref shared-state) | ... | ... |
doc/markdown/Mainpage.md
| 1 | 1 | # Documentation for the hueplusplus library |
| 2 | 2 | A simple and easy to use library for Philips Hue Lights. |
| 3 | 3 | |
| 4 | +[TOC] | |
| 5 | + | |
| 4 | 6 | ## Features |
| 5 | 7 | * find bridges with SSDP or set an ip manually |
| 6 | 8 | * all common light functions (brightness, color, temperature) |
| ... | ... | @@ -17,85 +19,57 @@ A simple and easy to use library for Philips Hue Lights. |
| 17 | 19 | * Espressif ESP32 SDK & Arduino |
| 18 | 20 | |
| 19 | 21 | ## How to use |
| 20 | -- [Getting Started](@ref getting-started) | |
| 22 | +[Getting started](@ref getting-started) | |
| 21 | 23 | ### Searching for Bridges |
| 22 | 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 | 26 | Then create a [BridgeFinder](@ref hueplusplus::BridgeFinder) object with the handler. |
| 25 | 27 | The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. |
| 26 | 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 | 33 | ### Authenticate Bridges |
| 41 | 34 | If you have found the Bridge you were looking for, you can then move on with the authentication process. |
| 42 | 35 | To get a new username from the Bridge (for now) you simply call [getBridge(bridges[\<index\>])](@ref hueplusplus::BridgeFinder::getBridge), |
| 43 | 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 | 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 | 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 | 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 | 47 | ### Controlling lights |
| 61 | 48 | If you have your Bridge all set up, you can now control its lights. |
| 62 | 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 | 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 | 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 | 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 | 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 | 60 | But keep in mind that some light types do not have all functions available. So you might call a |
| 83 | 61 | specific function, but nothing will happen. For that you might want to check what type |
| 84 | 62 | of a light you are controlling. For that you can call the function [getColorType()](@ref hueplusplus::Light::getColorType()), which will return |
| 85 | 63 | a ColorType. |
| 86 | -```{.cpp} | |
| 87 | -hueplusplus::ColorType type1 = light1.getColorType(); | |
| 88 | -``` | |
| 64 | +\snippet Snippets.cpp light-4 | |
| 65 | + | |
| 89 | 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 | 69 | These will either return true(light has specified function) or false(light lacks specified function). |
| 96 | 70 | |
| 97 | 71 | ## Build and install |
| 98 | -- [Build and install guide](@ref build) | |
| 72 | +[Build and install guide](@ref build) | |
| 99 | 73 | |
| 100 | 74 | ### Basic installation |
| 101 | 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 | 129 | ```bash |
| 156 | 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 | 1 | # Sensors {#sensors} |
| 2 | 2 | |
| 3 | +[TOC] | |
| 4 | + | |
| 3 | 5 | ## Sensor support |
| 4 | 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 | 8 | Other sensors can be used with the generic [Sensor](@ref hueplusplus::Sensor) class. |
| 6 | 9 | |
| 7 | 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 | 12 | The classes in the [sensors](@ref hueplusplus::sensors) namespace provide the documented |
| 10 | 13 | functionality. The type can be specified when accessing the sensor. When it does not match, |
| 11 | 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 | 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 | 20 | ### Working with an unknown sensor |
| 22 | 21 | When the sensor type is not known, use the generic sensor class. In this case, some attributes might not |
| 23 | 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 | 25 | It is easiest to compare the sensor type to the existing ones (`typeStr` on the specific sensor classes) |
| 38 | 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 | 29 | ## ZLL sensors vs. CLIP sensors |
| 49 | 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 | 41 | These functions return a helper class with methods for the [possible operators](@ref hueplusplus::Condition::Operator) valid for the state. |
| 61 | 42 | |
| 62 | 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 | 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 | 47 | \ No newline at end of file |
| 48 | +constructor with a proper address to the sensor state. | ... | ... |
doc/markdown/Shared_State.md
| 1 | 1 | # Shared state cache {#shared-state} |
| 2 | 2 | |
| 3 | +[TOC] | |
| 4 | + | |
| 3 | 5 | ## What shared state means |
| 4 | 6 | There are two ways in which the API state (internally JSON) can be handled: |
| 5 | 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 | 10 | ### Advantages of shared state |
| 9 | 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 | 25 | Shared state can be configured when the bridge is first constructed, either in [getBridge()](@ref hueplusplus::BridgeFinder::getBridge) |
| 24 | 26 | or in the [constructor](@ref hueplusplus::Bridge::Bridge). Set `sharedState` to `true` to keep all resources |
| 25 | 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 | 31 | ## Shared state and refreshing |
| 34 | 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 | 36 | |
| 39 | 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 | 40 | [isOn()](@ref hueplusplus::Light::isOn) is a non-const method (in this case). That means it will refresh the |
| 49 | 41 | state if it is outdated. The default refresh time is inherited from `bridge.lights()`, so it is 30 seconds. |
| 50 | 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 | 1 | # Transactions {#transactions} |
| 2 | 2 | |
| 3 | +[TOC] | |
| 4 | + | |
| 3 | 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 | 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 | 10 | The request is reduced to only the variables that need to be changed based on the current state. |
| 11 | 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 | 16 | |
| 17 | 17 | ### Advanced usage |
| 18 | 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 | 21 | In this case, it is especially important that the light and the state of the light __MUST NOT__ invalidate. That means |
| 28 | 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 | 28 | The same principles of transactions for lights also apply for groups. The main difference is that |
| 35 | 29 | for groups, there are no checks of the current state. Even if all lights in the group are already on, |
| 36 | 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 | 34 | ## Creating Actions |
| 44 | 35 | In a [Schedule](@ref hueplusplus::Schedule) or [Rule](@ref hueplusplus::Rule), |
| 45 | 36 | the bridge can set the state of lights and groups. To configure this, a transaction |
| 46 | 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 | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | 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 | 46 | const std::string macAddress = ""; |
| 46 | 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 | 50 | hue::Bridge connectToBridge() |
| 50 | 51 | { |
| 51 | 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 | 15 | target_link_libraries(username_config hueplusplusstatic) |
| 16 | 16 | |
| 17 | 17 | add_custom_target(hueplusplus_examples) |
| 18 | -add_dependencies(hueplusplus_examples bridge_setup lights_off) | |
| 19 | 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 | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | 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 | 25 | #include <thread> |
| ... | ... | @@ -43,7 +44,7 @@ namespace hue = hueplusplus; |
| 43 | 44 | const std::string macAddress = ""; |
| 44 | 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 | 48 | hue::Bridge connectToBridge() |
| 48 | 49 | { |
| 49 | 50 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); |
| ... | ... | @@ -79,9 +80,8 @@ hue::Bridge connectToBridge() |
| 79 | 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 | 85 | void lightsOff(hue::Bridge& hue) |
| 86 | 86 | { |
| 87 | 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 | 200 | \ No newline at end of file | ... | ... |
examples/UsernameConfig.cpp
| ... | ... | @@ -18,7 +18,8 @@ |
| 18 | 18 | You should have received a copy of the GNU Lesser General Public License |
| 19 | 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 | 25 | #include <algorithm> |
| ... | ... | @@ -42,9 +43,9 @@ using SystemHttpHandler = hueplusplus::LinHttpHandler; |
| 42 | 43 | |
| 43 | 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 | 49 | nlohmann::json readConfigFile(const std::string& filename) |
| 49 | 50 | { |
| 50 | 51 | std::ifstream stream(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 | 71 | void saveConfigFile(const std::string& filename, const nlohmann::json& config) |
| 71 | 72 | { |
| 72 | 73 | std::ofstream stream(filename); |
| 73 | 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 | 82 | hue::Bridge connectToBridge(const std::string& username, const std::string& macAddress) |
| 82 | 83 | { |
| 83 | 84 | hue::BridgeFinder finder(std::make_shared<SystemHttpHandler>()); |
| ... | ... | @@ -113,12 +114,12 @@ hue::Bridge connectToBridge(const std::string& username, const std::string& macA |
| 113 | 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 | 123 | int main(int argc, char** argv) |
| 123 | 124 | { |
| 124 | 125 | ... | ... |