Commit b9111cebc89acd52ebf8176a71eb4409bfeb1ac4

Authored by Jojo-1000
Committed by Moritz Wirger
1 parent 844af4db

Fix doxygen generation, add main page.

.gitignore
... ... @@ -31,6 +31,8 @@
31 31 # build directory
32 32 /build*
33 33  
  34 +# Generated documentation
  35 +/doc/html
34 36  
35 37 # General
36 38 .DS_Store
... ...
Doxyfile
1   -# Doxyfile 1.8.13
  1 +# Doxyfile 1.8.11
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.
... ... @@ -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 =
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
... ... @@ -162,7 +162,7 @@ FULL_PATH_NAMES = YES
162 162 # will be relative from the directory where doxygen is started.
163 163 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
164 164  
165   -STRIP_FROM_PATH =
  165 +STRIP_FROM_PATH =
166 166  
167 167 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
168 168 # path mentioned in the documentation of a class, which tells the reader which
... ... @@ -171,7 +171,7 @@ STRIP_FROM_PATH =
171 171 # specify the list of include paths that are normally passed to the compiler
172 172 # using the -I flag.
173 173  
174   -STRIP_FROM_INC_PATH =
  174 +STRIP_FROM_INC_PATH =
175 175  
176 176 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
177 177 # less readable) file names. This can be useful is your file systems doesn't
... ... @@ -238,13 +238,13 @@ TAB_SIZE = 4
238 238 # "Side Effects:". You can put \n's in the value part of an alias to insert
239 239 # newlines.
240 240  
241   -ALIASES =
  241 +ALIASES =
242 242  
243 243 # This tag can be used to specify a number of word-keyword mappings (TCL only).
244 244 # A mapping has the form "name=value". For example adding "class=itcl::class"
245 245 # will allow you to use the command class in the itcl::class meaning.
246 246  
247   -TCL_SUBST =
  247 +TCL_SUBST =
248 248  
249 249 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
250 250 # only. Doxygen will then generate output that is more tailored for C. For
... ... @@ -291,7 +291,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
291 291 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
292 292 # the files are not read by doxygen.
293 293  
294   -EXTENSION_MAPPING =
  294 +EXTENSION_MAPPING =
295 295  
296 296 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
297 297 # according to the Markdown format, which allows for more readable
... ... @@ -303,15 +303,6 @@ EXTENSION_MAPPING =
303 303  
304 304 MARKDOWN_SUPPORT = YES
305 305  
306   -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
307   -# to that level are automatically included in the table of contents, even if
308   -# they do not have an id attribute.
309   -# Note: This feature currently applies only to Markdown headings.
310   -# Minimum value: 0, maximum value: 99, default value: 0.
311   -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
312   -
313   -TOC_INCLUDE_HEADINGS = 0
314   -
315 306 # When enabled doxygen tries to link words that correspond to documented
316 307 # classes, or namespaces to their corresponding documentation. Such a link can
317 308 # be prevented in individual cases by putting a % sign in front of the word or
... ... @@ -648,7 +639,7 @@ GENERATE_DEPRECATEDLIST= YES
648 639 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
649 640 # ... \endcond blocks.
650 641  
651   -ENABLED_SECTIONS =
  642 +ENABLED_SECTIONS =
652 643  
653 644 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
654 645 # initial value of a variable or macro / define can have for it to appear in the
... ... @@ -690,7 +681,7 @@ SHOW_NAMESPACES = YES
690 681 # by doxygen. Whatever the program writes to standard output is used as the file
691 682 # version. For an example see the documentation.
692 683  
693   -FILE_VERSION_FILTER =
  684 +FILE_VERSION_FILTER =
694 685  
695 686 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
696 687 # by doxygen. The layout file controls the global structure of the generated
... ... @@ -703,7 +694,7 @@ FILE_VERSION_FILTER =
703 694 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
704 695 # tag is left empty.
705 696  
706   -LAYOUT_FILE =
  697 +LAYOUT_FILE =
707 698  
708 699 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
709 700 # the reference definitions. This must be a list of .bib files. The .bib
... ... @@ -713,7 +704,7 @@ LAYOUT_FILE =
713 704 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
714 705 # search path. See also \cite for info how to create references.
715 706  
716   -CITE_BIB_FILES =
  707 +CITE_BIB_FILES =
717 708  
718 709 #---------------------------------------------------------------------------
719 710 # Configuration options related to warning and progress messages
... ... @@ -778,7 +769,7 @@ WARN_FORMAT = &quot;$file:$line: $text&quot;
778 769 # messages should be written. If left blank the output is written to standard
779 770 # error (stderr).
780 771  
781   -WARN_LOGFILE =
  772 +WARN_LOGFILE =
782 773  
783 774 #---------------------------------------------------------------------------
784 775 # Configuration options related to the input files
... ... @@ -790,7 +781,9 @@ WARN_LOGFILE =
790 781 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
791 782 # Note: If this tag is empty the current directory is searched.
792 783  
793   -INPUT = hueplusplus
  784 +INPUT = include/hueplusplus \
  785 + src \
  786 + doc/markdown
794 787  
795 788 # This tag can be used to specify the character encoding of the source files
796 789 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
... ... @@ -812,8 +805,8 @@ INPUT_ENCODING = UTF-8
812 805 # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
813 806 # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
814 807 # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
815   -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
816   -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
  808 +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
  809 +# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
817 810  
818 811 FILE_PATTERNS = *.c \
819 812 *.cc \
... ... @@ -873,8 +866,7 @@ RECURSIVE = YES
873 866 # Note that relative paths are relative to the directory from which doxygen is
874 867 # run.
875 868  
876   -EXCLUDE = hueplusplus/include/json \
877   - hueplusplus/test \
  869 +EXCLUDE =
878 870  
879 871 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
880 872 # directories that are symbolic links (a Unix file system feature) are excluded
... ... @@ -890,7 +882,7 @@ EXCLUDE_SYMLINKS = NO
890 882 # Note that the wildcards are matched against the file with absolute path, so to
891 883 # exclude all test directories for example use the pattern */test/*
892 884  
893   -EXCLUDE_PATTERNS =
  885 +EXCLUDE_PATTERNS =
894 886  
895 887 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
896 888 # (namespaces, classes, functions, etc.) that should be excluded from the
... ... @@ -907,7 +899,7 @@ EXCLUDE_SYMBOLS = *::detail
907 899 # that contain example code fragments that are included (see the \include
908 900 # command).
909 901  
910   -EXAMPLE_PATH =
  902 +EXAMPLE_PATH =
911 903  
912 904 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
913 905 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
... ... @@ -927,7 +919,7 @@ EXAMPLE_RECURSIVE = NO
927 919 # that contain images that are to be included in the documentation (see the
928 920 # \image command).
929 921  
930   -IMAGE_PATH =
  922 +IMAGE_PATH =
931 923  
932 924 # The INPUT_FILTER tag can be used to specify a program that doxygen should
933 925 # invoke to filter for each input file. Doxygen will invoke the filter program
... ... @@ -948,7 +940,7 @@ IMAGE_PATH =
948 940 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
949 941 # properly processed by doxygen.
950 942  
951   -INPUT_FILTER =
  943 +INPUT_FILTER =
952 944  
953 945 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
954 946 # basis. Doxygen will compare the file name with each pattern and apply the
... ... @@ -961,7 +953,7 @@ INPUT_FILTER =
961 953 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
962 954 # properly processed by doxygen.
963 955  
964   -FILTER_PATTERNS =
  956 +FILTER_PATTERNS =
965 957  
966 958 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
967 959 # INPUT_FILTER) will also be used to filter the input files that are used for
... ... @@ -976,14 +968,14 @@ FILTER_SOURCE_FILES = NO
976 968 # *.ext= (so without naming a filter).
977 969 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
978 970  
979   -FILTER_SOURCE_PATTERNS =
  971 +FILTER_SOURCE_PATTERNS =
980 972  
981 973 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
982 974 # is part of the input, its contents will be placed on the main page
983 975 # (index.html). This can be useful if you have a project on for instance GitHub
984 976 # and want to reuse the introduction page also for the doxygen output.
985 977  
986   -USE_MDFILE_AS_MAINPAGE =
  978 +USE_MDFILE_AS_MAINPAGE = Mainpage.md
987 979  
988 980 #---------------------------------------------------------------------------
989 981 # Configuration options related to source browsing
... ... @@ -1088,7 +1080,7 @@ CLANG_ASSISTED_PARSING = NO
1088 1080 # specified with INPUT and INCLUDE_PATH.
1089 1081 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
1090 1082  
1091   -CLANG_OPTIONS =
  1083 +CLANG_OPTIONS =
1092 1084  
1093 1085 #---------------------------------------------------------------------------
1094 1086 # Configuration options related to the alphabetical class index
... ... @@ -1114,7 +1106,7 @@ COLS_IN_ALPHA_INDEX = 5
1114 1106 # while generating the index headers.
1115 1107 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1116 1108  
1117   -IGNORE_PREFIX =
  1109 +IGNORE_PREFIX =
1118 1110  
1119 1111 #---------------------------------------------------------------------------
1120 1112 # Configuration options related to the HTML output
... ... @@ -1158,7 +1150,7 @@ HTML_FILE_EXTENSION = .html
1158 1150 # of the possible markers and block names see the documentation.
1159 1151 # This tag requires that the tag GENERATE_HTML is set to YES.
1160 1152  
1161   -HTML_HEADER =
  1153 +HTML_HEADER =
1162 1154  
1163 1155 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
1164 1156 # generated HTML page. If the tag is left blank doxygen will generate a standard
... ... @@ -1168,7 +1160,7 @@ HTML_HEADER =
1168 1160 # that doxygen normally uses.
1169 1161 # This tag requires that the tag GENERATE_HTML is set to YES.
1170 1162  
1171   -HTML_FOOTER =
  1163 +HTML_FOOTER =
1172 1164  
1173 1165 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
1174 1166 # sheet that is used by each HTML page. It can be used to fine-tune the look of
... ... @@ -1180,7 +1172,7 @@ HTML_FOOTER =
1180 1172 # obsolete.
1181 1173 # This tag requires that the tag GENERATE_HTML is set to YES.
1182 1174  
1183   -HTML_STYLESHEET =
  1175 +HTML_STYLESHEET =
1184 1176  
1185 1177 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1186 1178 # cascading style sheets that are included after the standard style sheets
... ... @@ -1193,7 +1185,7 @@ HTML_STYLESHEET =
1193 1185 # list). For an example see the documentation.
1194 1186 # This tag requires that the tag GENERATE_HTML is set to YES.
1195 1187  
1196   -HTML_EXTRA_STYLESHEET =
  1188 +HTML_EXTRA_STYLESHEET =
1197 1189  
1198 1190 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1199 1191 # other source files which should be copied to the HTML output directory. Note
... ... @@ -1203,7 +1195,7 @@ HTML_EXTRA_STYLESHEET =
1203 1195 # files will be copied as-is; there are no commands or markers available.
1204 1196 # This tag requires that the tag GENERATE_HTML is set to YES.
1205 1197  
1206   -HTML_EXTRA_FILES =
  1198 +HTML_EXTRA_FILES =
1207 1199  
1208 1200 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
1209 1201 # will adjust the colors in the style sheet and background images according to
... ... @@ -1332,7 +1324,7 @@ GENERATE_HTMLHELP = NO
1332 1324 # written to the html output directory.
1333 1325 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1334 1326  
1335   -CHM_FILE =
  1327 +CHM_FILE =
1336 1328  
1337 1329 # The HHC_LOCATION tag can be used to specify the location (absolute path
1338 1330 # including file name) of the HTML help compiler (hhc.exe). If non-empty,
... ... @@ -1340,7 +1332,7 @@ CHM_FILE =
1340 1332 # The file has to be specified with full path.
1341 1333 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1342 1334  
1343   -HHC_LOCATION =
  1335 +HHC_LOCATION =
1344 1336  
1345 1337 # The GENERATE_CHI flag controls if a separate .chi index file is generated
1346 1338 # (YES) or that it should be included in the master .chm file (NO).
... ... @@ -1353,7 +1345,7 @@ GENERATE_CHI = NO
1353 1345 # and project file content.
1354 1346 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1355 1347  
1356   -CHM_INDEX_ENCODING =
  1348 +CHM_INDEX_ENCODING =
1357 1349  
1358 1350 # The BINARY_TOC flag controls whether a binary table of contents is generated
1359 1351 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
... ... @@ -1384,7 +1376,7 @@ GENERATE_QHP = NO
1384 1376 # the HTML output folder.
1385 1377 # This tag requires that the tag GENERATE_QHP is set to YES.
1386 1378  
1387   -QCH_FILE =
  1379 +QCH_FILE =
1388 1380  
1389 1381 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
1390 1382 # Project output. For more information please see Qt Help Project / Namespace
... ... @@ -1409,7 +1401,7 @@ QHP_VIRTUAL_FOLDER = doc
1409 1401 # filters).
1410 1402 # This tag requires that the tag GENERATE_QHP is set to YES.
1411 1403  
1412   -QHP_CUST_FILTER_NAME =
  1404 +QHP_CUST_FILTER_NAME =
1413 1405  
1414 1406 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
1415 1407 # custom filter to add. For more information please see Qt Help Project / Custom
... ... @@ -1417,21 +1409,21 @@ QHP_CUST_FILTER_NAME =
1417 1409 # filters).
1418 1410 # This tag requires that the tag GENERATE_QHP is set to YES.
1419 1411  
1420   -QHP_CUST_FILTER_ATTRS =
  1412 +QHP_CUST_FILTER_ATTRS =
1421 1413  
1422 1414 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1423 1415 # project's filter section matches. Qt Help Project / Filter Attributes (see:
1424 1416 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
1425 1417 # This tag requires that the tag GENERATE_QHP is set to YES.
1426 1418  
1427   -QHP_SECT_FILTER_ATTRS =
  1419 +QHP_SECT_FILTER_ATTRS =
1428 1420  
1429 1421 # The QHG_LOCATION tag can be used to specify the location of Qt's
1430 1422 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
1431 1423 # generated .qhp file.
1432 1424 # This tag requires that the tag GENERATE_QHP is set to YES.
1433 1425  
1434   -QHG_LOCATION =
  1426 +QHG_LOCATION =
1435 1427  
1436 1428 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
1437 1429 # generated, together with the HTML files, they form an Eclipse help plugin. To
... ... @@ -1564,7 +1556,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
1564 1556 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
1565 1557 # This tag requires that the tag USE_MATHJAX is set to YES.
1566 1558  
1567   -MATHJAX_EXTENSIONS =
  1559 +MATHJAX_EXTENSIONS =
1568 1560  
1569 1561 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
1570 1562 # of code that will be used on startup of the MathJax code. See the MathJax site
... ... @@ -1572,7 +1564,7 @@ MATHJAX_EXTENSIONS =
1572 1564 # example see the documentation.
1573 1565 # This tag requires that the tag USE_MATHJAX is set to YES.
1574 1566  
1575   -MATHJAX_CODEFILE =
  1567 +MATHJAX_CODEFILE =
1576 1568  
1577 1569 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
1578 1570 # the HTML output. The underlying search engine uses javascript and DHTML and
... ... @@ -1632,7 +1624,7 @@ EXTERNAL_SEARCH = NO
1632 1624 # Searching" for details.
1633 1625 # This tag requires that the tag SEARCHENGINE is set to YES.
1634 1626  
1635   -SEARCHENGINE_URL =
  1627 +SEARCHENGINE_URL =
1636 1628  
1637 1629 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
1638 1630 # search data is written to a file for indexing by an external tool. With the
... ... @@ -1648,7 +1640,7 @@ SEARCHDATA_FILE = searchdata.xml
1648 1640 # projects and redirect the results back to the right project.
1649 1641 # This tag requires that the tag SEARCHENGINE is set to YES.
1650 1642  
1651   -EXTERNAL_SEARCH_ID =
  1643 +EXTERNAL_SEARCH_ID =
1652 1644  
1653 1645 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
1654 1646 # projects other than the one defined by this configuration file, but that are
... ... @@ -1658,7 +1650,7 @@ EXTERNAL_SEARCH_ID =
1658 1650 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
1659 1651 # This tag requires that the tag SEARCHENGINE is set to YES.
1660 1652  
1661   -EXTRA_SEARCH_MAPPINGS =
  1653 +EXTRA_SEARCH_MAPPINGS =
1662 1654  
1663 1655 #---------------------------------------------------------------------------
1664 1656 # Configuration options related to the LaTeX output
... ... @@ -1667,7 +1659,7 @@ EXTRA_SEARCH_MAPPINGS =
1667 1659 # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
1668 1660 # The default value is: YES.
1669 1661  
1670   -GENERATE_LATEX = YES
  1662 +GENERATE_LATEX = NO
1671 1663  
1672 1664 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
1673 1665 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
... ... @@ -1722,7 +1714,7 @@ PAPER_TYPE = a4
1722 1714 # If left blank no extra packages will be included.
1723 1715 # This tag requires that the tag GENERATE_LATEX is set to YES.
1724 1716  
1725   -EXTRA_PACKAGES =
  1717 +EXTRA_PACKAGES =
1726 1718  
1727 1719 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
1728 1720 # generated LaTeX document. The header should contain everything until the first
... ... @@ -1738,7 +1730,7 @@ EXTRA_PACKAGES =
1738 1730 # to HTML_HEADER.
1739 1731 # This tag requires that the tag GENERATE_LATEX is set to YES.
1740 1732  
1741   -LATEX_HEADER =
  1733 +LATEX_HEADER =
1742 1734  
1743 1735 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
1744 1736 # generated LaTeX document. The footer should contain everything after the last
... ... @@ -1749,7 +1741,7 @@ LATEX_HEADER =
1749 1741 # Note: Only use a user-defined footer if you know what you are doing!
1750 1742 # This tag requires that the tag GENERATE_LATEX is set to YES.
1751 1743  
1752   -LATEX_FOOTER =
  1744 +LATEX_FOOTER =
1753 1745  
1754 1746 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1755 1747 # LaTeX style sheets that are included after the standard style sheets created
... ... @@ -1760,7 +1752,7 @@ LATEX_FOOTER =
1760 1752 # list).
1761 1753 # This tag requires that the tag GENERATE_LATEX is set to YES.
1762 1754  
1763   -LATEX_EXTRA_STYLESHEET =
  1755 +LATEX_EXTRA_STYLESHEET =
1764 1756  
1765 1757 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
1766 1758 # other source files which should be copied to the LATEX_OUTPUT output
... ... @@ -1768,7 +1760,7 @@ LATEX_EXTRA_STYLESHEET =
1768 1760 # markers available.
1769 1761 # This tag requires that the tag GENERATE_LATEX is set to YES.
1770 1762  
1771   -LATEX_EXTRA_FILES =
  1763 +LATEX_EXTRA_FILES =
1772 1764  
1773 1765 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
1774 1766 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
... ... @@ -1876,14 +1868,14 @@ RTF_HYPERLINKS = NO
1876 1868 # default style sheet that doxygen normally uses.
1877 1869 # This tag requires that the tag GENERATE_RTF is set to YES.
1878 1870  
1879   -RTF_STYLESHEET_FILE =
  1871 +RTF_STYLESHEET_FILE =
1880 1872  
1881 1873 # Set optional variables used in the generation of an RTF document. Syntax is
1882 1874 # similar to doxygen's config file. A template extensions file can be generated
1883 1875 # using doxygen -e rtf extensionFile.
1884 1876 # This tag requires that the tag GENERATE_RTF is set to YES.
1885 1877  
1886   -RTF_EXTENSIONS_FILE =
  1878 +RTF_EXTENSIONS_FILE =
1887 1879  
1888 1880 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
1889 1881 # with syntax highlighting in the RTF output.
... ... @@ -1928,7 +1920,7 @@ MAN_EXTENSION = .3
1928 1920 # MAN_EXTENSION with the initial . removed.
1929 1921 # This tag requires that the tag GENERATE_MAN is set to YES.
1930 1922  
1931   -MAN_SUBDIR =
  1923 +MAN_SUBDIR =
1932 1924  
1933 1925 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
1934 1926 # will generate one additional man file for each entity documented in the real
... ... @@ -2041,7 +2033,7 @@ PERLMOD_PRETTY = YES
2041 2033 # overwrite each other's variables.
2042 2034 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
2043 2035  
2044   -PERLMOD_MAKEVAR_PREFIX =
  2036 +PERLMOD_MAKEVAR_PREFIX =
2045 2037  
2046 2038 #---------------------------------------------------------------------------
2047 2039 # Configuration options related to the preprocessor
... ... @@ -2082,7 +2074,7 @@ SEARCH_INCLUDES = YES
2082 2074 # preprocessor.
2083 2075 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
2084 2076  
2085   -INCLUDE_PATH =
  2077 +INCLUDE_PATH =
2086 2078  
2087 2079 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
2088 2080 # patterns (like *.h and *.hpp) to filter out the header-files in the
... ... @@ -2090,7 +2082,7 @@ INCLUDE_PATH =
2090 2082 # used.
2091 2083 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
2092 2084  
2093   -INCLUDE_FILE_PATTERNS =
  2085 +INCLUDE_FILE_PATTERNS =
2094 2086  
2095 2087 # The PREDEFINED tag can be used to specify one or more macro names that are
2096 2088 # defined before the preprocessor is started (similar to the -D option of e.g.
... ... @@ -2100,7 +2092,7 @@ INCLUDE_FILE_PATTERNS =
2100 2092 # recursively expanded use the := operator instead of the = operator.
2101 2093 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
2102 2094  
2103   -PREDEFINED =
  2095 +PREDEFINED =
2104 2096  
2105 2097 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
2106 2098 # tag can be used to specify a list of macro names that should be expanded. The
... ... @@ -2109,7 +2101,7 @@ PREDEFINED =
2109 2101 # definition found in the source code.
2110 2102 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
2111 2103  
2112   -EXPAND_AS_DEFINED =
  2104 +EXPAND_AS_DEFINED =
2113 2105  
2114 2106 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
2115 2107 # remove all references to function-like macros that are alone on a line, have
... ... @@ -2138,13 +2130,13 @@ SKIP_FUNCTION_MACROS = YES
2138 2130 # the path). If a tag file is not located in the directory in which doxygen is
2139 2131 # run, you must also specify the path to the tagfile here.
2140 2132  
2141   -TAGFILES =
  2133 +TAGFILES =
2142 2134  
2143 2135 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
2144 2136 # tag file that is based on the input files it reads. See section "Linking to
2145 2137 # external documentation" for more information about the usage of tag files.
2146 2138  
2147   -GENERATE_TAGFILE =
  2139 +GENERATE_TAGFILE =
2148 2140  
2149 2141 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in
2150 2142 # the class index. If set to NO, only the inherited external classes will be
... ... @@ -2193,14 +2185,14 @@ CLASS_DIAGRAMS = NO
2193 2185 # the mscgen tool resides. If left empty the tool is assumed to be found in the
2194 2186 # default search path.
2195 2187  
2196   -MSCGEN_PATH =
  2188 +MSCGEN_PATH =
2197 2189  
2198 2190 # You can include diagrams made with dia in doxygen documentation. Doxygen will
2199 2191 # then run dia to produce the diagram and insert it in the documentation. The
2200 2192 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
2201 2193 # If left empty dia is assumed to be found in the default search path.
2202 2194  
2203   -DIA_PATH =
  2195 +DIA_PATH =
2204 2196  
2205 2197 # If set to YES the inheritance and collaboration graphs will hide inheritance
2206 2198 # and usage relations if the target is undocumented or is not a class.
... ... @@ -2249,7 +2241,7 @@ DOT_FONTSIZE = 10
2249 2241 # the path where dot can find it using this tag.
2250 2242 # This tag requires that the tag HAVE_DOT is set to YES.
2251 2243  
2252   -DOT_FONTPATH =
  2244 +DOT_FONTPATH =
2253 2245  
2254 2246 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
2255 2247 # each documented class showing the direct and indirect inheritance relations.
... ... @@ -2400,19 +2392,19 @@ DOT_PATH = /usr/local/bin
2400 2392 # command).
2401 2393 # This tag requires that the tag HAVE_DOT is set to YES.
2402 2394  
2403   -DOTFILE_DIRS =
  2395 +DOTFILE_DIRS =
2404 2396  
2405 2397 # The MSCFILE_DIRS tag can be used to specify one or more directories that
2406 2398 # contain msc files that are included in the documentation (see the \mscfile
2407 2399 # command).
2408 2400  
2409   -MSCFILE_DIRS =
  2401 +MSCFILE_DIRS =
2410 2402  
2411 2403 # The DIAFILE_DIRS tag can be used to specify one or more directories that
2412 2404 # contain dia files that are included in the documentation (see the \diafile
2413 2405 # command).
2414 2406  
2415   -DIAFILE_DIRS =
  2407 +DIAFILE_DIRS =
2416 2408  
2417 2409 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
2418 2410 # path where java can find the plantuml.jar file. If left blank, it is assumed
... ... @@ -2420,17 +2412,12 @@ DIAFILE_DIRS =
2420 2412 # generate a warning when it encounters a \startuml command in this case and
2421 2413 # will not generate output for the diagram.
2422 2414  
2423   -PLANTUML_JAR_PATH =
2424   -
2425   -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
2426   -# configuration file for plantuml.
2427   -
2428   -PLANTUML_CFG_FILE =
  2415 +PLANTUML_JAR_PATH =
2429 2416  
2430 2417 # When using plantuml, the specified paths are searched for files specified by
2431 2418 # the !include statement in a plantuml block.
2432 2419  
2433   -PLANTUML_INCLUDE_PATH =
  2420 +PLANTUML_INCLUDE_PATH =
2434 2421  
2435 2422 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
2436 2423 # that will be shown in the graph. If the number of nodes in a graph becomes
... ...
README.md
... ... @@ -101,7 +101,7 @@ If you want to know more about all functions just look inside the doxygen docume
101 101  
102 102 ## Build and install
103 103 ### Basic installation
104   -If you want to build the library you can use cmake (at least version 2.8.3). First create a build folder and then execute cmake.
  104 +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.
105 105 ```bash
106 106 mkdir build
107 107 cd build
... ...
doc/markdown/Mainpage.md 0 โ†’ 100644
  1 +# Documentation for the hueplusplus library
  2 +A simple and easy to use library for Philips Hue Lights.
  3 +
  4 +## Features
  5 +* find bridges with SSDP or set an ip manually
  6 +* function to assign a username or set one manually
  7 +* all common light functions (brightness, color, temperature)
  8 +* extended alert() functions, which alert in a specific color (good for notifications)
  9 +* documented with doxygen
  10 +* tested with google test, google mock and gcov/lcov
  11 +
  12 +## Compatibility
  13 +* Linux
  14 +* Windows
  15 +* MacOS
  16 +* Espressif ESP32 SDK & Arduino
  17 +
  18 +## How to use
  19 +### <a name="searchingBridges"></a>Searching for Bridges
  20 +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).
  21 +
  22 +Then create a [HueFinder](@ref hueplusplus::HueFinder) object with the handler.
  23 +The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network.
  24 +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.
  25 +```{.cpp}
  26 +// For windows use std::make_shared<hueplusplus::WinHttpHandler>();
  27 +handler = std::make_shared<hueplusplus::LinHttpHandler>();
  28 +hueplusplus::HueFinder finder(handler);
  29 +std::vector<hueplusplus::HueFinder::HueIdentification> bridges = finder.FindBridges();
  30 +if (bridges.empty())
  31 +{
  32 + std::cerr << "No bridges found\n";
  33 + return;
  34 +}
  35 +
  36 +```
  37 +
  38 +### Authenticate Bridges
  39 +If you have found the Bridge you were looking for, you can then move on with the authentication process.
  40 +To get a new username from the Bridge (for now) you simply call [GetBridge(bridges[\<index\>])](@ref hueplusplus::HueFinder::GetBridge),
  41 +where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button.
  42 +```{.cpp}
  43 +hueplusplus::Hue bridge = finder.GetBridge(bridges[0]);
  44 +```
  45 +If you on the other hand already have a username you can add your bridge like so
  46 +```{.cpp}
  47 +finder.AddUsername(bridges[0].mac, "<username>");
  48 +hueplusplus::Hue bridge = finder.GetBridge(bridges[0]);
  49 +```
  50 +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.
  51 +Here you will need to provide the ip address, the port number, a username and an HttpHandler
  52 +```{.cpp}
  53 +// For windows use std::make_shared<hueplusplus::WinHttpHandler>();
  54 +handler = std::make_shared<hueplusplus::LinHttpHandler>();
  55 +hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler);
  56 +```
  57 +
  58 +### Controlling lights
  59 +If you have your Bridge all set up, you can now control its lights.
  60 +For that create a new HueLight object and call [getLight(\<id\>)](@ref hueplusplus::Hue::getLight) on your bridge object to get a reference to a specific light, where id
  61 +is the id of the light set internally by the Hue Bridge.
  62 +```{.cpp}
  63 +hueplusplus::HueLight light1 = bridge.getLight(1);
  64 +```
  65 +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,
  66 +you can get a vector containing them by calling [getAllLights()](@ref hueplusplus::Hue::getAllLights) on your bridge object. If no lights are found the vector will be empty.
  67 +```{.cpp}
  68 +std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.getAllLights();
  69 +```
  70 +If you now want to control a light, call a specific function of it.
  71 +```{.cpp}
  72 +light1.On();
  73 +light1.setBrightness(120);
  74 +light1.alertHueSaturation(25500, 255);
  75 +light1.setColorLoop(true);
  76 +light1.setColorRGB(255, 128, 0);
  77 +lights[1].Off();
  78 +lights.at(1).setColorHue(4562);
  79 +```
  80 +But keep in mind that some light types do not have all functions available. So you might call a
  81 +specific function, but nothing will happen. For that you might want to check what type
  82 +of a light you are controlling. For that you can call the function [getColorType()](@ref hueplusplus::HueLight::getColorType()), which will return
  83 +a ColorType.
  84 +```{.cpp}
  85 +hueplusplus::ColorType type1 = light1.getColorType();
  86 +```
  87 +There's also a new way to check whether specific functions of a light are available:
  88 +```{.cpp}
  89 +light1.hasBrightnessControl();
  90 +light1.hasTemperatureControl();
  91 +light1.hasColorControl();
  92 +```
  93 +These will either return true(light has specified function) or false(light lacks specified function).
  94 +
  95 +## Build and install
  96 +### Basic installation
  97 +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.
  98 +```bash
  99 +mkdir build
  100 +cd build
  101 +cmake ..
  102 +```
  103 +Then compile the code with make. If you are inpatient use the option -j\<number\>, where number specifies how many files are compiled at the same time. Note this number should not exceed the number of cores*2 of your machine.
  104 +```bash
  105 +make
  106 +```
  107 +```bash
  108 +make -j4
  109 +```
  110 +If you want to install the library use
  111 +```bash
  112 +make install
  113 +```
  114 +To remove it
  115 +```bash
  116 +make uninstall
  117 +```
  118 +
  119 +### Advanced usage
  120 +If you have a project that already uses CMake you probably want to add the hueplusplus library directly in your cmake file.
  121 +For that the best way is to use find_package().
  122 +When cmake finds the hueplusplus library you can then link against either the shared or static version of the library.
  123 +```cmake
  124 +find_package(hueplusplus REQUIRED)
  125 +
  126 +target_link_libraries(<executable> PUBLIC hueplusplusstatic)
  127 +```
  128 +But this will only work if the hueplusplus library is already installed.
  129 +To get around this problem there is a pretty awesome way.
  130 +If you have the hueplusplus repository included in your project repository (as a submodule) or know where the folder lives you can do the following:
  131 +```cmake
  132 +find_package(hueplusplus QUIET)
  133 +if(NOT hueplusplus_FOUND)
  134 + message(STATUS "-- hueplusplus not found, building it")
  135 + add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/<path to directory>/hueplusplus" "${CMAKE_CURRENT_BINARY_DIR}/hueplusplus")
  136 +endif()
  137 +
  138 +target_link_libraries(<executable> PUBLIC hueplusplusstatic)
  139 +```
  140 +This will check if the hueplusplus library was found by find_package() and if not it will use the specified path to the library source and compile it during the build process.
  141 +
  142 +### Running tests
  143 +If you additionally want to run the tests use cmake with the option -Dhueplusplus_TESTS=ON. Testing is done with Google gtest and gmock. Note that you wont need to install gtest/gmock yourself, because cmake will automatically download them and include them during the build. Since I added a custom target you will only need to call "make unittest" and the tests are compiled and executed.
  144 +```bash
  145 +mkdir build
  146 +cd build
  147 +cmake .. -Dhueplusplus_TESTS=ON
  148 +make unittest
  149 +```
  150 +If you also want to execute coverage tests you will need to install gcov and lcov yourself. To run the coverage test use
  151 +```bash
  152 +make coveragetest
  153 +```
... ...