diff --git a/.gitignore b/.gitignore index 0ad6eb6..3d1ad5d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,13 @@ .project -.cproject -main +cmake_install.cmake +CMakeFiles/ +tags +CMakeCache.txt +CTestTestfile.cmake +main_autogen/ +pul +screenshot.png +libcpptimer.a +Makefile +drmhk +Makefile diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6f08c8d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.7.0) + +project(pulse VERSION 1.0.0 LANGUAGES CXX) + +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "RelWithDebInfo") +endif() +add_compile_options(-Wall -Wconversion -Wextra -pedantic) +add_library(cpptimer STATIC src/CppTimer.cpp) +TARGET_LINK_LIBRARIES(cpptimer rt fcgi ${CMAKE_THREAD_LIBS_INIT} curl) +set_target_properties(cpptimer PROPERTIES POSITION_INDEPENDENT_CODE TRUE) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) +set(THREADS_PREFER_PTHREAD_FLAG ON) + +find_package(Qt5 COMPONENTS Widgets PrintSupport REQUIRED) +find_package(QCustomPlot) +find_library(wiringPi_LIB wiringPi) +find_package(Threads REQUIRED) +find_package( CURL ) + +add_executable(drmhk + src/CppTimer.cpp + include/mainwindow.cpp + main/main.cpp +) + +target_link_libraries(drmhk + Qt5::Widgets Qt5::PrintSupport Threads::Threads cpptimer ${QCustomPlot_LIBRARIES} ${wiringPi_LIB} fcgi rt ${CMAKE_THREAD_LIBS_INIT} curl + ) + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..22ce687 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +docs.dreamhacker.co.uk diff --git a/CppTimer.cpp b/CppTimer.cpp deleted file mode 100644 index adb00be..0000000 --- a/CppTimer.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include "CppTimer.h" - -/** - * GNU GENERAL PUBLIC LICENSE - * Version 3, 29 June 2007 - * - * (C) 2020, Bernd Porr - * - * This is inspired by the timer_create man page. - **/ - -CppTimer::CppTimer() { - // We create a static handler catches the signal SIG - sa.sa_flags = SA_SIGINFO; - sa.sa_sigaction = handler; - sigemptyset(&sa.sa_mask); - if (sigaction(SIG, &sa, NULL) == -1) - throw("Could not create signal handler"); - - // Create the timer - sev.sigev_notify = SIGEV_SIGNAL; - sev.sigev_signo = SIG; - // Cruical is that the signal carries the pointer to this class instance here - // because the handler just handles anything that comes in! - sev.sigev_value.sival_ptr = this; - // create the timer - if (timer_create(CLOCKID, &sev, &timerid) == -1) - throw("Could not create timer"); -}; - -void CppTimer::start(long nanosecs, cppTimerType_t type) { - switch(type){ - case(PERIODIC): - //starts after specified period of nanoseconds - its.it_value.tv_sec = nanosecs / 1000000000; - its.it_value.tv_nsec = nanosecs % 1000000000; - its.it_interval.tv_sec = nanosecs / 1000000000; - its.it_interval.tv_nsec = nanosecs % 1000000000; - break; - case(ONESHOT): - //fires once after specified period of nanoseconds - its.it_value.tv_sec = nanosecs / 1000000000; - its.it_value.tv_nsec = nanosecs % 1000000000; - its.it_interval.tv_sec = 0; - its.it_interval.tv_nsec = 0; - break; - } - if (timer_settime(timerid, 0, &its, NULL) == -1) - throw("Could not start timer"); -} - -void CppTimer::stop() { - // disarm - struct itimerspec itsnew; - itsnew.it_value.tv_sec = 0; - itsnew.it_value.tv_nsec = 0; - itsnew.it_interval.tv_sec = 0; - itsnew.it_interval.tv_nsec = 0; - timer_settime(timerid, 0, &itsnew, &its); -} - -CppTimer::~CppTimer() { - stop(); - // delete the timer - timer_delete(timerid); - // default action for signal handling - signal(SIG, SIG_IGN); -} \ No newline at end of file diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000..9df10fd --- /dev/null +++ b/Doxyfile @@ -0,0 +1,41 @@ +PROJECT_NAME = "DreamHacker" +OUTPUT_DIRECTORY = ./docs/ +BUILTIN_STL_SUPPORT = YES +EXTRACT_ALL = YES +EXCLUDE_PATTERNS = */build/* */CMakeFiles/* +RECURSIVE = YES +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = YES +GENERATE_TREEVIEW = YES +TOC_INCLUDE_HEADINGS = 5 +UML_LOOK = YES +CALL_GRAPH = YES +CALLER_GRAPH = YES + +# Show private member +EXTRACT_PRIVATE = YES + + +GENERATE_LATEX = NO +GENERATE_HTML = YES +HTML_OUTPUT = ./ +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_TIMESTAMP = YES +HTML_DYNAMIC_SECTIONS = NO +HTML_INDEX_NUM_ENTRIES = 100 + +# Optimize for C/C++ +OPTIMIZE_OUTPUT_FOR_C = YES + +# Styling +INPUT = README.md STRUCTURE.md ./include/ ./src/ ./main/ ./drmhk_autogen/ +USE_MDFILE_AS_MAINPAGE = README.md + +SOURCE_BROWSER = YES +INLINE_SOURCES = YES +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Makefile b/Makefile deleted file mode 100644 index 93ba310..0000000 --- a/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -main: main.cpp PulseSensor.h - g++ -g -o main main.cpp CppTimer.cpp -lwiringPi -lm -lpthread -lcurl -lfcgi -lrt diff --git a/PulseSensor.h b/PulseSensor.h deleted file mode 100644 index 15a9822..0000000 --- a/PulseSensor.h +++ /dev/null @@ -1,308 +0,0 @@ -#ifndef __PULSESENSOR_H -#define __PULSESENSOR_H - -/** - * Copyright (c) 2021 Praveen - **/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "CppTimer.h" - -/* -* min uS allowed lag btw alarm and callback -*/ -#define OPT_R 10 - -/* -*sample time uS between alarms -*/ -#define OPT_U 2000 - -/* - * output option uS elapsed time between alarms - */ -#define OPT_O_ELAPSED 0 - -/* - * output option uS jitter (elapsed time - sample time) - */ -#define OPT_O_JITTER 1 - -/* - * default output option - */ -#define OPT_O 1 - -/* - * number of samples to run (testing) - */ -#define OPT_C 10000 - -/* - * number of Pulse Sensors (only 1 supported) - */ -#define OPT_N 1 - -#define TIME_OUT 30000000 // uS time allowed without callback response - -// MCP3004/8 SETTINGS -#define BASE 100 -#define SPI_CHAN 0 - -// FIFO STUFF -#define PULSE_EXIT 0 // CLEAN UP AND SHUT DOWN -#define PULSE_IDLE 1 // STOP SAMPLING, STAND BY -#define PULSE_ON 2 // START SAMPLING, WRITE DATA TO FILE -#define PULSE_DATA 3 // SEND DATA PACKET TO FIFO -#define PULSE_CONNECT 9 // CONNECT TO OTHER END OF PIPE - - -/** - * Callback for new samples which needs to be implemented by the main program. - * The function hasSample needs to be overloaded in the main program. - **/ -class SensorCallback { -public: - /** - * Called after a sample has arrived. - **/ - virtual void hasSample(int beats) = 0; -}; - - -/** - * This class reads data from a fake sensor in the background - * and calls a callback function whenever data is available. - **/ -class PulseSensor : public CppTimer { - -public: - // Constructs a PulseSensor manager using a default configuration. - PulseSensor() { - - } - - ~PulseSensor() { - stop(); - } - - volatile unsigned int eventCounter, thisTime, lastTime, elapsedTime, jitter; - volatile int sampleFlag = 0; - volatile int sumJitter, firstTime, secondTime, duration; - unsigned int timeOutStart, dataRequestStart, m; - - // Pulse detection output variables. - // Volatile because our pulse detection code could be called from an Interrupt - volatile int BPM; // int that holds raw Analog in 0. updated every call to readSensor() - volatile int Signal; // holds the latest incoming raw data (0..1023) - volatile int IBI; // int that holds the time interval (ms) between beats! Must be seeded! - volatile bool Pulse; // "True" when User's live heartbeat is detected. "False" when not a "live beat". - volatile bool QS; // The start of beat has been detected and not read by the Sketch. - volatile int FadeLevel; // brightness of the FadePin, in scaled PWM units. See FADE_SCALE - volatile int threshSetting; // used to seed and reset the thresh variable - volatile int amp; // used to hold amplitude of pulse waveform, seeded (sample value) - volatile unsigned long lastBeatTime; // used to find IBI. Time (sampleCounter) of the previous detected beat start. - - // Variables internal to the pulse detection algorithm. - // Not volatile because we use them only internally to the pulse detection. - unsigned long sampleIntervalMs; // expected time between calls to readSensor(), in milliseconds. - int rate[10]; // array to hold last ten IBI values (ms) - unsigned long sampleCounter; // used to determine pulse timing. Milliseconds since we started. - int P; // used to find peak in pulse wave, seeded (sample value) - int T; // used to find trough in pulse wave, seeded (sample value) - int thresh; // used to find instant moment of heart beat, seeded (sample value) - bool firstBeat; // used to seed rate array so we startup with reasonable BPM - bool secondBeat; // used to seed rate array so we startup with reasonable BPM - - /** - * Sets the callback which is called whenever there is a sample - **/ - void setCallback(SensorCallback* cb) { - printf("pointer: %p\n", cb); - sensorCallback = cb; - } - - /** - * Starts the data acquisition in the background and the - * callback is called with new samples - **/ - void startSensor() { - printf("startSensor \n"); - startRecording(OPT_R, OPT_U); - start(100000000); - } - - /** - * Stops the data acquistion - **/ - void stopSensor() { - stop(); - } - - /** - * Check the new data and pass to callback - **/ - void timerEvent() { - getPulse(SIGALRM); - if (sampleFlag && ( nullptr != sensorCallback) ) { - printf("beats, pointer %d\n%p\n", BPM, sensorCallback); - sensorCallback->hasSample(BPM); - } - - } - - void startRecording(int r, unsigned int u) { - int latency = r; - unsigned int micros = u; - - signal(SIGALRM, PulseSensor::static_myHandler); - int err = ualarm(latency, micros); - if (err == 0) { - if (micros > 0) { - printf("ualarm ON\n"); - } - else { - printf("ualarm OFF\n"); - } - } - } - - - void initPulseSensorVariables(void) { - printf("initPulseSensorVariables \n"); - for (int i = 0; i < 10; ++i) { - rate[i] = 0; - } - QS = 0; - BPM = 0; - IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM) - Pulse = 0; - sampleCounter = 0; - lastBeatTime = 0; - P = 512; // peak at 1/2 the input range of 0..1023 - T = 512; // trough at 1/2 the input range. - threshSetting = 550; // used to seed and reset the thresh variable - thresh = 550; // threshold a little above the trough - amp = 100; // beat amplitude 1/10 of input range. - firstBeat = 1; // looking for the first beat - secondBeat = 0; // not yet looking for the second beat in a row - lastTime = micros(); - timeOutStart = lastTime; - } - - -void getPulse(int sig_num) { - if (sig_num == SIGALRM) { - printf("Main if loop"); - thisTime = micros(); - Signal = analogRead(BASE); - elapsedTime = thisTime - lastTime; - lastTime = thisTime; - jitter = elapsedTime - OPT_U; - sumJitter += jitter; - sampleFlag = 1; - - sampleCounter += 2; // keep track of the time in mS with this variable - int N = sampleCounter - lastBeatTime; // monitor the time since the last beat to avoid noise - - // find the peak and trough of the pulse wave - if (Signal < thresh && N > (IBI / 5) * 3) { // avoid dichrotic noise by waiting 3/5 of last IBI - if (Signal < T) { // T is the trough - T = Signal; // keep track of lowest point in pulse wave - } - } - - if (Signal > thresh && Signal > P) { // thresh condition helps avoid noise - P = Signal; // P is the peak - } // keep track of highest point in pulse wave - - // NOW IT'S TIME TO LOOK FOR THE HEART BEAT - // signal surges up in value every time there is a pulse - if (N > 250) { // avoid high frequency noise - if ((Signal > thresh) && (Pulse == 0) && (N > ((IBI / 5) * 3))) { - Pulse = 1; // set the Pulse flag when we think there is a pulse - IBI = sampleCounter - lastBeatTime; // measure time between beats in mS - lastBeatTime = sampleCounter; // keep track of time for next pulse - - if (secondBeat) { // if this is the second beat, if secondBeat == TRUE - secondBeat = 0; // clear secondBeat flag - for (int i = 0; i <= 9; i++) { // seed the running total to get a realisitic BPM at startup - rate[i] = IBI; - } - } - - if (firstBeat) { // if it's the first time we found a beat, if firstBeat == TRUE - firstBeat = 0; // clear firstBeat flag - secondBeat = 1; // set the second beat flag - // IBI value is unreliable so discard it - return; - } - - // keep a running total of the last 10 IBI values - int runningTotal = 0; // clear the runningTotal variable - - for (int i = 0; i <= 8; i++) { // shift data in the rate array - rate[i] = rate[i + 1]; // and drop the oldest IBI value - runningTotal += rate[i]; // add up the 9 oldest IBI values - } - - rate[9] = IBI; // add the latest IBI to the rate array - runningTotal += rate[9]; // add the latest IBI to runningTotal - runningTotal /= 10; // average the last 10 IBI values - BPM = 60000 / runningTotal; // how many beats can fit into a minute? that's BPM! - QS = 1; // set Quantified Self flag (we detected a beat) - //fadeLevel = MAX_FADE_LEVEL; // If we're fading, re-light that LED. - } - } - - if (Signal < thresh && Pulse == 1) { // when the values are going down, the beat is over - Pulse = 0; // reset the Pulse flag so we can do it again - amp = P - T; // get amplitude of the pulse wave - thresh = amp / 2 + T; // set thresh at 50% of the amplitude - P = thresh; // reset these for next time - T = thresh; - } - - if (N > 2500) { // if 2.5 seconds go by without a beat - thresh = threshSetting; // set thresh default - P = 512; // set P default - T = 512; // set T default - lastBeatTime = sampleCounter; // bring the lastBeatTime up to date - firstBeat = 1; // set these to avoid noise - secondBeat = 0; // when we get the heartbeat back - QS = 0; - BPM = 0; - IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM) - Pulse = 0; - amp = 100; // beat amplitude 1/10 of input range. - } - - duration = micros() - thisTime; - } -} - -static void static_myHandler(int signum) { - instance.getPulse(signum); - } - - -private: - SensorCallback* sensorCallback = nullptr; -private: - static PulseSensor instance; - -}; - -PulseSensor PulseSensor::instance; - -#endif \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8325b07 --- /dev/null +++ b/README.md @@ -0,0 +1,170 @@ +

Dream Hacker

+
+
+ + Logo + +
+
+

+ Dream Hacker is program designed to help you have better dreams. Our projects monitors our users heart rate and plays an audio file chosen by the user. Once Dream Hacker detects the user has entered sleep ie. when the beats per minute is below a certain threshold it will play the selected audio. +
+ +

+ This setup takes data from pulse sensor and time of the day etc, to predict when the person has slept. + Then after a while start the audio stimulus. +
+
+ Checkout docs » +
+ Read the wiki » +
+
+      +      +      +      +
+
+ Discuss with us + · +

+
+ + +## Contents +
    +
  1. + About + +
  2. +
  3. + Getting Started + +
  4. +
  5. Contributing
  6. +
  7. License
  8. +
  9. Contact
  10. +
  11. References
  12. +
+ + + + +## About + Dream Hacker is program designed to help you have better dreams. Our projects monitors our users heart rate and plays an audio file chosen by the user. Once Dream Hacker detects the user has entered sleep ie. when the beats per minute is below a certain threshold it will play the selected audio. + +Website interface enables user to select the music they want to play while they are sleeping. They can also see their different information using web Interface. +The information will include bpm (beats per minute), the threshold and when the user has slept. + +
+ +[![Contributors](https://img.shields.io/badge/Contributors-4-brightgreen)](https://github.com/shreyExp/DreamHacker/network/contributors) +[![Stars](https://img.shields.io/badge/Stars-2-green)](https://github.com/shreyExp/DreamHacker/stargazers) +[![Issues](https://img.shields.io/github/issues-raw/shreyExp/DreamHacker)](https://github.com/shreyExp/DreamHacker/issues) +[![License](https://img.shields.io/github/license/shreyExp/DreamHacker)](https://github.com/shreyExp/DreamHacker/blob/master/LICENSE) + +
+
+ +If you have +any questions about DreamHacker or want to share some information with us, please go to one of +the following places: + +* [Wiki](https://github.com/shreyExp/DreamHacker/wiki) +* [FaceBook](https://www.facebook.com/Dream-Hacker-103619898510175). +* [Mail](mailto:2620969T@student.gla.ac.uk). + +Before you file an issue, make sure you have read the _[known issues](https://github.com/shreyExp/DreamHacker/issues)_. + +### Hardware + +* [Raspberry pi ](https://www.raspberrypi.org/products/raspberry-pi-4-model-b/) +* [Pulse Sensor](https://pulsesensor.com/) +* ADC MCP3008 +* Wires +* Speakers +* Breadboard + +### Software + +[See Documentation](https://docs.dreamhacker.co.uk/) + + +### Roadmap +[-] Next Software Release (v2.0) - ML of sleep detection using Python and +ML algo +* [-] User input integrated +* [-] User sleep timings integrated +* [-] Social Media Presence improvement +* [-] Pulse sensor improvements +* [-] Web-Server Improvments +* [-] Gather Training Dataset +* [-] Train sleep detection +* [-] Test on real samples + + + + +## Getting Started + +### Installation +Hardware + - Set up the circuit as shown in the [diagram](https://github.com/shreyExp/DreamHacker/wiki/RaspberryPi-Hardware-Setup). + - Put a speaker with it's audio jack in the audio output of the raspberry pi. + - For more information: [Hardware Wiki](https://github.com/shreyExp/DreamHacker/wiki/RaspberryPi-Hardware-Setup) + +Software +``` +1. Use SSH, VNC or a monitor and a keyboard to login to raspberry pi. +2. Install the audio player mpg123 +3. Clone the repository somewhere in the Raspberry Pi. +4. Run the following commands from inside the repository + - cmake . + - make +``` + +### Usage +- Put your audio files inside the directory audio/. +- Edit the audio.txt file with the name of the audio you want to play when the sleep starts. For example if you want to play `my_file.mp3` present in the audio/ directory then write `audio/my_file.mp3`. Make sure that the file has just one line. +- Run ./drmhk -h to explore what are the parameters which can be feeded as the input to the program. +- __Example:__ If you want to run the program as a simulation and set the beats per minute threshold to 70 then run `./drmhk -s 1 -t 70`. +- To run in default mode run `./drmhk` + +## Contributing + +See [CONTRIBUTING](https://github.com/shreyExp/DreamHacker/wiki/Contribution) for more information. + + + +## License + +Distributed under the GPL-3.0 License. See `LICENSE` for more information. + + + + +## Contact +Team 39 in Real Time Embedded Programming + +👤 **Amber Dehariya (2594660d)** + +👤 **Michael Hiluf (2529225h)** + +👤 **Praveen (2620969t)** + +👤 **Shreyansh Singh (2611417s)** + +## References +* [jQuery <--> C++ fastcgi web API, Bernd Porr](https://github.com/berndporr/json_fastcgi_web_api) +* [Pulse Sensor](https://github.com/WorldFamousElectronics/Raspberry_Pi/blob/master/PulseSensor_C_Pi/PulseSensor_C_Pi.md) +* [CppTimer](https://github.com/berndporr/cppTimer) +* [Qt Plot](https://github.com/berndporr/qcustomplotdemo) + diff --git a/STRUCTURE.md b/STRUCTURE.md new file mode 100644 index 0000000..685479d --- /dev/null +++ b/STRUCTURE.md @@ -0,0 +1,46 @@ +# Structure + +This document describes the high-level folder structure of `DreamHacker project`. +If you want to familiarize yourself with the code base, you are just in the right place! + +## Overview + +On the highest level, `DreamHacker/drmhk_autogen` is a thing which runs in the background and gathers data and handles communication with the webserver. + +It was created with the concept of event-driven logic in mind. Therefore these use events and callbacks as much as possible. + +## In-detail + +In this section, all paths are relative to `DreamHacker`. + +### `./drmhk_autogen` + +This houses the front-facing logic for `DreamHacker`. Handles CLI flags via `getopts` and sets global variables as defined. Also allows running of a test function `tests` which isn't really tests. + +### `./frontend` + +All the files related to developing webserver to view graphs are present in this folder. + +### `./include` + +All header files for the project are to be declared here and added to `CMakeLists.txt`. This allows an easy overview of what is happening within the system. + + - `CppTimer.h` -- Wrapper around C++ timer + - `CppTimerCallback.h` -- This class when implemented calls a function repeatedly after a several nanoseconds. + - `json_fastcgi_web_api.h` helps in creating communicating fastcgi socket and provides a mechanism to transfer json data to and from C++. + - `mainwindow.h` -- QT Graph plotting. + - `PulseSensor.h` -- Records the Signal from the ADC, calculates beats per minute(bpm) + detects sleep and plays audio. + + +### `./main` +Contains main.cpp file. This is the main program. + +### `./src` +Contains the `*.cpp` implementation files for `*.h` files present in the ./include directory + +### `./test` +The test folder contains the test scenarios + + + diff --git a/UI/code/database/db.php b/UI/code/database/db.php deleted file mode 100644 index b6a6986..0000000 --- a/UI/code/database/db.php +++ /dev/null @@ -1,10 +0,0 @@ -error); -?> - - diff --git a/UI/code/liveReading.php b/UI/code/liveReading.php deleted file mode 100644 index a361ffb..0000000 --- a/UI/code/liveReading.php +++ /dev/null @@ -1,116 +0,0 @@ - $i, "y" => $y)); - } -?> - - - - - - - - -Dream Hacker - - - - - - - - - - - - - - - -
-

Dream Hacker

-
- - -
-
` -
-

Live Reading

-
-
-
-

Back

-

-
-
-
-
-
-
-
-
-
-

Time In bed

-

4 hours

-
-

Song Choosen

-

Vivaldi

-
-

Rem Sleep Detected

-

Yes

-
-

Stop Reading

-

-
-
-
- - - - diff --git a/UI/code/musicChoice.php b/UI/code/musicChoice.php deleted file mode 100644 index 342c649..0000000 --- a/UI/code/musicChoice.php +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - -Dream Hacker - - - - - - - - - - - - - - - -
-

Dream Hacker

- -
-
-
-
-

Select Music

-
-
-
-

Back

-
-

-
-
-
-
-
-
-
- -
- - -
- Descirbe what this song does -
- -
- - -
- -
- - -
- -
- - -
- -
-
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
-
-
- - -
-
-
- - \ No newline at end of file diff --git a/audio.txt b/audio.txt new file mode 100644 index 0000000..e969020 --- /dev/null +++ b/audio.txt @@ -0,0 +1 @@ +audio/fixyou.mp3 diff --git a/audio/fixyou.mp3 b/audio/fixyou.mp3 new file mode 100644 index 0000000..02dee76 Binary files /dev/null and b/audio/fixyou.mp3 differ diff --git a/cpywww.sh b/cpywww.sh deleted file mode 100755 index cc44de3..0000000 --- a/cpywww.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bash -sudo cp UI /var/www/html/. diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..22ce687 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +docs.dreamhacker.co.uk diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/docs/_cpp_timer_8cpp.html b/docs/_cpp_timer_8cpp.html new file mode 100644 index 0000000..acc3bc8 --- /dev/null +++ b/docs/_cpp_timer_8cpp.html @@ -0,0 +1,115 @@ + + + + + + + +DreamHacker: src/CppTimer.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CppTimer.cpp File Reference
+
+
+
+Include dependency graph for CppTimer.cpp:
+
+
+ + + + + + + + + +
+
+

Go to the source code of this file.

+
+
+ + + + diff --git a/docs/_cpp_timer_8cpp__incl.map b/docs/_cpp_timer_8cpp__incl.map new file mode 100644 index 0000000..dcd1b5f --- /dev/null +++ b/docs/_cpp_timer_8cpp__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/_cpp_timer_8cpp__incl.md5 b/docs/_cpp_timer_8cpp__incl.md5 new file mode 100644 index 0000000..9b9caef --- /dev/null +++ b/docs/_cpp_timer_8cpp__incl.md5 @@ -0,0 +1 @@ +67f7973b7953dfea801fb848388bf295 \ No newline at end of file diff --git a/docs/_cpp_timer_8cpp__incl.png b/docs/_cpp_timer_8cpp__incl.png new file mode 100644 index 0000000..cd0f64d Binary files /dev/null and b/docs/_cpp_timer_8cpp__incl.png differ diff --git a/docs/_cpp_timer_8cpp_source.html b/docs/_cpp_timer_8cpp_source.html new file mode 100644 index 0000000..2397d1b --- /dev/null +++ b/docs/_cpp_timer_8cpp_source.html @@ -0,0 +1,199 @@ + + + + + + + +DreamHacker: src/CppTimer.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CppTimer.cpp
+
+
+Go to the documentation of this file.
1 #include "../include/CppTimer.h"
+
2 
+
12 CppTimer::CppTimer(const int signo)
+
13 {
+
14  // We create a static handler catches the signal SIG
+
15  sa.sa_flags = SA_SIGINFO;
+
16  sa.sa_sigaction = handler;
+
17  sigemptyset(&sa.sa_mask);
+
18  if (sigaction(signo, &sa, NULL) == -1)
+
19  throw("Could not create signal handler");
+
20 
+
21  // Create the timer
+
22  sev.sigev_notify = SIGEV_SIGNAL;
+
23  sev.sigev_signo = signo;
+
24  // Cruical is that the signal carries the pointer to this class instance here
+
25  // because the handler just handles anything that comes in!
+
26  sev.sigev_value.sival_ptr = this;
+
27  // create the timer
+
28  if (timer_create(CLOCKID, &sev, &timerid) == -1)
+
29  throw("Could not create timer");
+
30 }
+
31 
+
32 void CppTimer::startns(long nanosecs, cppTimerType_t type)
+
33 {
+
34  switch (type)
+
35  {
+
36  case (PERIODIC):
+
37  //starts after specified period of nanoseconds
+
38  its.it_value.tv_sec = nanosecs / 1000000000;
+
39  its.it_value.tv_nsec = nanosecs % 1000000000;
+
40  its.it_interval.tv_sec = nanosecs / 1000000000;
+
41  its.it_interval.tv_nsec = nanosecs % 1000000000;
+
42  break;
+
43  case (ONESHOT):
+
44  //fires once after specified period of nanoseconds
+
45  its.it_value.tv_sec = nanosecs / 1000000000;
+
46  its.it_value.tv_nsec = nanosecs % 1000000000;
+
47  its.it_interval.tv_sec = 0;
+
48  its.it_interval.tv_nsec = 0;
+
49  break;
+
50  }
+
51  if (timer_settime(timerid, 0, &its, NULL) == -1)
+
52  throw("Could not start timer");
+
53 }
+
54 
+
55 void CppTimer::startms(long millisecs, cppTimerType_t type)
+
56 {
+
57  switch (type)
+
58  {
+
59  case (PERIODIC):
+
60  //starts after specified period of milliseconds
+
61  its.it_value.tv_sec = millisecs / 1000;
+
62  its.it_value.tv_nsec = (millisecs % 1000) * 1000000;
+
63  its.it_interval.tv_sec = millisecs / 1000;
+
64  its.it_interval.tv_nsec = (millisecs % 1000) * 1000000;
+
65  break;
+
66  case (ONESHOT):
+
67  //fires once after specified period of milliseconds
+
68  its.it_value.tv_sec = millisecs / 1000;
+
69  its.it_value.tv_nsec = (millisecs % 1000) * 1000000;
+
70  its.it_interval.tv_sec = 0;
+
71  its.it_interval.tv_nsec = 0;
+
72  break;
+
73  }
+
74  if (timer_settime(timerid, 0, &its, NULL) == -1)
+
75  throw("Could not start timer");
+
76 }
+
77 
+ +
79 {
+
80  // disarm
+
81  struct itimerspec itsnew;
+
82  itsnew.it_value.tv_sec = 0;
+
83  itsnew.it_value.tv_nsec = 0;
+
84  itsnew.it_interval.tv_sec = 0;
+
85  itsnew.it_interval.tv_nsec = 0;
+
86  timer_settime(timerid, 0, &itsnew, &its);
+
87 }
+
88 
+ +
90 {
+
91  stop();
+
92  // delete the timer
+
93  timer_delete(timerid);
+
94  // default action for signal handling
+
95  signal(sev.sigev_signo, SIG_IGN);
+
96 }
+
cppTimerType_t
Definition: CppTimer.h:25
+
@ ONESHOT
Definition: CppTimer.h:27
+
@ PERIODIC
Definition: CppTimer.h:26
+
#define CLOCKID
Definition: CppTimer.h:19
+
virtual void startms(long millisecs, cppTimerType_t type=PERIODIC)
Definition: CppTimer.cpp:55
+
CppTimer(const int signo=SIGRTMIN)
Definition: CppTimer.cpp:12
+
virtual void stop()
Definition: CppTimer.cpp:78
+
struct sigaction sa
Definition: CppTimer.h:91
+
virtual void startns(long nanosecs, cppTimerType_t type=PERIODIC)
Definition: CppTimer.cpp:32
+
struct itimerspec its
Definition: CppTimer.h:92
+
static void handler(int, siginfo_t *si, void *)
Definition: CppTimer.h:94
+
timer_t timerid
Definition: CppTimer.h:89
+
virtual ~CppTimer()
Definition: CppTimer.cpp:89
+
struct sigevent sev
Definition: CppTimer.h:90
+
+
+ + + + diff --git a/docs/_cpp_timer_8h.html b/docs/_cpp_timer_8h.html new file mode 100644 index 0000000..eee20cf --- /dev/null +++ b/docs/_cpp_timer_8h.html @@ -0,0 +1,200 @@ + + + + + + + +DreamHacker: include/CppTimer.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CppTimer.h File Reference
+
+
+
#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <signal.h>
+#include <time.h>
+
+Include dependency graph for CppTimer.h:
+
+
+ + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  CppTimer
 
+ + + +

+Macros

#define CLOCKID   CLOCK_MONOTONIC
 
+ + + +

+Enumerations

enum  cppTimerType_t { PERIODIC +, ONESHOT + }
 
+

Macro Definition Documentation

+ +

◆ CLOCKID

+ +
+
+ + + + +
#define CLOCKID   CLOCK_MONOTONIC
+
+

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

+

(C) 2020-2021, Bernd Porr mail@.nosp@m.bern.nosp@m.porr..nosp@m.me.u.nosp@m.k

+

This is inspired by the timer_create man page.

+ +

Definition at line 19 of file CppTimer.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ cppTimerType_t

+ +
+
+ + + + +
enum cppTimerType_t
+
+

Enumeration of CppTimer types

+ + + +
Enumerator
PERIODIC 
ONESHOT 
+ +

Definition at line 24 of file CppTimer.h.

+
25 {
+
26  PERIODIC,
+
27  ONESHOT
+
28 };
+
@ ONESHOT
Definition: CppTimer.h:27
+
@ PERIODIC
Definition: CppTimer.h:26
+
+
+
+
+
+ + + + diff --git a/docs/_cpp_timer_8h.js b/docs/_cpp_timer_8h.js new file mode 100644 index 0000000..1fc3ca8 --- /dev/null +++ b/docs/_cpp_timer_8h.js @@ -0,0 +1,9 @@ +var _cpp_timer_8h = +[ + [ "CppTimer", "class_cpp_timer.html", "class_cpp_timer" ], + [ "CLOCKID", "_cpp_timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7", null ], + [ "cppTimerType_t", "_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790a", [ + [ "PERIODIC", "_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aae4379d044711537d9ce3b3b58c575c58", null ], + [ "ONESHOT", "_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aa2724fa87f252403cd2c93f7437f34fd5", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/_cpp_timer_8h__dep__incl.map b/docs/_cpp_timer_8h__dep__incl.map new file mode 100644 index 0000000..35f6816 --- /dev/null +++ b/docs/_cpp_timer_8h__dep__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/_cpp_timer_8h__dep__incl.md5 b/docs/_cpp_timer_8h__dep__incl.md5 new file mode 100644 index 0000000..ee175a8 --- /dev/null +++ b/docs/_cpp_timer_8h__dep__incl.md5 @@ -0,0 +1 @@ +a40f3357c66a2d3f4cda8dcf9e96b308 \ No newline at end of file diff --git a/docs/_cpp_timer_8h__dep__incl.png b/docs/_cpp_timer_8h__dep__incl.png new file mode 100644 index 0000000..033a492 Binary files /dev/null and b/docs/_cpp_timer_8h__dep__incl.png differ diff --git a/docs/_cpp_timer_8h__incl.map b/docs/_cpp_timer_8h__incl.map new file mode 100644 index 0000000..5b02516 --- /dev/null +++ b/docs/_cpp_timer_8h__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/_cpp_timer_8h__incl.md5 b/docs/_cpp_timer_8h__incl.md5 new file mode 100644 index 0000000..fcb3e91 --- /dev/null +++ b/docs/_cpp_timer_8h__incl.md5 @@ -0,0 +1 @@ +89681e987be05c2d74ed792b9181d3d7 \ No newline at end of file diff --git a/docs/_cpp_timer_8h__incl.png b/docs/_cpp_timer_8h__incl.png new file mode 100644 index 0000000..46c98ee Binary files /dev/null and b/docs/_cpp_timer_8h__incl.png differ diff --git a/docs/_cpp_timer_8h_source.html b/docs/_cpp_timer_8h_source.html new file mode 100644 index 0000000..4183661 --- /dev/null +++ b/docs/_cpp_timer_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +DreamHacker: include/CppTimer.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CppTimer.h
+
+
+Go to the documentation of this file.
1 #ifndef __CPP_TIMER_H_
+
2 #define __CPP_TIMER_H_
+
3 
+
13 #include <stdlib.h>
+
14 #include <unistd.h>
+
15 #include <stdio.h>
+
16 #include <signal.h>
+
17 #include <time.h>
+
18 
+
19 #define CLOCKID CLOCK_MONOTONIC
+
20 
+ +
25 {
+ +
27  ONESHOT
+
28 };
+
29 
+
34 class CppTimer
+
35 {
+
36 
+
37 public:
+
45  CppTimer(const int signo = SIGRTMIN);
+
46 
+
56  virtual void startns(long nanosecs, cppTimerType_t type = PERIODIC);
+
57 
+
67  virtual void startms(long millisecs, cppTimerType_t type = PERIODIC);
+
68 
+
73  virtual void stop();
+
74 
+
79  virtual ~CppTimer();
+
80 
+
81 protected:
+
86  virtual void timerEvent() = 0;
+
87 
+
88 private:
+
89  timer_t timerid = 0;
+
90  struct sigevent sev;
+
91  struct sigaction sa;
+
92  struct itimerspec its;
+
93 
+
94  inline static void handler(int, siginfo_t *si, void *)
+
95  {
+
96  (reinterpret_cast<CppTimer *>(si->si_value.sival_ptr))->timerEvent();
+
97  }
+
98 };
+
99 
+
100 #endif
+
cppTimerType_t
Definition: CppTimer.h:25
+
@ ONESHOT
Definition: CppTimer.h:27
+
@ PERIODIC
Definition: CppTimer.h:26
+ +
virtual void startms(long millisecs, cppTimerType_t type=PERIODIC)
Definition: CppTimer.cpp:55
+
CppTimer(const int signo=SIGRTMIN)
Definition: CppTimer.cpp:12
+
virtual void stop()
Definition: CppTimer.cpp:78
+
struct sigaction sa
Definition: CppTimer.h:91
+
virtual void startns(long nanosecs, cppTimerType_t type=PERIODIC)
Definition: CppTimer.cpp:32
+
struct itimerspec its
Definition: CppTimer.h:92
+
static void handler(int, siginfo_t *si, void *)
Definition: CppTimer.h:94
+
timer_t timerid
Definition: CppTimer.h:89
+
virtual ~CppTimer()
Definition: CppTimer.cpp:89
+
struct sigevent sev
Definition: CppTimer.h:90
+
virtual void timerEvent()=0
+
+
+ + + + diff --git a/docs/_cpp_timer_callback_8h.html b/docs/_cpp_timer_callback_8h.html new file mode 100644 index 0000000..d5d0c1a --- /dev/null +++ b/docs/_cpp_timer_callback_8h.html @@ -0,0 +1,127 @@ + + + + + + + +DreamHacker: include/CppTimerCallback.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CppTimerCallback.h File Reference
+
+
+
#include <stdio.h>
+#include "CppTimer.h"
+#include <unistd.h>
+
+Include dependency graph for CppTimerCallback.h:
+
+
+ + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

class  CppTimerCallback
 
class  CppTimerCallback::Runnable
 
+
+
+ + + + diff --git a/docs/_cpp_timer_callback_8h__incl.map b/docs/_cpp_timer_callback_8h__incl.map new file mode 100644 index 0000000..f21956d --- /dev/null +++ b/docs/_cpp_timer_callback_8h__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/_cpp_timer_callback_8h__incl.md5 b/docs/_cpp_timer_callback_8h__incl.md5 new file mode 100644 index 0000000..714bc8c --- /dev/null +++ b/docs/_cpp_timer_callback_8h__incl.md5 @@ -0,0 +1 @@ +a779148340c5fb639304b8783e0577e8 \ No newline at end of file diff --git a/docs/_cpp_timer_callback_8h__incl.png b/docs/_cpp_timer_callback_8h__incl.png new file mode 100644 index 0000000..0459955 Binary files /dev/null and b/docs/_cpp_timer_callback_8h__incl.png differ diff --git a/docs/_cpp_timer_callback_8h_source.html b/docs/_cpp_timer_callback_8h_source.html new file mode 100644 index 0000000..9e2a94f --- /dev/null +++ b/docs/_cpp_timer_callback_8h_source.html @@ -0,0 +1,143 @@ + + + + + + + +DreamHacker: include/CppTimerCallback.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CppTimerCallback.h
+
+
+Go to the documentation of this file.
1 #ifndef __CPP_TIMER_CALLBACK
+
2 #define __CPP_TIMER_CALLBACK
+
3 #include <stdio.h>
+
4 #include "CppTimer.h"
+
5 #include <unistd.h>
+
6 
+
7 
+
8 class CppTimerCallback : public CppTimer {
+
9 
+
10 public:
+
11  class Runnable {
+
12  public:
+
13  virtual void run() = 0;
+
14  };
+
15 
+ + +
18  }
+
19 
+ +
21  cppTimerEventRunnable = NULL;
+
22  }
+
23 
+
24  void timerEvent() {
+ + +
27  }
+
28  }
+
29 
+
30 private:
+ +
32 
+
33 };
+
34 
+
35 
+
36 #endif
+ + + + +
void unregisterEventRunnable()
+
Runnable * cppTimerEventRunnable
+
void registerEventRunnable(Runnable &h)
+ + +
+
+ + + + diff --git a/docs/_pulse_sensor_8h.html b/docs/_pulse_sensor_8h.html new file mode 100644 index 0000000..b77a92f --- /dev/null +++ b/docs/_pulse_sensor_8h.html @@ -0,0 +1,178 @@ + + + + + + + +DreamHacker: include/PulseSensor.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
PulseSensor.h File Reference
+
+
+
#include "CppTimer.h"
+
+Include dependency graph for PulseSensor.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

class  SensorCallback
 
class  SensorTimer
 
class  SenseWindow
 
+ + + + + +

+Macros

#define BASE   100
 
#define SPI_CHAN   0
 
+

Macro Definition Documentation

+ +

◆ BASE

+ +
+
+ + + + +
#define BASE   100
+
+

MCP3004/8 SETTINGS

+ +

Definition at line 7 of file PulseSensor.h.

+ +
+
+ +

◆ SPI_CHAN

+ +
+
+ + + + +
#define SPI_CHAN   0
+
+ +

Definition at line 8 of file PulseSensor.h.

+ +
+
+
+
+ + + + diff --git a/docs/_pulse_sensor_8h.js b/docs/_pulse_sensor_8h.js new file mode 100644 index 0000000..3c3e674 --- /dev/null +++ b/docs/_pulse_sensor_8h.js @@ -0,0 +1,8 @@ +var _pulse_sensor_8h = +[ + [ "SensorCallback", "class_sensor_callback.html", "class_sensor_callback" ], + [ "SensorTimer", "class_sensor_timer.html", "class_sensor_timer" ], + [ "SenseWindow", "class_sense_window.html", "class_sense_window" ], + [ "BASE", "_pulse_sensor_8h.html#a79bcfb6bde984f42d1124b068a509af7", null ], + [ "SPI_CHAN", "_pulse_sensor_8h.html#ae915de38397fbdc90276fa44e148c686", null ] +]; \ No newline at end of file diff --git a/docs/_pulse_sensor_8h__dep__incl.map b/docs/_pulse_sensor_8h__dep__incl.map new file mode 100644 index 0000000..34f8344 --- /dev/null +++ b/docs/_pulse_sensor_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/_pulse_sensor_8h__dep__incl.md5 b/docs/_pulse_sensor_8h__dep__incl.md5 new file mode 100644 index 0000000..e784176 --- /dev/null +++ b/docs/_pulse_sensor_8h__dep__incl.md5 @@ -0,0 +1 @@ +e71da5e8c80891bdf5110704697c23e4 \ No newline at end of file diff --git a/docs/_pulse_sensor_8h__dep__incl.png b/docs/_pulse_sensor_8h__dep__incl.png new file mode 100644 index 0000000..244a7ea Binary files /dev/null and b/docs/_pulse_sensor_8h__dep__incl.png differ diff --git a/docs/_pulse_sensor_8h__incl.map b/docs/_pulse_sensor_8h__incl.map new file mode 100644 index 0000000..0bae0b8 --- /dev/null +++ b/docs/_pulse_sensor_8h__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/_pulse_sensor_8h__incl.md5 b/docs/_pulse_sensor_8h__incl.md5 new file mode 100644 index 0000000..36b5158 --- /dev/null +++ b/docs/_pulse_sensor_8h__incl.md5 @@ -0,0 +1 @@ +4f634fac601513f167a92eb9386dabc9 \ No newline at end of file diff --git a/docs/_pulse_sensor_8h__incl.png b/docs/_pulse_sensor_8h__incl.png new file mode 100644 index 0000000..f5f6759 Binary files /dev/null and b/docs/_pulse_sensor_8h__incl.png differ diff --git a/docs/_pulse_sensor_8h_source.html b/docs/_pulse_sensor_8h_source.html new file mode 100644 index 0000000..9efdbaf --- /dev/null +++ b/docs/_pulse_sensor_8h_source.html @@ -0,0 +1,569 @@ + + + + + + + +DreamHacker: include/PulseSensor.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
PulseSensor.h
+
+
+Go to the documentation of this file.
1 #include "CppTimer.h"
+
2 
+
3 
+
7 #define BASE 100
+
8 #define SPI_CHAN 0
+
9 
+
10 
+ +
19 public:
+
23  virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold) = 0;
+
24 };
+
25 
+
31 class SensorTimer : public CppTimer {
+
32  private:
+ + + + +
37  int Signal;
+
38  unsigned int sampleCounter;
+ +
40  int thresh = 550;
+
41  int P = 512; // set P default
+
42  int T = 512; // set T default
+
43  int firstBeat = 1; // set these to avoid noise
+
44  int secondBeat = 0; // when we get the heartbeat back
+
45  int QS = 0;
+
46  int rate[10];
+
47  int BPM = 0;
+
48  int IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM)
+
49  int Pulse = 0;
+
50  int amp = 100; // beat amplitude 1/10 of input range.
+
51  int call_time_period = 2000; //in microseconds 2 milli s
+
52  /*
+
53  * Variables to analyze sleep in sleep detection
+
54  */
+
55 
+
59  time_t nightTime;
+
60 
+
65  time_t wakeTime;
+
66 
+
70  int bpmThreshold = 77;
+
71 
+
78  bool maybeSleep = 0;
+
79 
+
84  time_t surelySleptTime = 2;
+
85 
+
90  bool sleep;
+
91 
+ +
96 
+
97  int countdown = 0;
+
98 
+
104  bool is_audio_playing = 0;
+
105 
+ +
111 
+
116  pid_t audio_pid;
+
117 
+
121  char audio_name[500];
+
122 
+
126  bool is_simulation = 0;
+
127 
+ +
132 
+
136  time_t period_of_simulation = 60*1; //1 minute duration
+
137  public:
+
146  SensorTimer(int, bool, bool);
+
147  void setCallback(SensorCallback* cb);
+
152  void timerEvent();
+
153 
+
157  void initPulseSensorVariables(void);
+
158 
+
162  void getPulse(void);
+
163 
+
172  bool analyzeBeatsForSleep(int bpm);
+
173 
+
177  void initializeVariablesForSleep(void);
+
178 
+
183  void audioprocess();
+
184 
+
190  pid_t play_audio(char* audio_name);
+
191 
+
195  void kill_the_pid(pid_t x);
+
196 
+ + +
202 
+
206  void setPeriodOfSimulatedWave(int);
+
207  // new funcs
+
208 
+
212  void setSurelySleptTime(int);
+
213 
+
217  void setNigtTimeToNow();
+
218 
+
223  void stopNew();
+
224 };
+
225 
+
226 SensorTimer::SensorTimer(int l_bpmThreshold, bool l_simulation, bool l_local_audio ){
+
227 
+
228  is_simulation = l_simulation;
+
229  bpmThreshold = l_bpmThreshold;
+
230  play_audio_locally = l_local_audio;
+
231 
+ + +
234  FILE *fptr;
+
235  if ((fptr = fopen("audio.txt", "r")) == NULL) {
+
236  printf("Error! opening audio.txt");
+
237  play_audio_locally = 0;
+
238  }else{
+
239  fscanf(fptr,"%s", audio_name);
+
240  fclose(fptr);
+
241  play_audio_locally = 1;
+
242  }
+
243 }
+ +
245  surelySleptTime = t;
+
246 }
+ +
248  nightTime = time(NULL) - 60;
+
249  wakeTime = nightTime + 60*60*8;
+
250 }
+ +
252  period_of_simulation = period;
+
253 }
+
254 
+ +
256  if(audio_pid > 0)
+
257  kill(audio_pid, SIGTERM);
+
258  stop();
+
259 }
+
260 
+ +
262  if(sleep == 1 && is_audio_playing == 0 && play_audio_locally){
+
263  is_audio_playing = 1;
+
264  printf("\n\n\nSleep is positive. Playing Audio.\n\n\n");
+ +
266  /*
+
267  * If child process then the audio is already ended, pid must kill itself safely
+
268  */
+
269  if(audio_pid == 0){
+
270  raise(SIGKILL);
+
271  }else{
+
272  /*
+
273  * If parent process then continue and put the is_audio_playing flag to be true
+
274  */
+
275  is_audio_playing = 1;
+
276  printf("\n\n\nAudio pid is %d\n\n\n", audio_pid);
+
277  }
+
278  }
+
279  else if(is_audio_playing == 1 && sleep == 0 && play_audio_locally && audio_pid > 0){
+
280  /*
+
281  * When the person wakes up again kill the pid which runs the audio
+
282  */
+
283  printf("\n\n\n Killing the Audio as maybe the person has woken up\n\n\n");
+ +
285  is_audio_playing = 0;
+
286 
+
287  }else if(is_audio_playing == 1 && sleep == 1 && audio_pid > 0 && kill(audio_pid, 0) < 0){
+
288  //the audio has ended.
+
289  is_audio_playing == 0;
+
290  }
+
291 }
+
292 pid_t SensorTimer::play_audio(char* audio_name){
+
293  pid_t audio_pid_local;
+
294  if(0 == (audio_pid_local = fork())){
+
295  //child process
+
296  //printf("reached here\n");
+
297  execlp("mpg123", "mpg123", "-q", audio_name, 0);
+
298  is_audio_playing = 1;
+
299  }
+
300  is_audio_playing = 1;
+
301  return audio_pid_local;
+
302 }
+
303 
+ +
305  //char kil[100] = "kill -9 ";
+
306  //sprintf(kil,"%s%d",kil, x);
+
307  //system(kil);
+
308  kill(x,SIGINT);
+
309 }
+
310 
+ +
315  //printf("pointer: %p\n", cb);
+
316  sensorCallback = cb;
+
317 }
+
318 
+ +
320  getPulse();
+
321  if(is_simulation)
+ + +
324  audioprocess();
+
325  //Main print message
+
326  printf("BPM Threshold is: %d, BPM is: %d, Maybe he is asleep: %d, "
+
327  "Sleep is: %d, Audio_On: %d, Countdown: %d\r", bpmThreshold, BPM, maybeSleep, sleep, is_audio_playing, countdown);
+
328  fflush(stdout);
+
329  if (nullptr != sensorCallback) {
+ +
331  }
+
332  fflush(stdout);
+
333 }
+
334 
+ +
336  if(simulation_started == 0){
+
337  start_of_simulation = time(NULL);
+
338  simulation_started = 1;
+
339  }
+
340  int begin_bpm = 80;
+
341  int end_bpm = 60;
+
342  //time_t period_of_simulation = 60*1; //5 minute duration
+
343  float slope = (float)(end_bpm - begin_bpm)/(float)(period_of_simulation/2);
+
344  int t = (time(NULL) - start_of_simulation)%period_of_simulation;
+
345  //Downwards
+
346  int sim_bpm = begin_bpm;
+
347  //printf("slope is %f\n",slope);
+
348  if(t < period_of_simulation/2)
+
349  sim_bpm = (int)(slope*t) + begin_bpm;
+
350  //Upwards
+
351  else if(t >= period_of_simulation/2 && t <= period_of_simulation){
+
352  t = t - (period_of_simulation/2);
+
353  sim_bpm = -1 * (int)(slope*t) + end_bpm;
+
354  }
+
355  BPM = sim_bpm;
+
356 }
+
357 
+ +
362 
+
363  wiringPiSetup(); //use the wiringPi pin numbers
+
364  mcp3004Setup(BASE,SPI_CHAN); // setup the mcp3004 library
+
365 
+
366 
+
367  for (int i = 0; i < 10; ++i) {
+
368  rate[i] = 0;
+
369  }
+
370  QS = 0;
+
371  BPM = 0;
+
372  IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM)
+
373  Pulse = 0;
+
374  sampleCounter = 0;
+
375  lastBeatTime = 0;
+
376  P = 512; // peak at 1/2 the input range of 0..1023
+
377  T = 512; // trough at 1/2 the input range.
+
378  threshSetting = 550; // used to seed and reset the thresh variable
+
379  thresh = 550; // threshold a little above the trough
+
380  amp = 100; // beat amplitude 1/10 of input range.
+
381  firstBeat = 1; // looking for the first beat
+
382  secondBeat = 0; // not yet looking for the second beat in a row
+
383  lastTime = micros();
+ +
385  call_time_period = 2000; //in microseconds 2 milli s
+
386 }
+
387 
+ +
392 
+
393  thisTime = micros();
+
394  Signal = analogRead(BASE);
+ +
396  lastTime = thisTime;
+
397 
+
398 
+
399  sampleCounter += 2; // keep track of the time in mS with this variable
+
400  int N = sampleCounter - lastBeatTime; // monitor the time since the last beat to avoid noise
+
401 
+
402 
+
403  // find the peak and trough of the pulse wave
+
404  if (Signal < thresh && N > (IBI / 5) * 3) { // avoid dichrotic noise by waiting 3/5 of last IBI
+
405  if (Signal < T) { // T is the trough
+
406  T = Signal; // keep track of lowest point in pulse wave
+
407  }
+
408  }
+
409 
+
410  if (Signal > thresh && Signal > P) { // thresh condition helps avoid noise
+
411  P = Signal; // P is the peak
+
412  } // keep track of highest point in pulse wave
+
413 
+
414  // NOW IT'S TIME TO LOOK FOR THE HEART BEAT
+
415  // signal surges up in value every time there is a pulse
+
416  if (N > 250) { // avoid high frequency noise
+
417  if ( (Signal > thresh) && (Pulse == 0) && (N > ((IBI / 5) * 3)) ) {
+
418  Pulse = 1; // set the Pulse flag when we think there is a pulse
+
419  IBI = sampleCounter - lastBeatTime; // measure time between beats in mS
+
420  lastBeatTime = sampleCounter; // keep track of time for next pulse
+
421 
+
422  if (secondBeat) { // if this is the second beat, if secondBeat == TRUE
+
423  secondBeat = 0; // clear secondBeat flag
+
424  for (int i = 0; i <= 9; i++) { // seed the running total to get a realisitic BPM at startup
+
425  rate[i] = IBI;
+
426  }
+
427  }
+
428 
+
429  if (firstBeat) { // if it's the first time we found a beat, if firstBeat == TRUE
+
430  firstBeat = 0; // clear firstBeat flag
+
431  secondBeat = 1; // set the second beat flag
+
432  // IBI value is unreliable so discard it
+
433  return;
+
434  }
+
435 
+
436 
+
437  // keep a running total of the last 10 IBI values
+
438  int runningTotal = 0; // clear the runningTotal variable
+
439 
+
440  for (int i = 0; i <= 8; i++) { // shift data in the rate array
+
441  rate[i] = rate[i + 1]; // and drop the oldest IBI value
+
442  runningTotal += rate[i]; // add up the 9 oldest IBI values
+
443  }
+
444 
+
445  rate[9] = IBI; // add the latest IBI to the rate array
+
446  runningTotal += rate[9]; // add the latest IBI to runningTotal
+
447  runningTotal /= 10; // average the last 10 IBI values
+
448  BPM = 60000 / runningTotal; // how many beats can fit into a minute? that's BPM!
+
449  QS = 1; // set Quantified Self flag (we detected a beat)
+
450  //fadeLevel = MAX_FADE_LEVEL; // If we're fading, re-light that LED.
+
451  }
+
452  }
+
453 
+
454  if (Signal < thresh && Pulse == 1) { // when the values are going down, the beat is over
+
455  Pulse = 0; // reset the Pulse flag so we can do it again
+
456  amp = P - T; // get amplitude of the pulse wave
+
457  thresh = amp / 2 + T; // set thresh at 50% of the amplitude
+
458  P = thresh; // reset these for next time
+
459  T = thresh;
+
460  }
+
461 
+
462  if (N > 2500) { // if 2.5 seconds go by without a beat
+
463  thresh = threshSetting; // set thresh default
+
464  P = 512; // set P default
+
465  T = 512; // set T default
+
466  lastBeatTime = sampleCounter; // bring the lastBeatTime up to date
+
467  firstBeat = 1; // set these to avoid noise
+
468  secondBeat = 0; // when we get the heartbeat back
+
469  QS = 0;
+
470  BPM = 0;
+
471  IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM)
+
472  Pulse = 0;
+
473  amp = 100; // beat amplitude 1/10 of input range.
+
474 
+
475  }
+
476 
+
477  duration = micros()-thisTime;
+
478 }
+ +
480  time_t current_time = time(NULL);
+
481  struct tm *time_split = localtime(&current_time);
+
482  struct tm night_time_split = {0, 0, 22, time_split->tm_mday,
+
483  time_split->tm_mon, time_split->tm_year, time_split->tm_wday, time_split->tm_yday, time_split->tm_isdst};
+
484  nightTime = mktime(&night_time_split);
+
485  if(is_simulation)
+
486  nightTime = time(NULL) - 60;
+
487  time_t estimatedSleepLength = 60*60*8;
+
488  wakeTime = nightTime + estimatedSleepLength;
+
489 }
+
490 
+ +
500 {
+
501  bool sleep_local = 0;
+
502  time_t maybeSleepTime;
+
503  time_t now = time(NULL);
+
504  //printf("BPM is %d, now is %d, nightTime is %d wakeTime is %d\n", BPM, now, nightTime, wakeTime);
+
505  if (now > nightTime && now < wakeTime) {
+
506  if (bpm < bpmThreshold && maybeSleep == 0) {
+
507  printf("\n\n\nmaybesleep Positive\n\n\n");
+
508  startOfProspectiveSleep = time(NULL);
+
509  maybeSleep = 1;
+
510  }
+
511  if (bpm < bpmThreshold && maybeSleep == 1) {
+
512  maybeSleepTime = time(NULL) - startOfProspectiveSleep;
+
513  countdown = surelySleptTime - maybeSleepTime;
+
514  if (maybeSleepTime > surelySleptTime) {
+
515  sleep_local = 1;
+
516  }
+
517  }
+
518  if (bpm > bpmThreshold && maybeSleep == 1) {
+
519  maybeSleep = 0;
+
520  }
+
521  }
+
522  else {
+
523  sleep_local = 0;
+
524  }
+
525  return sleep_local;
+
526 }
+
527 
+
528 
+
529 
+
530 
+
531 class SenseWindow : public MainWindow{
+
532  private:
+
533  int Signal;
+
534  public:
+ +
536  }
+
537  void timerEvent( QTimerEvent * ) {
+
538  Signal = analogRead(BASE);
+ +
540  callPlot();
+
541  }
+
542 };
+ +
#define BASE
Definition: PulseSensor.h:7
+
#define SPI_CHAN
Definition: PulseSensor.h:8
+ +
virtual void stop()
Definition: CppTimer.cpp:78
+ +
void addRealtimeSample(double v)
Definition: mainwindow.cpp:236
+
void callPlot()
Definition: mainwindow.cpp:119
+ +
void timerEvent(QTimerEvent *)
Definition: PulseSensor.h:537
+ + + +
virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold)=0
+ +
pid_t play_audio(char *audio_name)
Definition: PulseSensor.h:292
+
unsigned int lastTime
Definition: PulseSensor.h:34
+
void initializeVariablesForSleep(void)
Definition: PulseSensor.h:479
+
time_t period_of_simulation
Definition: PulseSensor.h:136
+
int call_time_period
Definition: PulseSensor.h:51
+ + +
unsigned int elapsedTime
Definition: PulseSensor.h:34
+
void kill_the_pid(pid_t x)
Definition: PulseSensor.h:304
+ + +
void setCallback(SensorCallback *cb)
Definition: PulseSensor.h:314
+
bool analyzeBeatsForSleep(int bpm)
Definition: PulseSensor.h:499
+
time_t nightTime
Definition: PulseSensor.h:59
+
int bpmThreshold
Definition: PulseSensor.h:70
+
int lastBeatTime
Definition: PulseSensor.h:39
+ +
void getPulse(void)
Definition: PulseSensor.h:391
+
void setNigtTimeToNow()
Definition: PulseSensor.h:247
+
time_t start_of_simulation
Definition: PulseSensor.h:201
+
int dataRequestStart
Definition: PulseSensor.h:36
+ +
bool maybeSleep
Definition: PulseSensor.h:78
+ +
void timerEvent()
Definition: PulseSensor.h:319
+
int threshSetting
Definition: PulseSensor.h:39
+ +
char audio_name[500]
Definition: PulseSensor.h:121
+
unsigned int sampleCounter
Definition: PulseSensor.h:38
+ +
time_t surelySleptTime
Definition: PulseSensor.h:84
+
void initPulseSensorVariables(void)
Definition: PulseSensor.h:361
+
int timeOutStart
Definition: PulseSensor.h:36
+ +
int secondBeat
Definition: PulseSensor.h:44
+ +
time_t wakeTime
Definition: PulseSensor.h:65
+ +
pid_t audio_pid
Definition: PulseSensor.h:116
+
void stopNew()
Definition: PulseSensor.h:255
+
unsigned int eventCounter
Definition: PulseSensor.h:34
+
int rate[10]
Definition: PulseSensor.h:46
+
unsigned int thisTime
Definition: PulseSensor.h:34
+
bool play_audio_locally
Definition: PulseSensor.h:110
+
bool is_audio_playing
Definition: PulseSensor.h:104
+ + +
int secondTime
Definition: PulseSensor.h:35
+
bool is_simulation
Definition: PulseSensor.h:126
+
time_t startOfProspectiveSleep
Definition: PulseSensor.h:95
+
SensorCallback * sensorCallback
Definition: PulseSensor.h:33
+ +
void setSurelySleptTime(int)
Definition: PulseSensor.h:244
+
void audioprocess()
Definition: PulseSensor.h:261
+
void beatsPerMinuteSimulation()
Definition: PulseSensor.h:335
+
bool simulation_started
Definition: PulseSensor.h:131
+
void setPeriodOfSimulatedWave(int)
Definition: PulseSensor.h:251
+
SensorTimer(int, bool, bool)
Definition: PulseSensor.h:226
+
+
+ + + + diff --git a/docs/_r_e_a_d_m_e_8md.html b/docs/_r_e_a_d_m_e_8md.html new file mode 100644 index 0000000..6c56b9d --- /dev/null +++ b/docs/_r_e_a_d_m_e_8md.html @@ -0,0 +1,98 @@ + + + + + + + +DreamHacker: README.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
README.md File Reference
+
+
+
+
+ + + + diff --git a/docs/_s_t_r_u_c_t_u_r_e_8md.html b/docs/_s_t_r_u_c_t_u_r_e_8md.html new file mode 100644 index 0000000..5650350 --- /dev/null +++ b/docs/_s_t_r_u_c_t_u_r_e_8md.html @@ -0,0 +1,98 @@ + + + + + + + +DreamHacker: STRUCTURE.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
STRUCTURE.md File Reference
+
+
+
+
+ + + + diff --git a/docs/annotated.html b/docs/annotated.html new file mode 100644 index 0000000..dfe4724 --- /dev/null +++ b/docs/annotated.html @@ -0,0 +1,116 @@ + + + + + + + +DreamHacker: Data Structures + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+
+
+ + + + diff --git a/docs/annotated_dup.js b/docs/annotated_dup.js new file mode 100644 index 0000000..acfdd8d --- /dev/null +++ b/docs/annotated_dup.js @@ -0,0 +1,14 @@ +var annotated_dup = +[ + [ "CppTimer", "class_cpp_timer.html", "class_cpp_timer" ], + [ "CppTimerCallback", "class_cpp_timer_callback.html", "class_cpp_timer_callback" ], + [ "JSONCGIADCCallback", "class_j_s_o_n_c_g_i_a_d_c_callback.html", "class_j_s_o_n_c_g_i_a_d_c_callback" ], + [ "JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html", "class_j_s_o_n_c_g_i_handler" ], + [ "MainWindow", "class_main_window.html", "class_main_window" ], + [ "QMainWindow", "class_q_main_window.html", null ], + [ "qt_meta_stringdata_MainWindow_t", "structqt__meta__stringdata___main_window__t.html", "structqt__meta__stringdata___main_window__t" ], + [ "SenseWindow", "class_sense_window.html", "class_sense_window" ], + [ "SensorCallback", "class_sensor_callback.html", "class_sensor_callback" ], + [ "SENSORfastcgicallback", "class_s_e_n_s_o_rfastcgicallback.html", "class_s_e_n_s_o_rfastcgicallback" ], + [ "SensorTimer", "class_sensor_timer.html", "class_sensor_timer" ] +]; \ No newline at end of file diff --git a/docs/bc_s.png b/docs/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/docs/bc_s.png differ diff --git a/docs/bdwn.png b/docs/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/docs/bdwn.png differ diff --git a/docs/class_cpp_timer.html b/docs/class_cpp_timer.html new file mode 100644 index 0000000..05e8cce --- /dev/null +++ b/docs/class_cpp_timer.html @@ -0,0 +1,676 @@ + + + + + + + +DreamHacker: CppTimer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <CppTimer.h>

+
+Inheritance diagram for CppTimer:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for CppTimer:
+
+
Collaboration graph
+ + + + + + + +
+ + + + + + + + + + + + +

+Public Member Functions

 CppTimer (const int signo=SIGRTMIN)
 
virtual void startns (long nanosecs, cppTimerType_t type=PERIODIC)
 
virtual void startms (long millisecs, cppTimerType_t type=PERIODIC)
 
virtual void stop ()
 
virtual ~CppTimer ()
 
+ + + +

+Protected Member Functions

virtual void timerEvent ()=0
 
+ + + +

+Static Private Member Functions

static void handler (int, siginfo_t *si, void *)
 
+ + + + + + + + + +

+Private Attributes

timer_t timerid = 0
 
struct sigevent sev
 
struct sigaction sa
 
struct itimerspec its
 
+

Detailed Description

+

Timer class which repeatedly fires. It's wrapper around the POSIX per-process timer.

+ +

Definition at line 34 of file CppTimer.h.

+

Constructor & Destructor Documentation

+ +

◆ CppTimer()

+ +
+
+ + + + + + + + +
CppTimer::CppTimer (const int signo = SIGRTMIN)
+
+

Creates an instance of the timer and connects the signal handler to the timer. The default signal which is being used is SIGRTMIN but can be changed to other signals if other processes / threads use them.

Parameters
+ + +
signoThe signal used by the timer.
+
+
+

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

+

(C) 2020-2021, Bernd Porr mail@.nosp@m.bern.nosp@m.porr..nosp@m.me.u.nosp@m.k

+

This is inspired by the timer_create man page.

+ +

Definition at line 12 of file CppTimer.cpp.

+
13 {
+
14  // We create a static handler catches the signal SIG
+
15  sa.sa_flags = SA_SIGINFO;
+
16  sa.sa_sigaction = handler;
+
17  sigemptyset(&sa.sa_mask);
+
18  if (sigaction(signo, &sa, NULL) == -1)
+
19  throw("Could not create signal handler");
+
20 
+
21  // Create the timer
+
22  sev.sigev_notify = SIGEV_SIGNAL;
+
23  sev.sigev_signo = signo;
+
24  // Cruical is that the signal carries the pointer to this class instance here
+
25  // because the handler just handles anything that comes in!
+
26  sev.sigev_value.sival_ptr = this;
+
27  // create the timer
+
28  if (timer_create(CLOCKID, &sev, &timerid) == -1)
+
29  throw("Could not create timer");
+
30 }
+
#define CLOCKID
Definition: CppTimer.h:19
+
struct sigaction sa
Definition: CppTimer.h:91
+
static void handler(int, siginfo_t *si, void *)
Definition: CppTimer.h:94
+
timer_t timerid
Definition: CppTimer.h:89
+
struct sigevent sev
Definition: CppTimer.h:90
+
+

References CLOCKID, handler(), sa, sev, and timerid.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ ~CppTimer()

+ +
+
+ + + + + +
+ + + + + + + +
CppTimer::~CppTimer ()
+
+virtual
+
+

Destructor disarms the timer, deletes it and disconnect the signal handler.

+ +

Definition at line 89 of file CppTimer.cpp.

+
90 {
+
91  stop();
+
92  // delete the timer
+
93  timer_delete(timerid);
+
94  // default action for signal handling
+
95  signal(sev.sigev_signo, SIG_IGN);
+
96 }
+
virtual void stop()
Definition: CppTimer.cpp:78
+
+

References sev, stop(), and timerid.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+

Member Function Documentation

+ +

◆ handler()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void CppTimer::handler (int ,
siginfo_t * si,
void *  
)
+
+inlinestaticprivate
+
+ +

Definition at line 94 of file CppTimer.h.

+
95  {
+
96  (reinterpret_cast<CppTimer *>(si->si_value.sival_ptr))->timerEvent();
+
97  }
+ +
+

Referenced by CppTimer().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ startms()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void CppTimer::startms (long millisecs,
cppTimerType_t type = PERIODIC 
)
+
+virtual
+
+

Starts the timer. The timer fires first after the specified time in milliseconds and then at that interval in PERIODIC mode. In ONESHOT mode the timer fires once after the specified time in milliseconds.

Parameters
+ + + +
millisecsTime in milliseconds
typeEither PERIODIC or ONESHOT
+
+
+ +

Definition at line 55 of file CppTimer.cpp.

+
56 {
+
57  switch (type)
+
58  {
+
59  case (PERIODIC):
+
60  //starts after specified period of milliseconds
+
61  its.it_value.tv_sec = millisecs / 1000;
+
62  its.it_value.tv_nsec = (millisecs % 1000) * 1000000;
+
63  its.it_interval.tv_sec = millisecs / 1000;
+
64  its.it_interval.tv_nsec = (millisecs % 1000) * 1000000;
+
65  break;
+
66  case (ONESHOT):
+
67  //fires once after specified period of milliseconds
+
68  its.it_value.tv_sec = millisecs / 1000;
+
69  its.it_value.tv_nsec = (millisecs % 1000) * 1000000;
+
70  its.it_interval.tv_sec = 0;
+
71  its.it_interval.tv_nsec = 0;
+
72  break;
+
73  }
+
74  if (timer_settime(timerid, 0, &its, NULL) == -1)
+
75  throw("Could not start timer");
+
76 }
+
@ ONESHOT
Definition: CppTimer.h:27
+
@ PERIODIC
Definition: CppTimer.h:26
+
struct itimerspec its
Definition: CppTimer.h:92
+
+

References its, ONESHOT, PERIODIC, and timerid.

+ +

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ startns()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void CppTimer::startns (long nanosecs,
cppTimerType_t type = PERIODIC 
)
+
+virtual
+
+

Starts the timer. The timer fires first after the specified time in nanoseconds and then at that interval in PERIODIC mode. In ONESHOT mode the timer fires once after the specified time in nanoseconds.

Parameters
+ + + +
nanosecsTime in nanoseconds
typeEither PERIODIC or ONESHOT
+
+
+ +

Definition at line 32 of file CppTimer.cpp.

+
33 {
+
34  switch (type)
+
35  {
+
36  case (PERIODIC):
+
37  //starts after specified period of nanoseconds
+
38  its.it_value.tv_sec = nanosecs / 1000000000;
+
39  its.it_value.tv_nsec = nanosecs % 1000000000;
+
40  its.it_interval.tv_sec = nanosecs / 1000000000;
+
41  its.it_interval.tv_nsec = nanosecs % 1000000000;
+
42  break;
+
43  case (ONESHOT):
+
44  //fires once after specified period of nanoseconds
+
45  its.it_value.tv_sec = nanosecs / 1000000000;
+
46  its.it_value.tv_nsec = nanosecs % 1000000000;
+
47  its.it_interval.tv_sec = 0;
+
48  its.it_interval.tv_nsec = 0;
+
49  break;
+
50  }
+
51  if (timer_settime(timerid, 0, &its, NULL) == -1)
+
52  throw("Could not start timer");
+
53 }
+
+

References its, ONESHOT, PERIODIC, and timerid.

+ +
+
+ +

◆ stop()

+ +
+
+ + + + + +
+ + + + + + + +
void CppTimer::stop ()
+
+virtual
+
+

Stops the timer by disarming it. It can be re-started with start().

+ +

Definition at line 78 of file CppTimer.cpp.

+
79 {
+
80  // disarm
+
81  struct itimerspec itsnew;
+
82  itsnew.it_value.tv_sec = 0;
+
83  itsnew.it_value.tv_nsec = 0;
+
84  itsnew.it_interval.tv_sec = 0;
+
85  itsnew.it_interval.tv_nsec = 0;
+
86  timer_settime(timerid, 0, &itsnew, &its);
+
87 }
+
+

References its, and timerid.

+ +

Referenced by SensorTimer::stopNew(), and ~CppTimer().

+
+Here is the caller graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ timerEvent()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void CppTimer::timerEvent ()
+
+protectedpure virtual
+
+

Abstract function which needs to be implemented by the children. This is called every time the timer fires.

+ +

Implemented in SensorTimer, and CppTimerCallback.

+ +
+
+

Field Documentation

+ +

◆ its

+ +
+
+ + + + + +
+ + + + +
struct itimerspec CppTimer::its
+
+private
+
+ +

Definition at line 89 of file CppTimer.h.

+ +

Referenced by startms(), startns(), and stop().

+ +
+
+ +

◆ sa

+ +
+
+ + + + + +
+ + + + +
struct sigaction CppTimer::sa
+
+private
+
+ +

Definition at line 89 of file CppTimer.h.

+ +

Referenced by CppTimer().

+ +
+
+ +

◆ sev

+ +
+
+ + + + + +
+ + + + +
struct sigevent CppTimer::sev
+
+private
+
+ +

Definition at line 89 of file CppTimer.h.

+ +

Referenced by CppTimer(), and ~CppTimer().

+ +
+
+ +

◆ timerid

+ +
+
+ + + + + +
+ + + + +
timer_t CppTimer::timerid = 0
+
+private
+
+ +

Definition at line 89 of file CppTimer.h.

+ +

Referenced by CppTimer(), startms(), startns(), stop(), and ~CppTimer().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_cpp_timer.js b/docs/class_cpp_timer.js new file mode 100644 index 0000000..756a698 --- /dev/null +++ b/docs/class_cpp_timer.js @@ -0,0 +1,13 @@ +var class_cpp_timer = +[ + [ "CppTimer", "class_cpp_timer.html#a300c3075e777cb4abdc09c9704ae6f87", null ], + [ "~CppTimer", "class_cpp_timer.html#a91779a93fce7383a8d832ed481399342", null ], + [ "startms", "class_cpp_timer.html#a1fec3e463138ab01f640aec9aafc14d0", null ], + [ "startns", "class_cpp_timer.html#a6c8df87a608c7722bb9900cf925f571b", null ], + [ "stop", "class_cpp_timer.html#a4bb95ddee98a536d0818b8f6096bf7e7", null ], + [ "timerEvent", "class_cpp_timer.html#ac2665403595b6aee5f581d0ebfeb886c", null ], + [ "its", "class_cpp_timer.html#a8774fb5ba9af8f276874c1234741f106", null ], + [ "sa", "class_cpp_timer.html#a692a200df6d2c43b72ff1db76458f09f", null ], + [ "sev", "class_cpp_timer.html#a9860d3d723ad55982db50c9cde8d725a", null ], + [ "timerid", "class_cpp_timer.html#a90ff764263fdde5a0f6e53429c8cf734", null ] +]; \ No newline at end of file diff --git a/docs/class_cpp_timer__coll__graph.map b/docs/class_cpp_timer__coll__graph.map new file mode 100644 index 0000000..757515a --- /dev/null +++ b/docs/class_cpp_timer__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/class_cpp_timer__coll__graph.md5 b/docs/class_cpp_timer__coll__graph.md5 new file mode 100644 index 0000000..e21f6ef --- /dev/null +++ b/docs/class_cpp_timer__coll__graph.md5 @@ -0,0 +1 @@ +5311db59864bb041244d9ee265d47aed \ No newline at end of file diff --git a/docs/class_cpp_timer__coll__graph.png b/docs/class_cpp_timer__coll__graph.png new file mode 100644 index 0000000..6808b25 Binary files /dev/null and b/docs/class_cpp_timer__coll__graph.png differ diff --git a/docs/class_cpp_timer__inherit__graph.map b/docs/class_cpp_timer__inherit__graph.map new file mode 100644 index 0000000..65cd85f --- /dev/null +++ b/docs/class_cpp_timer__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_cpp_timer__inherit__graph.md5 b/docs/class_cpp_timer__inherit__graph.md5 new file mode 100644 index 0000000..ea4fcf8 --- /dev/null +++ b/docs/class_cpp_timer__inherit__graph.md5 @@ -0,0 +1 @@ +4f6816921bf20895809d7673cebbbf2f \ No newline at end of file diff --git a/docs/class_cpp_timer__inherit__graph.png b/docs/class_cpp_timer__inherit__graph.png new file mode 100644 index 0000000..d6aead5 Binary files /dev/null and b/docs/class_cpp_timer__inherit__graph.png differ diff --git a/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.map b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.map new file mode 100644 index 0000000..525575d --- /dev/null +++ b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.md5 b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.md5 new file mode 100644 index 0000000..cdd9866 --- /dev/null +++ b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.md5 @@ -0,0 +1 @@ +c4a6c566bd9bf914dafdd42f35882bb9 \ No newline at end of file diff --git a/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.png b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.png new file mode 100644 index 0000000..cb46550 Binary files /dev/null and b/docs/class_cpp_timer_a1fec3e463138ab01f640aec9aafc14d0_icgraph.png differ diff --git a/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.map b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.map new file mode 100644 index 0000000..bfbc601 --- /dev/null +++ b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.md5 b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.md5 new file mode 100644 index 0000000..5d956c0 --- /dev/null +++ b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.md5 @@ -0,0 +1 @@ +f10ad413d22a265d471331885696762e \ No newline at end of file diff --git a/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.png b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.png new file mode 100644 index 0000000..b267ae6 Binary files /dev/null and b/docs/class_cpp_timer_a300c3075e777cb4abdc09c9704ae6f87_cgraph.png differ diff --git a/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.map b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.map new file mode 100644 index 0000000..6f8ee75 --- /dev/null +++ b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.md5 b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.md5 new file mode 100644 index 0000000..f715529 --- /dev/null +++ b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.md5 @@ -0,0 +1 @@ +5a3dddbac8f43cafb83edbc31a1bb0ae \ No newline at end of file diff --git a/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.png b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.png new file mode 100644 index 0000000..82f051a Binary files /dev/null and b/docs/class_cpp_timer_a4bb95ddee98a536d0818b8f6096bf7e7_icgraph.png differ diff --git a/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.map b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.map new file mode 100644 index 0000000..6323913 --- /dev/null +++ b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.md5 b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.md5 new file mode 100644 index 0000000..c2adcdf --- /dev/null +++ b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.md5 @@ -0,0 +1 @@ +76d6d813afeb41a095e8921dbfa3d0c1 \ No newline at end of file diff --git a/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.png b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.png new file mode 100644 index 0000000..f1b79ff Binary files /dev/null and b/docs/class_cpp_timer_a88d7573281ac46871df398f1d85399b0_icgraph.png differ diff --git a/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.map b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.map new file mode 100644 index 0000000..3919936 --- /dev/null +++ b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.md5 b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.md5 new file mode 100644 index 0000000..604fc37 --- /dev/null +++ b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.md5 @@ -0,0 +1 @@ +838ffa9be30dfcd0a56d05a45e9199d7 \ No newline at end of file diff --git a/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.png b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.png new file mode 100644 index 0000000..92b979e Binary files /dev/null and b/docs/class_cpp_timer_a91779a93fce7383a8d832ed481399342_cgraph.png differ diff --git a/docs/class_cpp_timer_callback.html b/docs/class_cpp_timer_callback.html new file mode 100644 index 0000000..915c73f --- /dev/null +++ b/docs/class_cpp_timer_callback.html @@ -0,0 +1,308 @@ + + + + + + + +DreamHacker: CppTimerCallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CppTimerCallback Class Reference
+
+
+ +

#include <CppTimerCallback.h>

+
+Inheritance diagram for CppTimerCallback:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for CppTimerCallback:
+
+
Collaboration graph
+ + + + + + + + + +
+ + + + +

+Data Structures

class  Runnable
 
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

void registerEventRunnable (Runnable &h)
 
void unregisterEventRunnable ()
 
void timerEvent ()
 
- Public Member Functions inherited from CppTimer
 CppTimer (const int signo=SIGRTMIN)
 
virtual void startns (long nanosecs, cppTimerType_t type=PERIODIC)
 
virtual void startms (long millisecs, cppTimerType_t type=PERIODIC)
 
virtual void stop ()
 
virtual ~CppTimer ()
 
+ + + +

+Private Attributes

RunnablecppTimerEventRunnable = NULL
 
+ +

+Additional Inherited Members

+

Detailed Description

+
+

Definition at line 8 of file CppTimerCallback.h.

+

Member Function Documentation

+ +

◆ registerEventRunnable()

+ +
+
+ + + + + +
+ + + + + + + + +
void CppTimerCallback::registerEventRunnable (Runnableh)
+
+inline
+
+ +

Definition at line 16 of file CppTimerCallback.h.

+
16  {
+ +
18  }
+
Runnable * cppTimerEventRunnable
+
+

References cppTimerEventRunnable.

+ +
+
+ +

◆ timerEvent()

+ +
+
+ + + + + +
+ + + + + + + +
void CppTimerCallback::timerEvent ()
+
+inlinevirtual
+
+

Abstract function which needs to be implemented by the children. This is called every time the timer fires.

+ +

Implements CppTimer.

+ +

Definition at line 24 of file CppTimerCallback.h.

+
24  {
+ + +
27  }
+
28  }
+ +
+

References cppTimerEventRunnable, and CppTimerCallback::Runnable::run().

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ unregisterEventRunnable()

+ +
+
+ + + + + +
+ + + + + + + +
void CppTimerCallback::unregisterEventRunnable ()
+
+inline
+
+ +

Definition at line 20 of file CppTimerCallback.h.

+
20  {
+
21  cppTimerEventRunnable = NULL;
+
22  }
+
+

References cppTimerEventRunnable.

+ +
+
+

Field Documentation

+ +

◆ cppTimerEventRunnable

+ +
+
+ + + + + +
+ + + + +
Runnable* CppTimerCallback::cppTimerEventRunnable = NULL
+
+private
+
+ +

Definition at line 31 of file CppTimerCallback.h.

+ +

Referenced by registerEventRunnable(), timerEvent(), and unregisterEventRunnable().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_cpp_timer_callback.js b/docs/class_cpp_timer_callback.js new file mode 100644 index 0000000..220f019 --- /dev/null +++ b/docs/class_cpp_timer_callback.js @@ -0,0 +1,8 @@ +var class_cpp_timer_callback = +[ + [ "Runnable", "class_cpp_timer_callback_1_1_runnable.html", "class_cpp_timer_callback_1_1_runnable" ], + [ "registerEventRunnable", "class_cpp_timer_callback.html#ae6e815f1c3b65ea4f10fe0332e13acb9", null ], + [ "timerEvent", "class_cpp_timer_callback.html#af6b39f5eb8e98bfc1b301ac3f25276e9", null ], + [ "unregisterEventRunnable", "class_cpp_timer_callback.html#a29d8d5a426a3d15bca8a42c2c897f50f", null ], + [ "cppTimerEventRunnable", "class_cpp_timer_callback.html#a578cc701cee7be10f3afab2859eac74f", null ] +]; \ No newline at end of file diff --git a/docs/class_cpp_timer_callback_1_1_runnable.html b/docs/class_cpp_timer_callback_1_1_runnable.html new file mode 100644 index 0000000..342c385 --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable.html @@ -0,0 +1,159 @@ + + + + + + + +DreamHacker: CppTimerCallback::Runnable Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
CppTimerCallback::Runnable Class Referenceabstract
+
+
+ +

#include <CppTimerCallback.h>

+
+Collaboration diagram for CppTimerCallback::Runnable:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Member Functions

virtual void run ()=0
 
+

Detailed Description

+
+

Definition at line 11 of file CppTimerCallback.h.

+

Member Function Documentation

+ +

◆ run()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void CppTimerCallback::Runnable::run ()
+
+pure virtual
+
+ +

Referenced by CppTimerCallback::timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_cpp_timer_callback_1_1_runnable.js b/docs/class_cpp_timer_callback_1_1_runnable.js new file mode 100644 index 0000000..6ad9269 --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable.js @@ -0,0 +1,4 @@ +var class_cpp_timer_callback_1_1_runnable = +[ + [ "run", "class_cpp_timer_callback_1_1_runnable.html#af8d11a3b580e76431151e76ac1886e6e", null ] +]; \ No newline at end of file diff --git a/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.map b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.map new file mode 100644 index 0000000..1b241af --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.md5 b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.md5 new file mode 100644 index 0000000..538fc64 --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.md5 @@ -0,0 +1 @@ +29c9b59341e8cd1cb157546385f808fd \ No newline at end of file diff --git a/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.png b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.png new file mode 100644 index 0000000..e673359 Binary files /dev/null and b/docs/class_cpp_timer_callback_1_1_runnable__coll__graph.png differ diff --git a/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.map b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.map new file mode 100644 index 0000000..9b1887a --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.md5 b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.md5 new file mode 100644 index 0000000..546c083 --- /dev/null +++ b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.md5 @@ -0,0 +1 @@ +326b436c8e775eed293e1360c1354b5b \ No newline at end of file diff --git a/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.png b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.png new file mode 100644 index 0000000..d19cb02 Binary files /dev/null and b/docs/class_cpp_timer_callback_1_1_runnable_af8d11a3b580e76431151e76ac1886e6e_icgraph.png differ diff --git a/docs/class_cpp_timer_callback__coll__graph.map b/docs/class_cpp_timer_callback__coll__graph.map new file mode 100644 index 0000000..4272c7a --- /dev/null +++ b/docs/class_cpp_timer_callback__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/class_cpp_timer_callback__coll__graph.md5 b/docs/class_cpp_timer_callback__coll__graph.md5 new file mode 100644 index 0000000..336a0fe --- /dev/null +++ b/docs/class_cpp_timer_callback__coll__graph.md5 @@ -0,0 +1 @@ +64406d5a8816179d9ef990fa4a659e19 \ No newline at end of file diff --git a/docs/class_cpp_timer_callback__coll__graph.png b/docs/class_cpp_timer_callback__coll__graph.png new file mode 100644 index 0000000..48955e0 Binary files /dev/null and b/docs/class_cpp_timer_callback__coll__graph.png differ diff --git a/docs/class_cpp_timer_callback__inherit__graph.map b/docs/class_cpp_timer_callback__inherit__graph.map new file mode 100644 index 0000000..cf69cc9 --- /dev/null +++ b/docs/class_cpp_timer_callback__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_callback__inherit__graph.md5 b/docs/class_cpp_timer_callback__inherit__graph.md5 new file mode 100644 index 0000000..ee86fd0 --- /dev/null +++ b/docs/class_cpp_timer_callback__inherit__graph.md5 @@ -0,0 +1 @@ +af4c85bc0c783cf96d64c9c226b66902 \ No newline at end of file diff --git a/docs/class_cpp_timer_callback__inherit__graph.png b/docs/class_cpp_timer_callback__inherit__graph.png new file mode 100644 index 0000000..fb80265 Binary files /dev/null and b/docs/class_cpp_timer_callback__inherit__graph.png differ diff --git a/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.map b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.map new file mode 100644 index 0000000..89b42c7 --- /dev/null +++ b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.md5 b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.md5 new file mode 100644 index 0000000..2bccd1f --- /dev/null +++ b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.md5 @@ -0,0 +1 @@ +98c35b8cb6a13ce4aacb4a3f61ddd813 \ No newline at end of file diff --git a/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.png b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.png new file mode 100644 index 0000000..d244cf3 Binary files /dev/null and b/docs/class_cpp_timer_callback_af6b39f5eb8e98bfc1b301ac3f25276e9_cgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback.html b/docs/class_j_s_o_n_c_g_i_a_d_c_callback.html new file mode 100644 index 0000000..a837082 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback.html @@ -0,0 +1,268 @@ + + + + + + + +DreamHacker: JSONCGIADCCallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
JSONCGIADCCallback Class Reference
+
+
+
+Inheritance diagram for JSONCGIADCCallback:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for JSONCGIADCCallback:
+
+
Collaboration graph
+ + + + + + + + + +
+ + + + + + + + + +

+Public Member Functions

 JSONCGIADCCallback (SENSORfastcgicallback *argSENSORfastcgi)
 
virtual std::string getJSONString ()
 
- Public Member Functions inherited from JSONCGIHandler::GETCallback
virtual std::string getContentType ()
 
+ + + +

+Private Attributes

SENSORfastcgicallbacksensorfastcgi
 
+

Detailed Description

+

class JSONCGIADCCallback brief FastCGI Callback handles details Callback handler which returns data to the nginx server. Here, simply the current timestamp, sleeping possibility and the beats per minute is transmitted to nginx and the php application.

+ +

Definition at line 65 of file main.cpp.

+

Constructor & Destructor Documentation

+ +

◆ JSONCGIADCCallback()

+ +
+
+ + + + + +
+ + + + + + + + +
JSONCGIADCCallback::JSONCGIADCCallback (SENSORfastcgicallbackargSENSORfastcgi)
+
+inline
+
+

Constructor: argument is the ADC callback handler which keeps the data.

+ +

Definition at line 78 of file main.cpp.

+
78  {
+
79  sensorfastcgi = argSENSORfastcgi;
+
80  }
+
SENSORfastcgicallback * sensorfastcgi
Definition: main.cpp:71
+
+

References sensorfastcgi.

+ +
+
+

Member Function Documentation

+ +

◆ getJSONString()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::string JSONCGIADCCallback::getJSONString ()
+
+inlinevirtual
+
+

Gets the data sends it to the webserver. The callback creates three json entries. One with the timestamp, one with the beats and one with the sleep possibility from the sensor.

+ +

Implements JSONCGIHandler::GETCallback.

+ +

Definition at line 88 of file main.cpp.

+
89  {
+
90  JSONCGIHandler::JSONGenerator jsonGenerator;
+
91  jsonGenerator.add("epoch", (long)time(NULL));
+
92  jsonGenerator.add("beats", sensorfastcgi->beatsPerMinute);
+
93  jsonGenerator.add("sleep", sensorfastcgi->sleep);
+
94  jsonGenerator.add("bpmThreshold", sensorfastcgi->threshold);
+
95  return jsonGenerator.getJSON();
+
96  }
+ +
void add(std::string key, std::string value)
+ + + + +
+

References JSONCGIHandler::JSONGenerator::add(), SENSORfastcgicallback::beatsPerMinute, JSONCGIHandler::JSONGenerator::getJSON(), sensorfastcgi, SENSORfastcgicallback::sleep, and SENSORfastcgicallback::threshold.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+

Field Documentation

+ +

◆ sensorfastcgi

+ +
+
+ + + + + +
+ + + + +
SENSORfastcgicallback* JSONCGIADCCallback::sensorfastcgi
+
+private
+
+

Pointer to the ADC event handler because it keeps the data in this case.

+ +

Definition at line 71 of file main.cpp.

+ +

Referenced by getJSONString(), and JSONCGIADCCallback().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback.js b/docs/class_j_s_o_n_c_g_i_a_d_c_callback.js new file mode 100644 index 0000000..30af735 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback.js @@ -0,0 +1,6 @@ +var class_j_s_o_n_c_g_i_a_d_c_callback = +[ + [ "JSONCGIADCCallback", "class_j_s_o_n_c_g_i_a_d_c_callback.html#a9b02dfb7eadb7e9c8004f90bdc474e29", null ], + [ "getJSONString", "class_j_s_o_n_c_g_i_a_d_c_callback.html#a763ae66809e399f49e712a1ad68289bb", null ], + [ "sensorfastcgi", "class_j_s_o_n_c_g_i_a_d_c_callback.html#a105866e87ab653c7cddfedba74149d42", null ] +]; \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.map b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.map new file mode 100644 index 0000000..0ba0055 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.md5 b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.md5 new file mode 100644 index 0000000..dd083bf --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.md5 @@ -0,0 +1 @@ +d0656f5195d96dfd0749bd446510c274 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.png b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.png new file mode 100644 index 0000000..4bc71a7 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__coll__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.map b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.map new file mode 100644 index 0000000..b22ad00 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.md5 b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.md5 new file mode 100644 index 0000000..53b9306 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.md5 @@ -0,0 +1 @@ +d63d4d728ab355bdd67d5ed4722f98a0 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.png b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.png new file mode 100644 index 0000000..400a236 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_a_d_c_callback__inherit__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.map b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.map new file mode 100644 index 0000000..956a5f1 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.md5 b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.md5 new file mode 100644 index 0000000..9de3b87 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.md5 @@ -0,0 +1 @@ +513158fd803130078f5fbc5e7aabc894 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.png b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.png new file mode 100644 index 0000000..825b722 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_a_d_c_callback_a763ae66809e399f49e712a1ad68289bb_cgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler.html b/docs/class_j_s_o_n_c_g_i_handler.html new file mode 100644 index 0000000..ba28127 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler.html @@ -0,0 +1,627 @@ + + + + + + + +DreamHacker: JSONCGIHandler Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <json_fastcgi_web_api.h>

+
+Collaboration diagram for JSONCGIHandler:
+
+
Collaboration graph
+ + + + + + + + +
+ + + + + + + + +

+Data Structures

class  GETCallback
 
class  JSONGenerator
 
class  POSTCallback
 
+ + + + + +

+Public Member Functions

 JSONCGIHandler (GETCallback *argGetCallback, POSTCallback *argPostCallback=nullptr, const char socketpath[]="/tmp/fastcgisocket")
 
 ~JSONCGIHandler ()
 
+ + + +

+Static Public Member Functions

static std::map< std::string, std::string > postDecoder (std::string s)
 
+ + + +

+Static Private Member Functions

static void exec (JSONCGIHandler *fastCGIHandler)
 
+ + + + + + + + + + + + + +

+Private Attributes

FCGX_Request request
 
int sock_fd = 0
 
int running = 1
 
std::thread * mainThread = nullptr
 
GETCallbackgetCallback = nullptr
 
POSTCallbackpostCallback = nullptr
 
+

Detailed Description

+

C++ wrapper around fastCGI which sends and receives JSON in a jQuery friendly format.

+

Copyright (C) 2021 Bernd Porr mail@.nosp@m.bern.nosp@m.dporr.nosp@m..me..nosp@m.uk Apache License 2.0

+ +

Definition at line 25 of file json_fastcgi_web_api.h.

+

Constructor & Destructor Documentation

+ +

◆ JSONCGIHandler()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
JSONCGIHandler::JSONCGIHandler (GETCallbackargGetCallback,
POSTCallbackargPostCallback = nullptr,
const char socketpath[] = "/tmp/fastcgisocket" 
)
+
+inline
+
+

Constructor which opens the connection and starts the main thread. Provide an instance of the callback handler which returns the payload data. argPostCallback is the callback which returns received json packets as a map. The optional socketpath variable can be set to another path for the socket which talks to the webserver.

Parameters
+ + + + +
argGetCallbackCallback handler for sending JSON
argPostCallbackCallback handler for receiving JSON
socketpathPath of the socket which communicates to the webserver
+
+
+ +

Definition at line 202 of file json_fastcgi_web_api.h.

+
204  {
+
205  getCallback = argGetCallback;
+
206  postCallback = argPostCallback;
+
207  int r = curl_global_init(CURL_GLOBAL_NOTHING);
+
208  if (r) {
+
209  std::cerr << "Curl init error: " << r << "\n";
+
210  }
+
211  // set it to zero
+
212  memset(&request, 0, sizeof(FCGX_Request));
+
213  // init the connection
+
214  FCGX_Init();
+
215  // open the socket
+
216  sock_fd = FCGX_OpenSocket(socketpath, 1024);
+
217  // making sure the nginx process can read/write to it
+
218  chmod(socketpath, S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH);
+
219  // init requests so that we can accept requests
+
220  FCGX_InitRequest(&request, sock_fd, 0);
+
221  // starting main loop
+
222  mainThread = new std::thread(JSONCGIHandler::exec, this);
+
223  }
+
POSTCallback * postCallback
+
static void exec(JSONCGIHandler *fastCGIHandler)
+ + +
GETCallback * getCallback
+
std::thread * mainThread
+
+

References exec(), getCallback, mainThread, postCallback, request, and sock_fd.

+
+Here is the call graph for this function:
+
+
+ + + + + + + +
+ +
+
+ +

◆ ~JSONCGIHandler()

+ +
+
+ + + + + +
+ + + + + + + +
JSONCGIHandler::~JSONCGIHandler ()
+
+inline
+
+

Destructor which shuts down the connection to the webserver and it also terminates the thread which is waiting for requests.

+ +

Definition at line 229 of file json_fastcgi_web_api.h.

+
229  {
+
230  running = 0;
+
231  shutdown(sock_fd, SHUT_RDWR);
+
232  mainThread->join();
+
233  delete mainThread;
+
234  FCGX_Free(&request, sock_fd);
+
235  }
+ +
+

References mainThread, request, running, and sock_fd.

+ +
+
+

Member Function Documentation

+ +

◆ exec()

+ +
+
+ + + + + +
+ + + + + + + + +
static void JSONCGIHandler::exec (JSONCGIHandlerfastCGIHandler)
+
+inlinestaticprivate
+
+ +

Definition at line 238 of file json_fastcgi_web_api.h.

+
238  {
+
239  while ((fastCGIHandler->running) && (FCGX_Accept_r(&(fastCGIHandler->request)) == 0)) {
+
240  char * method = FCGX_GetParam("REQUEST_METHOD", fastCGIHandler->request.envp);
+
241  if (method == nullptr) {
+
242  fprintf(stderr,"Please add 'include fastcgi_params;' to the nginx conf.\n");
+
243  throw "JSONCGI parameters missing.\n";
+
244  }
+
245  if (strcmp(method, "GET") == 0) {
+
246  // create the header
+
247  std::string buffer = "Content-type: "+fastCGIHandler->getCallback->getContentType();
+
248  buffer = buffer + "; charset=utf-8\r\n";
+
249  buffer = buffer + "\r\n";
+
250  // append the data
+
251  buffer = buffer + fastCGIHandler->getCallback->getJSONString();
+
252  buffer = buffer + "\r\n";
+
253  // send the data to the web server
+
254  FCGX_PutStr(buffer.c_str(), buffer.length(), fastCGIHandler->request.out);
+
255  FCGX_Finish_r(&(fastCGIHandler->request));
+
256  }
+
257  if (strcmp(method, "POST") == 0) {
+
258  long reqLen = 1;
+
259  char * content_length_str = FCGX_GetParam("CONTENT_LENGTH",
+
260  fastCGIHandler->request.envp);
+
261  if (content_length_str) reqLen = atol(content_length_str)+1;
+
262  char* tmp = new char[reqLen];
+
263  FCGX_GetStr(tmp,reqLen,fastCGIHandler->request.in);
+
264  tmp[reqLen - 1] = 0;
+
265  if (nullptr != fastCGIHandler->postCallback) {
+
266  fastCGIHandler->postCallback->postString(tmp);
+
267  }
+
268  delete[] tmp;
+
269  // create the header
+
270  std::string buffer = "Content-type: text/html";
+
271  buffer = buffer + "; charset=utf-8\r\n";
+
272  buffer = buffer + "\r\n";
+
273  // append the data
+
274  buffer = buffer + "\r\n";
+
275  buffer = buffer + "<html></html>\r\n";
+
276  // send the data to the web server
+
277  FCGX_PutStr(buffer.c_str(), buffer.length(), fastCGIHandler->request.out);
+
278  FCGX_Finish_r(&(fastCGIHandler->request));
+
279  }
+
280  }
+
281  }
+
virtual std::string getJSONString()=0
+
virtual std::string getContentType()
+
virtual void postString(std::string postArg)=0
+
+

References getCallback, JSONCGIHandler::GETCallback::getContentType(), JSONCGIHandler::GETCallback::getJSONString(), postCallback, JSONCGIHandler::POSTCallback::postString(), request, and running.

+ +

Referenced by JSONCGIHandler().

+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ postDecoder()

+ +
+
+ + + + + +
+ + + + + + + + +
static std::map<std::string,std::string> JSONCGIHandler::postDecoder (std::string s)
+
+inlinestatic
+
+

Parses a POST string and returns a std::map with key/value pairs. It also converts back any xx style encoding back to chars using libcurl. Note this is a simple parser and it won't deal with nested JSON structures.

Parameters
+ + +
sThe POST string to be decoded.
+
+
+
Returns
A std::map which conains the key/value pairs.
+ +

Definition at line 154 of file json_fastcgi_web_api.h.

+
154  {
+
155  std::map<std::string,std::string> postMap;
+
156  CURL *curl = curl_easy_init();
+
157  if (NULL == curl) {
+
158  std::cerr << "Could not init curl.\n";
+
159  return postMap;
+
160  }
+
161  size_t pos = 0;
+
162  while (1) {
+
163  std::string token;
+
164  pos = s.find("&");
+
165  if (pos == std::string::npos) {
+
166  token = s;
+
167  } else {
+
168  token = s.substr(0, pos);
+
169  }
+
170  size_t pos2 = token.find("=");
+
171  if (pos2 != std::string::npos) {
+
172  std::string key = token.substr(0,pos2);
+
173  std::string value = token.substr(pos2+1,token.length());
+
174  char* valueDecoded = curl_easy_unescape( curl, value.c_str(), value.length(), NULL );
+
175  if (NULL != valueDecoded) {
+
176  for(int i = 0; i < strlen(valueDecoded); i++) {
+
177  if (valueDecoded[i] == '+') valueDecoded[i] = ' ';
+
178  }
+
179  postMap[key] = valueDecoded;
+
180  curl_free(valueDecoded);
+
181  }
+
182  }
+
183  if (pos == std::string::npos) break;
+
184  s.erase(0, pos + 1);
+
185  }
+
186  curl_easy_cleanup(curl);
+
187  return postMap;
+
188  }
+
+
+
+

Field Documentation

+ +

◆ getCallback

+ +
+
+ + + + + +
+ + + + +
GETCallback* JSONCGIHandler::getCallback = nullptr
+
+private
+
+ +

Definition at line 288 of file json_fastcgi_web_api.h.

+ +

Referenced by exec(), and JSONCGIHandler().

+ +
+
+ +

◆ mainThread

+ +
+
+ + + + + +
+ + + + +
std::thread* JSONCGIHandler::mainThread = nullptr
+
+private
+
+ +

Definition at line 287 of file json_fastcgi_web_api.h.

+ +

Referenced by JSONCGIHandler(), and ~JSONCGIHandler().

+ +
+
+ +

◆ postCallback

+ +
+
+ + + + + +
+ + + + +
POSTCallback* JSONCGIHandler::postCallback = nullptr
+
+private
+
+ +

Definition at line 289 of file json_fastcgi_web_api.h.

+ +

Referenced by exec(), and JSONCGIHandler().

+ +
+
+ +

◆ request

+ +
+
+ + + + + +
+ + + + +
FCGX_Request JSONCGIHandler::request
+
+private
+
+ +

Definition at line 284 of file json_fastcgi_web_api.h.

+ +

Referenced by exec(), JSONCGIHandler(), and ~JSONCGIHandler().

+ +
+
+ +

◆ running

+ +
+
+ + + + + +
+ + + + +
int JSONCGIHandler::running = 1
+
+private
+
+ +

Definition at line 286 of file json_fastcgi_web_api.h.

+ +

Referenced by exec(), and ~JSONCGIHandler().

+ +
+
+ +

◆ sock_fd

+ +
+
+ + + + + +
+ + + + +
int JSONCGIHandler::sock_fd = 0
+
+private
+
+ +

Definition at line 285 of file json_fastcgi_web_api.h.

+ +

Referenced by JSONCGIHandler(), and ~JSONCGIHandler().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler.js b/docs/class_j_s_o_n_c_g_i_handler.js new file mode 100644 index 0000000..cdbebb0 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler.js @@ -0,0 +1,14 @@ +var class_j_s_o_n_c_g_i_handler = +[ + [ "GETCallback", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback" ], + [ "JSONGenerator", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator" ], + [ "POSTCallback", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback" ], + [ "JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html#a9bf5a96d13949d363225561ba6ac3b56", null ], + [ "~JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30", null ], + [ "getCallback", "class_j_s_o_n_c_g_i_handler.html#a7c8b4a44e15ac57fe93b382e86899fa7", null ], + [ "mainThread", "class_j_s_o_n_c_g_i_handler.html#aca513f708ae4dc76ba70196ff25da695", null ], + [ "postCallback", "class_j_s_o_n_c_g_i_handler.html#a09ee0f555db808d07c9ee9a575780553", null ], + [ "request", "class_j_s_o_n_c_g_i_handler.html#a69dba19ef64e913fc7e969854be997c9", null ], + [ "running", "class_j_s_o_n_c_g_i_handler.html#aefa19cd01b387693ef99c5aa0c5fc093", null ], + [ "sock_fd", "class_j_s_o_n_c_g_i_handler.html#a6f696ff6856f32b3ba75a130fcbb8987", null ] +]; \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html new file mode 100644 index 0000000..9b082a3 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html @@ -0,0 +1,216 @@ + + + + + + + +DreamHacker: JSONCGIHandler::GETCallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
JSONCGIHandler::GETCallback Class Referenceabstract
+
+
+ +

#include <json_fastcgi_web_api.h>

+
+Inheritance diagram for JSONCGIHandler::GETCallback:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for JSONCGIHandler::GETCallback:
+
+
Collaboration graph
+ + + +
+ + + + + + +

+Public Member Functions

virtual std::string getJSONString ()=0
 
virtual std::string getContentType ()
 
+

Detailed Description

+

GET callback handler which needs to be implemented by the main program. This needs to provide the JSON payload as a string either by using the simple JSONGenerator or by an external library.

+ +

Definition at line 33 of file json_fastcgi_web_api.h.

+

Member Function Documentation

+ +

◆ getContentType()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::string JSONCGIHandler::GETCallback::getContentType ()
+
+inlinevirtual
+
+

The content type of the payload. That's by default "application/json" but can be overloaded if needed.

Returns
MIME type
+ +

Definition at line 47 of file json_fastcgi_web_api.h.

+
47 { return "application/json"; }
+
+

Referenced by JSONCGIHandler::exec().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ getJSONString()

+ +
+
+ + + + + +
+ + + + + + + +
virtual std::string JSONCGIHandler::GETCallback::getJSONString ()
+
+pure virtual
+
+

Needs to return the payload data sent to the web browser. Use the JSONGenerator to create the JSON or use an external json generator.

Returns
JSON data
+ +

Implemented in JSONCGIADCCallback.

+ +

Referenced by JSONCGIHandler::exec().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.js b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.js new file mode 100644 index 0000000..c929f3a --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.js @@ -0,0 +1,5 @@ +var class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback = +[ + [ "getContentType", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a4e1fee495ddeb4e24eaa5b8e767ea838", null ], + [ "getJSONString", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a2367bf5a5912e9e5599ee464e0846255", null ] +]; \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.map new file mode 100644 index 0000000..ab1708b --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.md5 new file mode 100644 index 0000000..dbc703d --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.md5 @@ -0,0 +1 @@ +9077eadc9f5e6cff21144b2608fda6e1 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.png new file mode 100644 index 0000000..60baed9 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__coll__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.map new file mode 100644 index 0000000..1391e34 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.md5 new file mode 100644 index 0000000..824183c --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.md5 @@ -0,0 +1 @@ +21ba2cbcd09d273ae731fbda9ba23212 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.png new file mode 100644 index 0000000..018a514 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback__inherit__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.map new file mode 100644 index 0000000..78507da --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.md5 new file mode 100644 index 0000000..968e305 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.md5 @@ -0,0 +1 @@ +a9a5336ebc1b07f715d186ab8b4a8548 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.png new file mode 100644 index 0000000..879e64c Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a2367bf5a5912e9e5599ee464e0846255_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.map new file mode 100644 index 0000000..bf61fd9 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.md5 new file mode 100644 index 0000000..6f77501 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.md5 @@ -0,0 +1 @@ +757115750d46707f29ac1d023d305cfc \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.png new file mode 100644 index 0000000..2bcc8ef Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback_a4e1fee495ddeb4e24eaa5b8e767ea838_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html new file mode 100644 index 0000000..21d7e53 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html @@ -0,0 +1,538 @@ + + + + + + + +DreamHacker: JSONCGIHandler::JSONGenerator Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
JSONCGIHandler::JSONGenerator Class Reference
+
+
+ +

#include <json_fastcgi_web_api.h>

+
+Collaboration diagram for JSONCGIHandler::JSONGenerator:
+
+
Collaboration graph
+ + + + + + +
+ + + + + + + + + + + + + + +

+Public Member Functions

void add (std::string key, std::string value)
 
void add (std::string key, double value)
 
void add (std::string key, float value)
 
void add (std::string key, long value)
 
void add (std::string key, int value)
 
std::string getJSON ()
 
+ + + + + +

+Private Attributes

std::string json = "{"
 
int firstEntry = 1
 
+

Detailed Description

+

Simple helper function to create a key/value json pairs for the callback function.

+ +

Definition at line 70 of file json_fastcgi_web_api.h.

+

Member Function Documentation

+ +

◆ add() [1/5]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void JSONCGIHandler::JSONGenerator::add (std::string key,
double value 
)
+
+inline
+
+

Adds a JSON entry: double

Parameters
+ + + +
keyThe JSON key
valueThe JSON value as a double
+
+
+ +

Definition at line 91 of file json_fastcgi_web_api.h.

+
91  {
+
92  if (!firstEntry) {
+
93  json = json + ", ";
+
94  }
+
95  json = json + "\"" + key + "\":";
+
96  json = json + std::to_string(value);
+
97  firstEntry = 0;
+
98  }
+ + +
+

References firstEntry, and json.

+ +
+
+ +

◆ add() [2/5]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void JSONCGIHandler::JSONGenerator::add (std::string key,
float value 
)
+
+inline
+
+

Adds a JSON entry: float

Parameters
+ + + +
keyThe JSON key
valueThe JSON value as a float
+
+
+ +

Definition at line 105 of file json_fastcgi_web_api.h.

+
105  {
+
106  add(key, (double)value);
+
107  }
+
void add(std::string key, std::string value)
+
+

References add().

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ add() [3/5]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void JSONCGIHandler::JSONGenerator::add (std::string key,
int value 
)
+
+inline
+
+

Adds a JSON entry: int

Parameters
+ + + +
keyThe JSON key
valueThe JSON value as an int
+
+
+ +

Definition at line 128 of file json_fastcgi_web_api.h.

+
128  {
+
129  add(key, (long)value);
+
130  }
+
+

References add().

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ add() [4/5]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void JSONCGIHandler::JSONGenerator::add (std::string key,
long value 
)
+
+inline
+
+

Adds a JSON entry: long int

Parameters
+ + + +
keyThe JSON key
valueThe JSON value as a long int
+
+
+ +

Definition at line 114 of file json_fastcgi_web_api.h.

+
114  {
+
115  if (!firstEntry) {
+
116  json = json + ", ";
+
117  }
+
118  json = json + "\"" + key + "\":";
+
119  json = json + std::to_string(value);
+
120  firstEntry = 0;
+
121  }
+
+

References firstEntry, and json.

+ +
+
+ +

◆ add() [5/5]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void JSONCGIHandler::JSONGenerator::add (std::string key,
std::string value 
)
+
+inline
+
+

Adds a JSON entry: string

Parameters
+ + + +
keyThe JSON key
valueThe JSON value as a string
+
+
+ +

Definition at line 77 of file json_fastcgi_web_api.h.

+
77  {
+
78  if (!firstEntry) {
+
79  json = json + ", ";
+
80  }
+
81  json = json + "\"" + key + "\":";
+
82  json = json + "\"" + value + "\"";
+
83  firstEntry = 0;
+
84  }
+
+

References firstEntry, and json.

+ +

Referenced by add(), and JSONCGIADCCallback::getJSONString().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ getJSON()

+ +
+
+ + + + + +
+ + + + + + + +
std::string JSONCGIHandler::JSONGenerator::getJSON ()
+
+inline
+
+

Gets the json string

Returns
The JSON data ready to be sent
+ +

Definition at line 136 of file json_fastcgi_web_api.h.

+
136 { return json + "}"; }
+
+

References json.

+ +

Referenced by JSONCGIADCCallback::getJSONString().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+

Field Documentation

+ +

◆ firstEntry

+ +
+
+ + + + + +
+ + + + +
int JSONCGIHandler::JSONGenerator::firstEntry = 1
+
+private
+
+ +

Definition at line 140 of file json_fastcgi_web_api.h.

+ +

Referenced by add().

+ +
+
+ +

◆ json

+ +
+
+ + + + + +
+ + + + +
std::string JSONCGIHandler::JSONGenerator::json = "{"
+
+private
+
+ +

Definition at line 139 of file json_fastcgi_web_api.h.

+ +

Referenced by add(), and getJSON().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.js b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.js new file mode 100644 index 0000000..7055a99 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.js @@ -0,0 +1,11 @@ +var class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator = +[ + [ "add", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#aa25099deb2442335298ab1c021f36910", null ], + [ "add", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a2192849b22341653a138bb63da6c6c9a", null ], + [ "add", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a87fe5c75b46f9822255535a61f15ad4b", null ], + [ "add", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afc3e9374b0e49ca1f701bd22bbd4cd92", null ], + [ "add", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a191efd00967cbace0d9ddfedea39cd9b", null ], + [ "getJSON", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afec28cd80e562955e2cd8cdb92d86205", null ], + [ "firstEntry", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a9d14c80af92fa9f3a3406d826acd2cc0", null ], + [ "json", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a5a9fd42e7b9030c6a0a4bee923a2e416", null ] +]; \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.map new file mode 100644 index 0000000..7a46a28 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.md5 new file mode 100644 index 0000000..2729aa7 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.md5 @@ -0,0 +1 @@ +083e91d1cac09d7282ec0b388fbd02bf \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.png new file mode 100644 index 0000000..05c1241 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator__coll__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.map new file mode 100644 index 0000000..ccb6cba --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.md5 new file mode 100644 index 0000000..59bb0ac --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.md5 @@ -0,0 +1 @@ +d0b2ed9060142c44f9c09bbd1919ee07 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.png new file mode 100644 index 0000000..c33aab5 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a191efd00967cbace0d9ddfedea39cd9b_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.map new file mode 100644 index 0000000..d309f82 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.md5 new file mode 100644 index 0000000..34e87c5 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.md5 @@ -0,0 +1 @@ +7ef47a526e4f5838b8781dd17bcfb265 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.png new file mode 100644 index 0000000..83ac792 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a2192849b22341653a138bb63da6c6c9a_cgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.map new file mode 100644 index 0000000..d309f82 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.md5 new file mode 100644 index 0000000..34e87c5 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.md5 @@ -0,0 +1 @@ +7ef47a526e4f5838b8781dd17bcfb265 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.png new file mode 100644 index 0000000..83ac792 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_a87fe5c75b46f9822255535a61f15ad4b_cgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.map new file mode 100644 index 0000000..b162151 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.md5 new file mode 100644 index 0000000..a4773ea --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.md5 @@ -0,0 +1 @@ +253a4235de4a2f9f3a2d3666c0af4069 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.png new file mode 100644 index 0000000..c161438 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator_afec28cd80e562955e2cd8cdb92d86205_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html new file mode 100644 index 0000000..76a63a0 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html @@ -0,0 +1,168 @@ + + + + + + + +DreamHacker: JSONCGIHandler::POSTCallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
JSONCGIHandler::POSTCallback Class Referenceabstract
+
+
+ +

#include <json_fastcgi_web_api.h>

+
+Collaboration diagram for JSONCGIHandler::POSTCallback:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Member Functions

virtual void postString (std::string postArg)=0
 
+

Detailed Description

+

Callback handler which needs to be implemented by the main program.

+ +

Definition at line 55 of file json_fastcgi_web_api.h.

+

Member Function Documentation

+ +

◆ postString()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void JSONCGIHandler::POSTCallback::postString (std::string postArg)
+
+pure virtual
+
+

Receives the POST data from the web browser. Use postDecoder() to decode the postArg string.

Parameters
+ + +
postArgPOST data received from jQuery
+
+
+ +

Referenced by JSONCGIHandler::exec().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.js b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.js new file mode 100644 index 0000000..432eac4 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.js @@ -0,0 +1,4 @@ +var class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback = +[ + [ "postString", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html#a6cddb384a3fd9242b323cea3d82a6bb7", null ] +]; \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.map new file mode 100644 index 0000000..e6e34b7 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.md5 new file mode 100644 index 0000000..c4f497a --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.md5 @@ -0,0 +1 @@ +fd933a1ed5358ec0c9ab16052589b8fc \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.png new file mode 100644 index 0000000..6fb1fb3 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback__coll__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.map new file mode 100644 index 0000000..f6695e1 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.md5 new file mode 100644 index 0000000..931c9af --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.md5 @@ -0,0 +1 @@ +6a74296cf9049759dbb2776cbef91860 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.png new file mode 100644 index 0000000..5a3f1f5 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback_a6cddb384a3fd9242b323cea3d82a6bb7_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler__coll__graph.map b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.map new file mode 100644 index 0000000..5d5c1b6 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler__coll__graph.md5 b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.md5 new file mode 100644 index 0000000..6e11ac9 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.md5 @@ -0,0 +1 @@ +d8fc561f181dbc93f2b6a76c04983ad9 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler__coll__graph.png b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.png new file mode 100644 index 0000000..750aeb5 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler__coll__graph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.map b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.map new file mode 100644 index 0000000..e98c7be --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.md5 new file mode 100644 index 0000000..4030614 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.md5 @@ -0,0 +1 @@ +ed24e4d4191dc587287bd88bb451fe8a \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.png b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.png new file mode 100644 index 0000000..11678fc Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_cgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.map b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.map new file mode 100644 index 0000000..5f88ea1 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.md5 new file mode 100644 index 0000000..0fb7798 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.md5 @@ -0,0 +1 @@ +9fdcd69755c98a4730b5ebe06b7fc4b6 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.png b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.png new file mode 100644 index 0000000..550c226 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_a42518cd5ad781476d299b50e4c4c0000_icgraph.png differ diff --git a/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.map b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.map new file mode 100644 index 0000000..924fd36 --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.md5 b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.md5 new file mode 100644 index 0000000..8278c0d --- /dev/null +++ b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.md5 @@ -0,0 +1 @@ +56e4beb6dab7556158a51baba6c59640 \ No newline at end of file diff --git a/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.png b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.png new file mode 100644 index 0000000..0ea2523 Binary files /dev/null and b/docs/class_j_s_o_n_c_g_i_handler_a9bf5a96d13949d363225561ba6ac3b56_cgraph.png differ diff --git a/docs/class_main_window.html b/docs/class_main_window.html new file mode 100644 index 0000000..ebb62c6 --- /dev/null +++ b/docs/class_main_window.html @@ -0,0 +1,1633 @@ + + + + + + + +DreamHacker: MainWindow Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MainWindow Class Reference
+
+
+ +

#include <mainwindow.h>

+
+Inheritance diagram for MainWindow:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for MainWindow:
+
+
Collaboration graph
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + +

+Public Member Functions

 MainWindow (QWidget *parent=0)
 
void timerEvent (QTimerEvent *)
 
void addRealtimeSample (double v)
 
void callPlot ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Slots

void titleDoubleClick (QMouseEvent *event)
 
void axisLabelDoubleClick (QCPAxis *axis, QCPAxis::SelectablePart part)
 
void legendDoubleClick (QCPLegend *legend, QCPAbstractLegendItem *item)
 
void selectionChanged ()
 
void mousePress ()
 
void mouseWheel ()
 
void addRandomGraph ()
 
void addRealtimeGraph ()
 
void removeSelectedGraph ()
 
void removeAllGraphs ()
 
void contextMenuRequest (QPoint pos)
 
void moveLegend ()
 
void graphClicked (QCPAbstractPlottable *plottable, int dataIndex)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Attributes

QWidget * centralWidget
 
QVBoxLayout * verticalLayout
 
QFrame * frame_2
 
QVBoxLayout * verticalLayout_3
 
QCustomPlot * customPlot
 
QFrame * frame
 
QVBoxLayout * verticalLayout_2
 
QLabel * label
 
QMenuBar * menuBar
 
QStatusBar * statusBar
 
QSharedPointer< QCPDataContainer< QCPGraphData > > animdata
 
const int nRealtimePoints = 500
 
const double dt = 0.02
 
double t = 0
 
+

Detailed Description

+
+

Definition at line 19 of file mainwindow.h.

+

Constructor & Destructor Documentation

+ +

◆ MainWindow()

+ +
+
+ + + + + +
+ + + + + + + + +
MainWindow::MainWindow (QWidget * parent = 0)
+
+explicit
+
+ +

Definition at line 16 of file mainwindow.cpp.

+
16  :
+
17  QMainWindow(parent) {
+
18  srand(QDateTime::currentDateTime().toTime_t());
+
19 
+
20  // Layout
+
21  centralWidget = new QWidget();
+
22  verticalLayout = new QVBoxLayout(centralWidget);
+
23  verticalLayout->setSpacing(6);
+
24  verticalLayout->setContentsMargins(11, 11, 11, 11);
+
25  frame_2 = new QFrame(centralWidget);
+
26  frame_2->setFrameShape(QFrame::StyledPanel);
+
27  frame_2->setFrameShadow(QFrame::Sunken);
+
28  frame_2->setLineWidth(1);
+
29  frame_2->setMidLineWidth(0);
+
30  verticalLayout_3 = new QVBoxLayout(frame_2);
+
31  verticalLayout_3->setSpacing(0);
+
32  verticalLayout_3->setContentsMargins(0, 0, 0, 0);
+
33  customPlot = new QCustomPlot(frame_2);
+
34  QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+
35  sizePolicy.setHorizontalStretch(0);
+
36  sizePolicy.setVerticalStretch(0);
+
37  sizePolicy.setHeightForWidth(customPlot->sizePolicy().hasHeightForWidth());
+
38  customPlot->setSizePolicy(sizePolicy);
+
39  verticalLayout_3->addWidget(customPlot);
+
40  verticalLayout->addWidget(frame_2);
+
41  frame = new QFrame(centralWidget);
+
42  frame->setFrameShape(QFrame::StyledPanel);
+
43  frame->setFrameShadow(QFrame::Raised);
+
44  verticalLayout_2 = new QVBoxLayout(frame);
+
45  verticalLayout_2->setSpacing(6);
+
46  verticalLayout_2->setContentsMargins(11, 11, 11, 11);
+
47  label = new QLabel(frame);
+
48  verticalLayout_2->addWidget(label);
+
49  verticalLayout->addWidget(frame);
+
50  setCentralWidget(centralWidget);
+
51  statusBar = new QStatusBar();
+
52  setStatusBar(statusBar);
+
53 
+
54  customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes |
+
55  QCP::iSelectLegend | QCP::iSelectPlottables);
+
56  customPlot->xAxis->setRange(-1, 8);
+
57  //Shreyansh input y range
+
58  //customPlot->yAxis->setRange(-5, 5);
+
59  customPlot->yAxis->setRange(400, 600);
+
60  customPlot->axisRect()->setupFullAxesBox();
+
61 
+
62  customPlot->plotLayout()->insertRow(0);
+
63  QCPTextElement *title = new QCPTextElement(customPlot, titleTxt, QFont("sans", 17, QFont::Bold));
+
64  customPlot->plotLayout()->addElement(0, 0, title);
+
65 
+
66  customPlot->xAxis->setLabel("x Axis");
+
67  customPlot->yAxis->setLabel("y Axis");
+
68  customPlot->legend->setVisible(true);
+
69  QFont legendFont = font();
+
70  legendFont.setPointSize(10);
+
71  customPlot->legend->setFont(legendFont);
+
72  customPlot->legend->setSelectedFont(legendFont);
+
73  customPlot->legend->setSelectableParts(QCPLegend::spItems); // legend box shall not be selectable, only legend items
+
74 
+ +
76  //addRandomGraph();
+
77  //addRandomGraph();
+
78 
+
79  // connect slot that ties some axis selections together (especially opposite axes):
+
80  connect(customPlot, SIGNAL(selectionChangedByUser()), this, SLOT(selectionChanged()));
+
81  // connect slots that takes care that when an axis is selected, only that direction can be dragged and zoomed:
+
82  connect(customPlot, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(mousePress()));
+
83  connect(customPlot, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(mouseWheel()));
+
84 
+
85  // make bottom and left axes transfer their ranges to top and right axes:
+
86  connect(customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->xAxis2, SLOT(setRange(QCPRange)));
+
87  connect(customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->yAxis2, SLOT(setRange(QCPRange)));
+
88 
+
89  // connect some interaction slots:
+
90  connect(customPlot, SIGNAL(axisDoubleClick(QCPAxis*,QCPAxis::SelectablePart,QMouseEvent*)), this, SLOT(axisLabelDoubleClick(QCPAxis*,QCPAxis::SelectablePart)));
+
91  connect(customPlot, SIGNAL(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*)));
+
92  connect(title, SIGNAL(doubleClicked(QMouseEvent*)), this, SLOT(titleDoubleClick(QMouseEvent*)));
+
93 
+
94  // connect slot that shows a message in the status bar when a graph is clicked:
+
95  connect(customPlot, SIGNAL(plottableClick(QCPAbstractPlottable*,int,QMouseEvent*)), this, SLOT(graphClicked(QCPAbstractPlottable*,int)));
+
96 
+
97  // setup policy and connect slot for context menu popup:
+
98  customPlot->setContextMenuPolicy(Qt::CustomContextMenu);
+
99  connect(customPlot, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuRequest(QPoint)));
+
100 
+
101  setWindowTitle(titleTxt);
+
102  label->setText(instructionsTxt);
+
103 }
+
QFrame * frame
Definition: mainwindow.h:51
+
QVBoxLayout * verticalLayout
Definition: mainwindow.h:47
+
QFrame * frame_2
Definition: mainwindow.h:48
+
QStatusBar * statusBar
Definition: mainwindow.h:55
+
QVBoxLayout * verticalLayout_3
Definition: mainwindow.h:49
+
void addRealtimeGraph()
Definition: mainwindow.cpp:219
+
void mousePress()
Definition: mainwindow.cpp:195
+
void titleDoubleClick(QMouseEvent *event)
Definition: mainwindow.cpp:105
+
void graphClicked(QCPAbstractPlottable *plottable, int dataIndex)
Definition: mainwindow.cpp:330
+
QLabel * label
Definition: mainwindow.h:53
+
void selectionChanged()
Definition: mainwindow.cpp:153
+
void contextMenuRequest(QPoint pos)
Definition: mainwindow.cpp:294
+
QVBoxLayout * verticalLayout_2
Definition: mainwindow.h:52
+
void mouseWheel()
Definition: mainwindow.cpp:207
+
QWidget * centralWidget
Definition: mainwindow.h:46
+
QCustomPlot * customPlot
Definition: mainwindow.h:50
+
void axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part)
Definition: mainwindow.cpp:123
+
void legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
Definition: mainwindow.cpp:137
+ +
const char titleTxt[]
Definition: mainwindow.cpp:14
+
const char instructionsTxt[]
Definition: mainwindow.cpp:3
+
+

References addRealtimeGraph(), axisLabelDoubleClick(), centralWidget, contextMenuRequest(), customPlot, frame, frame_2, graphClicked(), instructionsTxt, label, legendDoubleClick(), mousePress(), mouseWheel(), selectionChanged(), statusBar, titleDoubleClick(), titleTxt, verticalLayout, verticalLayout_2, and verticalLayout_3.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + + + + + + +
+ +
+
+

Member Function Documentation

+ +

◆ addRandomGraph

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::addRandomGraph ()
+
+privateslot
+
+ +

Definition at line 254 of file mainwindow.cpp.

+
254  {
+
255  int n = 2000; // number of points in graph
+
256  double xScale = (rand()/(double)RAND_MAX + 0.5)*2;
+
257  double yScale = (rand()/(double)RAND_MAX + 0.5)*2;
+
258  double xOffset = (rand()/(double)RAND_MAX - 0.5)*4;
+
259  double yOffset = (rand()/(double)RAND_MAX - 0.5)*10;
+
260  double r1 = (rand()/(double)RAND_MAX - 0.5)*2;
+
261  double r2 = (rand()/(double)RAND_MAX - 0.5)*2;
+
262  double r3 = (rand()/(double)RAND_MAX - 0.5)*2;
+
263  double r4 = (rand()/(double)RAND_MAX - 0.5)*2;
+
264  QVector<double> x(n), y(n);
+
265  for (int i=0; i<n; i++)
+
266  {
+
267  x[i] = (i/(double)n-0.5)*10.0*xScale + xOffset;
+
268  y[i] = (qSin(x[i]*r1*5)*qSin(qCos(x[i]*r2)*r4*3)+r3*qCos(qSin(x[i])*r4*2))*yScale + yOffset;
+
269  }
+
270 
+
271  customPlot->addGraph();
+
272  customPlot->graph()->setName(QString("New graph %1").arg(customPlot->graphCount()-1));
+
273  customPlot->graph()->setData(x, y);
+
274  QPen graphPen;
+
275  graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10));
+
276  graphPen.setWidthF(2);
+
277  customPlot->graph()->setPen(graphPen);
+
278  customPlot->replot();
+
279 }
+
+

References customPlot.

+ +

Referenced by contextMenuRequest().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ addRealtimeGraph

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::addRealtimeGraph ()
+
+privateslot
+
+ +

Definition at line 219 of file mainwindow.cpp.

+
219  {
+
220  customPlot->addGraph();
+
221  customPlot->graph()->setName(QString("Realtime"));
+
222  animdata.reset(new QCPDataContainer<QCPGraphData>);
+
223  for(int i=0;i<nRealtimePoints;i++) {
+
224  QCPGraphData data(i*dt,0);
+
225  animdata->add(data);
+
226  }
+
227  customPlot->graph()->setData(animdata);
+
228  QPen graphPen;
+
229  graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10));
+
230  graphPen.setWidthF(2);
+
231  customPlot->graph()->setPen(graphPen);
+
232  customPlot->replot();
+
233  startTimer(40);
+
234 }
+
QSharedPointer< QCPDataContainer< QCPGraphData > > animdata
Definition: mainwindow.h:56
+
const double dt
Definition: mainwindow.h:58
+
const int nRealtimePoints
Definition: mainwindow.h:57
+
+

References animdata, customPlot, dt, and nRealtimePoints.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ addRealtimeSample()

+ +
+
+ + + + + + + + +
void MainWindow::addRealtimeSample (double v)
+
+ +

Definition at line 236 of file mainwindow.cpp.

+
236  {
+
237  // shift the values
+
238  for (auto i = animdata->end(); i != (animdata->begin()); --i) {
+
239  i->value = (i-1)->value;
+
240  }
+
241  // add a new datapoint at the start
+
242  animdata->begin()->value = v;
+
243 }
+
+

References animdata.

+ +

Referenced by timerEvent(), and SenseWindow::timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ axisLabelDoubleClick

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow::axisLabelDoubleClick (QCPAxis * axis,
QCPAxis::SelectablePart part 
)
+
+privateslot
+
+ +

Definition at line 123 of file mainwindow.cpp.

+
123  {
+
124  // Set an axis label by double clicking on it
+
125  if (part == QCPAxis::spAxisLabel) // only react when the actual axis label is clicked, not tick label or axis backbone
+
126  {
+
127  bool ok;
+
128  QString newLabel = QInputDialog::getText(this, "QCustomPlot example", "New axis label:", QLineEdit::Normal, axis->label(), &ok);
+
129  if (ok)
+
130  {
+
131  axis->setLabel(newLabel);
+
132  customPlot->replot();
+
133  }
+
134  }
+
135 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ callPlot()

+ +
+
+ + + + + + + +
void MainWindow::callPlot ()
+
+ +

Definition at line 119 of file mainwindow.cpp.

+
119  {
+
120  customPlot->replot();
+
121 }
+
+

References customPlot.

+ +

Referenced by SenseWindow::timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ contextMenuRequest

+ +
+
+ + + + + +
+ + + + + + + + +
void MainWindow::contextMenuRequest (QPoint pos)
+
+privateslot
+
+ +

Definition at line 294 of file mainwindow.cpp.

+
294  {
+
295  QMenu *menu = new QMenu(this);
+
296  menu->setAttribute(Qt::WA_DeleteOnClose);
+
297 
+
298  if (customPlot->legend->selectTest(pos, false) >= 0) // context menu on legend requested
+
299  {
+
300  menu->addAction("Move to top left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignLeft));
+
301  menu->addAction("Move to top center", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignHCenter));
+
302  menu->addAction("Move to top right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignRight));
+
303  menu->addAction("Move to bottom right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignRight));
+
304  menu->addAction("Move to bottom left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignLeft));
+
305  } else // general context menu on graphs requested
+
306  {
+
307  menu->addAction("Add random graph", this, SLOT(addRandomGraph()));
+
308  if (customPlot->selectedGraphs().size() > 0)
+
309  menu->addAction("Remove selected graph", this, SLOT(removeSelectedGraph()));
+
310  if (customPlot->graphCount() > 0)
+
311  menu->addAction("Remove all graphs", this, SLOT(removeAllGraphs()));
+
312  }
+
313 
+
314  menu->popup(customPlot->mapToGlobal(pos));
+
315 }
+
void moveLegend()
Definition: mainwindow.cpp:317
+
void removeAllGraphs()
Definition: mainwindow.cpp:289
+
void removeSelectedGraph()
Definition: mainwindow.cpp:281
+
void addRandomGraph()
Definition: mainwindow.cpp:254
+
+

References addRandomGraph(), customPlot, moveLegend(), removeAllGraphs(), and removeSelectedGraph().

+ +

Referenced by MainWindow().

+
+Here is the call graph for this function:
+
+
+ + + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ graphClicked

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow::graphClicked (QCPAbstractPlottable * plottable,
int dataIndex 
)
+
+privateslot
+
+ +

Definition at line 330 of file mainwindow.cpp.

+
330  {
+
331  // since we know we only have QCPGraphs in the plot, we can immediately access interface1D()
+
332  // usually it's better to first check whether interface1D() returns non-zero, and only then use it.
+
333  double dataValue = plottable->interface1D()->dataMainValue(dataIndex);
+
334  QString message = QString("Clicked on graph '%1' at data point #%2 with value %3.").arg(plottable->name()).arg(dataIndex).arg(dataValue);
+
335  statusBar->showMessage(message, 2500);
+
336 }
+
+

References statusBar.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ legendDoubleClick

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void MainWindow::legendDoubleClick (QCPLegend * legend,
QCPAbstractLegendItem * item 
)
+
+privateslot
+
+ +

Definition at line 137 of file mainwindow.cpp.

+
137  {
+
138  // Rename a graph by double clicking on its legend item
+
139  Q_UNUSED(legend)
+
140  if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0)
+
141  {
+
142  QCPPlottableLegendItem *plItem = qobject_cast<QCPPlottableLegendItem*>(item);
+
143  bool ok;
+
144  QString newName = QInputDialog::getText(this, "QCustomPlot example", "New graph name:", QLineEdit::Normal, plItem->plottable()->name(), &ok);
+
145  if (ok)
+
146  {
+
147  plItem->plottable()->setName(newName);
+
148  customPlot->replot();
+
149  }
+
150  }
+
151 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ mousePress

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::mousePress ()
+
+privateslot
+
+ +

Definition at line 195 of file mainwindow.cpp.

+
195  {
+
196  // if an axis is selected, only allow the direction of that axis to be dragged
+
197  // if no axis is selected, both directions may be dragged
+
198 
+
199  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
200  customPlot->axisRect()->setRangeDrag(customPlot->xAxis->orientation());
+
201  else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
202  customPlot->axisRect()->setRangeDrag(customPlot->yAxis->orientation());
+
203  else
+
204  customPlot->axisRect()->setRangeDrag(Qt::Horizontal|Qt::Vertical);
+
205 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ mouseWheel

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::mouseWheel ()
+
+privateslot
+
+ +

Definition at line 207 of file mainwindow.cpp.

+
207  {
+
208  // if an axis is selected, only allow the direction of that axis to be zoomed
+
209  // if no axis is selected, both directions may be zoomed
+
210 
+
211  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
212  customPlot->axisRect()->setRangeZoom(customPlot->xAxis->orientation());
+
213  else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
214  customPlot->axisRect()->setRangeZoom(customPlot->yAxis->orientation());
+
215  else
+
216  customPlot->axisRect()->setRangeZoom(Qt::Horizontal|Qt::Vertical);
+
217 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ moveLegend

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::moveLegend ()
+
+privateslot
+
+ +

Definition at line 317 of file mainwindow.cpp.

+
317  {
+
318  if (QAction* contextAction = qobject_cast<QAction*>(sender())) // make sure this slot is really called by a context menu action, so it carries the data we need
+
319  {
+
320  bool ok;
+
321  int dataInt = contextAction->data().toInt(&ok);
+
322  if (ok)
+
323  {
+
324  customPlot->axisRect()->insetLayout()->setInsetAlignment(0, (Qt::Alignment)dataInt);
+
325  customPlot->replot();
+
326  }
+
327  }
+
328 }
+
+

References customPlot.

+ +

Referenced by contextMenuRequest().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ removeAllGraphs

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::removeAllGraphs ()
+
+privateslot
+
+ +

Definition at line 289 of file mainwindow.cpp.

+
289  {
+
290  customPlot->clearGraphs();
+
291  customPlot->replot();
+
292 }
+
+

References customPlot.

+ +

Referenced by contextMenuRequest().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ removeSelectedGraph

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::removeSelectedGraph ()
+
+privateslot
+
+ +

Definition at line 281 of file mainwindow.cpp.

+
281  {
+
282  if (customPlot->selectedGraphs().size() > 0)
+
283  {
+
284  customPlot->removeGraph(customPlot->selectedGraphs().first());
+
285  customPlot->replot();
+
286  }
+
287 }
+
+

References customPlot.

+ +

Referenced by contextMenuRequest().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ selectionChanged

+ +
+
+ + + + + +
+ + + + + + + +
void MainWindow::selectionChanged ()
+
+privateslot
+
+ +

Definition at line 153 of file mainwindow.cpp.

+
153  {
+
154  /*
+
155  normally, axis base line, axis tick labels and axis labels are selectable separately, but we want
+
156  the user only to be able to select the axis as a whole, so we tie the selected states of the tick labels
+
157  and the axis base line together. However, the axis label shall be selectable individually.
+
158 
+
159  The selection state of the left and right axes shall be synchronized as well as the state of the
+
160  bottom and top axes.
+
161 
+
162  Further, we want to synchronize the selection of the graphs with the selection state of the respective
+
163  legend item belonging to that graph. So the user can select a graph by either clicking on the graph itself
+
164  or on its legend item.
+
165  */
+
166 
+
167  // make top and bottom axes be selected synchronously, and handle axis and tick labels as one selectable object:
+
168  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis->selectedParts().testFlag(QCPAxis::spTickLabels) ||
+
169  customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spTickLabels))
+
170  {
+
171  customPlot->xAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
172  customPlot->xAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
173  }
+
174  // make left and right axes be selected synchronously, and handle axis and tick labels as one selectable object:
+
175  if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis->selectedParts().testFlag(QCPAxis::spTickLabels) ||
+
176  customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spTickLabels))
+
177  {
+
178  customPlot->yAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
179  customPlot->yAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
180  }
+
181 
+
182  // synchronize selection of graphs with selection of corresponding legend items:
+
183  for (int i=0; i<customPlot->graphCount(); ++i)
+
184  {
+
185  QCPGraph *graph = customPlot->graph(i);
+
186  QCPPlottableLegendItem *item = customPlot->legend->itemWithPlottable(graph);
+
187  if (item->selected() || graph->selected())
+
188  {
+
189  item->setSelected(true);
+
190  graph->setSelection(QCPDataSelection(graph->data()->dataRange()));
+
191  }
+
192  }
+
193 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ timerEvent()

+ +
+
+ + + + + + + + +
void MainWindow::timerEvent (QTimerEvent * )
+
+ +

Definition at line 245 of file mainwindow.cpp.

+
245  {
+
246  // demonstrates that adding a few samples before plotting speeds things up
+
247  for(int i = 0; i < 5; i++) {
+
248  addRealtimeSample(sin(t*5));
+
249  t = t + dt;
+
250  }
+
251  customPlot->replot();
+
252 }
+
void addRealtimeSample(double v)
Definition: mainwindow.cpp:236
+
double t
Definition: mainwindow.h:59
+
+

References addRealtimeSample(), customPlot, dt, and t.

+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ titleDoubleClick

+ +
+
+ + + + + +
+ + + + + + + + +
void MainWindow::titleDoubleClick (QMouseEvent * event)
+
+privateslot
+
+ +

Definition at line 105 of file mainwindow.cpp.

+
105  {
+
106  Q_UNUSED(event)
+
107  if (QCPTextElement *title = qobject_cast<QCPTextElement*>(sender()))
+
108  {
+
109  // Set the plot title by double clicking on it
+
110  bool ok;
+
111  QString newTitle = QInputDialog::getText(this, "QCustomPlot example", "New plot title:", QLineEdit::Normal, title->text(), &ok);
+
112  if (ok)
+
113  {
+
114  title->setText(newTitle);
+
115  customPlot->replot();
+
116  }
+
117  }
+
118 }
+
+

References customPlot.

+ +

Referenced by MainWindow().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+

Field Documentation

+ +

◆ animdata

+ +
+
+ + + + + +
+ + + + +
QSharedPointer<QCPDataContainer<QCPGraphData> > MainWindow::animdata
+
+private
+
+ +

Definition at line 56 of file mainwindow.h.

+ +

Referenced by addRealtimeGraph(), and addRealtimeSample().

+ +
+
+ +

◆ centralWidget

+ +
+
+ + + + + +
+ + + + +
QWidget* MainWindow::centralWidget
+
+private
+
+ +

Definition at line 46 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ customPlot

+ + + +

◆ dt

+ +
+
+ + + + + +
+ + + + +
const double MainWindow::dt = 0.02
+
+private
+
+ +

Definition at line 58 of file mainwindow.h.

+ +

Referenced by addRealtimeGraph(), and timerEvent().

+ +
+
+ +

◆ frame

+ +
+
+ + + + + +
+ + + + +
QFrame* MainWindow::frame
+
+private
+
+ +

Definition at line 51 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ frame_2

+ +
+
+ + + + + +
+ + + + +
QFrame* MainWindow::frame_2
+
+private
+
+ +

Definition at line 48 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ label

+ +
+
+ + + + + +
+ + + + +
QLabel* MainWindow::label
+
+private
+
+ +

Definition at line 53 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ menuBar

+ +
+
+ + + + + +
+ + + + +
QMenuBar* MainWindow::menuBar
+
+private
+
+ +

Definition at line 54 of file mainwindow.h.

+ +
+
+ +

◆ nRealtimePoints

+ +
+
+ + + + + +
+ + + + +
const int MainWindow::nRealtimePoints = 500
+
+private
+
+ +

Definition at line 57 of file mainwindow.h.

+ +

Referenced by addRealtimeGraph().

+ +
+
+ +

◆ statusBar

+ +
+
+ + + + + +
+ + + + +
QStatusBar* MainWindow::statusBar
+
+private
+
+ +

Definition at line 55 of file mainwindow.h.

+ +

Referenced by graphClicked(), and MainWindow().

+ +
+
+ +

◆ t

+ +
+
+ + + + + +
+ + + + +
double MainWindow::t = 0
+
+private
+
+ +

Definition at line 59 of file mainwindow.h.

+ +

Referenced by timerEvent().

+ +
+
+ +

◆ verticalLayout

+ +
+
+ + + + + +
+ + + + +
QVBoxLayout* MainWindow::verticalLayout
+
+private
+
+ +

Definition at line 47 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ verticalLayout_2

+ +
+
+ + + + + +
+ + + + +
QVBoxLayout* MainWindow::verticalLayout_2
+
+private
+
+ +

Definition at line 52 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+ +

◆ verticalLayout_3

+ +
+
+ + + + + +
+ + + + +
QVBoxLayout* MainWindow::verticalLayout_3
+
+private
+
+ +

Definition at line 49 of file mainwindow.h.

+ +

Referenced by MainWindow().

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/docs/class_main_window.js b/docs/class_main_window.js new file mode 100644 index 0000000..543ffd0 --- /dev/null +++ b/docs/class_main_window.js @@ -0,0 +1,34 @@ +var class_main_window = +[ + [ "MainWindow", "class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db", null ], + [ "addRandomGraph", "class_main_window.html#adf836fa5cd0d1a80544f272fac06867f", null ], + [ "addRealtimeGraph", "class_main_window.html#a569f6854621f0b737fe75c3f4a85be5e", null ], + [ "addRealtimeSample", "class_main_window.html#a249c355d9682742f0b2f0c4df3a889ba", null ], + [ "axisLabelDoubleClick", "class_main_window.html#af5c159a4d57c57c6014b6892d14eb816", null ], + [ "callPlot", "class_main_window.html#a37fafd4b956df2afe979320e886e08b9", null ], + [ "contextMenuRequest", "class_main_window.html#a9aa96a47567bb4c129c3c0ec88fff3a8", null ], + [ "graphClicked", "class_main_window.html#a8051aaa7fb3d933b24edfc2b3313fb9d", null ], + [ "legendDoubleClick", "class_main_window.html#afb15e4bd4206b7c4049ebf297f8c02bd", null ], + [ "mousePress", "class_main_window.html#a5b48e4b5e6ca0e866f09c2e7abf39468", null ], + [ "mouseWheel", "class_main_window.html#abce189c4c57b052878c91f1f6428bba3", null ], + [ "moveLegend", "class_main_window.html#a617d177003ed61dba284913af30de1e5", null ], + [ "removeAllGraphs", "class_main_window.html#a7af3696afc3e0996f54803bc9e8a88de", null ], + [ "removeSelectedGraph", "class_main_window.html#addd0ecbc66696a8427539ea464a56c7d", null ], + [ "selectionChanged", "class_main_window.html#a91379bd45a0f0ed052dd43f976820874", null ], + [ "timerEvent", "class_main_window.html#a1c7877c1ca466bd8034d88762ce2af9f", null ], + [ "titleDoubleClick", "class_main_window.html#a7a08729acae2d66f3a961aedc2843201", null ], + [ "animdata", "class_main_window.html#a8a03063815634f96c67efff679eec7f1", null ], + [ "centralWidget", "class_main_window.html#ad3bde47a75b6c59146d6aff1752d077f", null ], + [ "customPlot", "class_main_window.html#adf20eb4e3d56f3697d3668cda8219e56", null ], + [ "dt", "class_main_window.html#a9877316405a63e4d97dcc23973b57883", null ], + [ "frame", "class_main_window.html#a1c0b4ea19f6a3fa99e1b2b5aaced3316", null ], + [ "frame_2", "class_main_window.html#a2922276b16afd8adc961e2feb0295aa7", null ], + [ "label", "class_main_window.html#a89e281849b9cf7d03662402c6bc6012c", null ], + [ "menuBar", "class_main_window.html#a285395aec8fd01bec6bedcad73b86a55", null ], + [ "nRealtimePoints", "class_main_window.html#ac3b757adfb6eff08e50a5017d12a48df", null ], + [ "statusBar", "class_main_window.html#a4a04910f3193303a44506b44521b61b0", null ], + [ "t", "class_main_window.html#a4a67c261262269dbbdf62c5acecd0f45", null ], + [ "verticalLayout", "class_main_window.html#a27112d7db9fb5d46fe348f82ec04575c", null ], + [ "verticalLayout_2", "class_main_window.html#aa832835ecf184b522debbaca68b1e93d", null ], + [ "verticalLayout_3", "class_main_window.html#a5017c8d0c6c5a1dc9276ee000d417ab9", null ] +]; \ No newline at end of file diff --git a/docs/class_main_window__coll__graph.map b/docs/class_main_window__coll__graph.map new file mode 100644 index 0000000..3cc2666 --- /dev/null +++ b/docs/class_main_window__coll__graph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/class_main_window__coll__graph.md5 b/docs/class_main_window__coll__graph.md5 new file mode 100644 index 0000000..50f3a55 --- /dev/null +++ b/docs/class_main_window__coll__graph.md5 @@ -0,0 +1 @@ +5d9daa6a35e275c3cd3b1367e4660059 \ No newline at end of file diff --git a/docs/class_main_window__coll__graph.png b/docs/class_main_window__coll__graph.png new file mode 100644 index 0000000..2eddade Binary files /dev/null and b/docs/class_main_window__coll__graph.png differ diff --git a/docs/class_main_window__inherit__graph.map b/docs/class_main_window__inherit__graph.map new file mode 100644 index 0000000..2d35462 --- /dev/null +++ b/docs/class_main_window__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window__inherit__graph.md5 b/docs/class_main_window__inherit__graph.md5 new file mode 100644 index 0000000..5a13293 --- /dev/null +++ b/docs/class_main_window__inherit__graph.md5 @@ -0,0 +1 @@ +8f302cec02245e314cd9613a42c4a1ed \ No newline at end of file diff --git a/docs/class_main_window__inherit__graph.png b/docs/class_main_window__inherit__graph.png new file mode 100644 index 0000000..980b446 Binary files /dev/null and b/docs/class_main_window__inherit__graph.png differ diff --git a/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.map b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.map new file mode 100644 index 0000000..72dfa9c --- /dev/null +++ b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.md5 b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.md5 new file mode 100644 index 0000000..45530bd --- /dev/null +++ b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.md5 @@ -0,0 +1 @@ +b5fe01f050418280e994fb9faea5c82c \ No newline at end of file diff --git a/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.png b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.png new file mode 100644 index 0000000..a839423 Binary files /dev/null and b/docs/class_main_window_a1c7877c1ca466bd8034d88762ce2af9f_cgraph.png differ diff --git a/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.map b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.map new file mode 100644 index 0000000..eecab91 --- /dev/null +++ b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.md5 b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.md5 new file mode 100644 index 0000000..2895b01 --- /dev/null +++ b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.md5 @@ -0,0 +1 @@ +e6a9471e9e9d82075c0b2b7f94a0037d \ No newline at end of file diff --git a/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.png b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.png new file mode 100644 index 0000000..04820d8 Binary files /dev/null and b/docs/class_main_window_a249c355d9682742f0b2f0c4df3a889ba_icgraph.png differ diff --git a/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.map b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.map new file mode 100644 index 0000000..e17f5b6 --- /dev/null +++ b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.md5 b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.md5 new file mode 100644 index 0000000..0192165 --- /dev/null +++ b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.md5 @@ -0,0 +1 @@ +3304588ac0c7778178d5ae2a598f3c46 \ No newline at end of file diff --git a/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.png b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.png new file mode 100644 index 0000000..91eac52 Binary files /dev/null and b/docs/class_main_window_a37fafd4b956df2afe979320e886e08b9_icgraph.png differ diff --git a/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.map b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.map new file mode 100644 index 0000000..281d600 --- /dev/null +++ b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.md5 b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.md5 new file mode 100644 index 0000000..e482af4 --- /dev/null +++ b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.md5 @@ -0,0 +1 @@ +69f7f41234f84026b309470667ee4171 \ No newline at end of file diff --git a/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.png b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.png new file mode 100644 index 0000000..5e58ed0 Binary files /dev/null and b/docs/class_main_window_a569f6854621f0b737fe75c3f4a85be5e_icgraph.png differ diff --git a/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.map b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.map new file mode 100644 index 0000000..04272b6 --- /dev/null +++ b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.md5 b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.md5 new file mode 100644 index 0000000..d47bc13 --- /dev/null +++ b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.md5 @@ -0,0 +1 @@ +03ba2697d723c0bdcf9a468a33bd1b09 \ No newline at end of file diff --git a/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.png b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.png new file mode 100644 index 0000000..7ec672d Binary files /dev/null and b/docs/class_main_window_a5b48e4b5e6ca0e866f09c2e7abf39468_icgraph.png differ diff --git a/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.map b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.map new file mode 100644 index 0000000..1f933b7 --- /dev/null +++ b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.md5 b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.md5 new file mode 100644 index 0000000..e01fdcd --- /dev/null +++ b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.md5 @@ -0,0 +1 @@ +e1e8650fdfe148d647b9df9cf6447ca6 \ No newline at end of file diff --git a/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.png b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.png new file mode 100644 index 0000000..217968d Binary files /dev/null and b/docs/class_main_window_a617d177003ed61dba284913af30de1e5_icgraph.png differ diff --git a/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.map b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.map new file mode 100644 index 0000000..94c132b --- /dev/null +++ b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.md5 b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.md5 new file mode 100644 index 0000000..1b306a7 --- /dev/null +++ b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.md5 @@ -0,0 +1 @@ +b55ca8ebc805ebb7072f34e04d398d77 \ No newline at end of file diff --git a/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.png b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.png new file mode 100644 index 0000000..3e02888 Binary files /dev/null and b/docs/class_main_window_a7a08729acae2d66f3a961aedc2843201_icgraph.png differ diff --git a/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.map b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.map new file mode 100644 index 0000000..76aee16 --- /dev/null +++ b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.md5 b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.md5 new file mode 100644 index 0000000..cc81ce3 --- /dev/null +++ b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.md5 @@ -0,0 +1 @@ +24b11d9543dde66143151727f81a8466 \ No newline at end of file diff --git a/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.png b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.png new file mode 100644 index 0000000..526fcb9 Binary files /dev/null and b/docs/class_main_window_a7af3696afc3e0996f54803bc9e8a88de_icgraph.png differ diff --git a/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.map b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.map new file mode 100644 index 0000000..868e793 --- /dev/null +++ b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.md5 b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.md5 new file mode 100644 index 0000000..8aac5a7 --- /dev/null +++ b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.md5 @@ -0,0 +1 @@ +5894ff1764279ae7685fed7c57d8f6b3 \ No newline at end of file diff --git a/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.png b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.png new file mode 100644 index 0000000..5dc7168 Binary files /dev/null and b/docs/class_main_window_a8051aaa7fb3d933b24edfc2b3313fb9d_icgraph.png differ diff --git a/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.map b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.map new file mode 100644 index 0000000..51822d0 --- /dev/null +++ b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.md5 b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.md5 new file mode 100644 index 0000000..18e1093 --- /dev/null +++ b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.md5 @@ -0,0 +1 @@ +8b59461d8cf56e7fcfeb9ba1dd5357cc \ No newline at end of file diff --git a/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.png b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.png new file mode 100644 index 0000000..7d4920a Binary files /dev/null and b/docs/class_main_window_a8b244be8b7b7db1b08de2a2acb9409db_cgraph.png differ diff --git a/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.map b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.map new file mode 100644 index 0000000..02f2965 --- /dev/null +++ b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.md5 b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.md5 new file mode 100644 index 0000000..0271736 --- /dev/null +++ b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.md5 @@ -0,0 +1 @@ +c7e7f11a9aedb8db84478dc9d354c54c \ No newline at end of file diff --git a/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.png b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.png new file mode 100644 index 0000000..63dd89a Binary files /dev/null and b/docs/class_main_window_a91379bd45a0f0ed052dd43f976820874_icgraph.png differ diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.map b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.map new file mode 100644 index 0000000..607f1e8 --- /dev/null +++ b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.md5 b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.md5 new file mode 100644 index 0000000..1b70e63 --- /dev/null +++ b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.md5 @@ -0,0 +1 @@ +3153989bc54ee59ef363d1060fd6d7c3 \ No newline at end of file diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.png b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.png new file mode 100644 index 0000000..5dc0c32 Binary files /dev/null and b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_cgraph.png differ diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.map b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.map new file mode 100644 index 0000000..3fe7af7 --- /dev/null +++ b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.md5 b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.md5 new file mode 100644 index 0000000..2796319 --- /dev/null +++ b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.md5 @@ -0,0 +1 @@ +195c86792bbe2a0ab1a2b378276bcff4 \ No newline at end of file diff --git a/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.png b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.png new file mode 100644 index 0000000..229ac9c Binary files /dev/null and b/docs/class_main_window_a9aa96a47567bb4c129c3c0ec88fff3a8_icgraph.png differ diff --git a/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.map b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.map new file mode 100644 index 0000000..dd6c18f --- /dev/null +++ b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.md5 b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.md5 new file mode 100644 index 0000000..ce7bb37 --- /dev/null +++ b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.md5 @@ -0,0 +1 @@ +c111c6a0a885a7da735bbe1338477dea \ No newline at end of file diff --git a/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.png b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.png new file mode 100644 index 0000000..ccdbd5a Binary files /dev/null and b/docs/class_main_window_abce189c4c57b052878c91f1f6428bba3_icgraph.png differ diff --git a/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.map b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.map new file mode 100644 index 0000000..d738932 --- /dev/null +++ b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.md5 b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.md5 new file mode 100644 index 0000000..8dcaae1 --- /dev/null +++ b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.md5 @@ -0,0 +1 @@ +b2c325c4f811fed9d28340d6048ca41b \ No newline at end of file diff --git a/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.png b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.png new file mode 100644 index 0000000..943e325 Binary files /dev/null and b/docs/class_main_window_addd0ecbc66696a8427539ea464a56c7d_icgraph.png differ diff --git a/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.map b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.map new file mode 100644 index 0000000..e057a80 --- /dev/null +++ b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.md5 b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.md5 new file mode 100644 index 0000000..14c31a8 --- /dev/null +++ b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.md5 @@ -0,0 +1 @@ +2bf3a00a671298ecccc70292e41522f4 \ No newline at end of file diff --git a/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.png b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.png new file mode 100644 index 0000000..0c2a1d0 Binary files /dev/null and b/docs/class_main_window_adf836fa5cd0d1a80544f272fac06867f_icgraph.png differ diff --git a/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.map b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.map new file mode 100644 index 0000000..1494fe1 --- /dev/null +++ b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.md5 b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.md5 new file mode 100644 index 0000000..48878c9 --- /dev/null +++ b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.md5 @@ -0,0 +1 @@ +6a07d5e5987f3103ca048c1510f565b2 \ No newline at end of file diff --git a/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.png b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.png new file mode 100644 index 0000000..229d4db Binary files /dev/null and b/docs/class_main_window_af5c159a4d57c57c6014b6892d14eb816_icgraph.png differ diff --git a/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.map b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.map new file mode 100644 index 0000000..6f5ebba --- /dev/null +++ b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.md5 b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.md5 new file mode 100644 index 0000000..7b214a3 --- /dev/null +++ b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.md5 @@ -0,0 +1 @@ +8e59979a9aa4fe0d00797a9e531e642c \ No newline at end of file diff --git a/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.png b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.png new file mode 100644 index 0000000..5b8ebd6 Binary files /dev/null and b/docs/class_main_window_afb15e4bd4206b7c4049ebf297f8c02bd_icgraph.png differ diff --git a/docs/class_q_main_window.html b/docs/class_q_main_window.html new file mode 100644 index 0000000..bf55394 --- /dev/null +++ b/docs/class_q_main_window.html @@ -0,0 +1,119 @@ + + + + + + + +DreamHacker: QMainWindow Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
QMainWindow Class Reference
+
+
+
+Inheritance diagram for QMainWindow:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for QMainWindow:
+
+
Collaboration graph
+ + + +
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_q_main_window__coll__graph.map b/docs/class_q_main_window__coll__graph.map new file mode 100644 index 0000000..0df04dc --- /dev/null +++ b/docs/class_q_main_window__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/class_q_main_window__coll__graph.md5 b/docs/class_q_main_window__coll__graph.md5 new file mode 100644 index 0000000..2425100 --- /dev/null +++ b/docs/class_q_main_window__coll__graph.md5 @@ -0,0 +1 @@ +4d001f9c13dc958d8f887a534809c51a \ No newline at end of file diff --git a/docs/class_q_main_window__coll__graph.png b/docs/class_q_main_window__coll__graph.png new file mode 100644 index 0000000..73d929c Binary files /dev/null and b/docs/class_q_main_window__coll__graph.png differ diff --git a/docs/class_q_main_window__inherit__graph.map b/docs/class_q_main_window__inherit__graph.map new file mode 100644 index 0000000..117ec20 --- /dev/null +++ b/docs/class_q_main_window__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_q_main_window__inherit__graph.md5 b/docs/class_q_main_window__inherit__graph.md5 new file mode 100644 index 0000000..1162e48 --- /dev/null +++ b/docs/class_q_main_window__inherit__graph.md5 @@ -0,0 +1 @@ +c4b24fbae7a20a767df6ba687075f969 \ No newline at end of file diff --git a/docs/class_q_main_window__inherit__graph.png b/docs/class_q_main_window__inherit__graph.png new file mode 100644 index 0000000..6897094 Binary files /dev/null and b/docs/class_q_main_window__inherit__graph.png differ diff --git a/docs/class_s_e_n_s_o_rfastcgicallback.html b/docs/class_s_e_n_s_o_rfastcgicallback.html new file mode 100644 index 0000000..f9cc108 --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback.html @@ -0,0 +1,279 @@ + + + + + + + +DreamHacker: SENSORfastcgicallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SENSORfastcgicallback Class Reference
+
+
+
+Inheritance diagram for SENSORfastcgicallback:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for SENSORfastcgicallback:
+
+
Collaboration graph
+ + + + + + + +
+ + + + +

+Public Member Functions

virtual void hasSample (int beats, bool mayBeSleep, int bpmThreshold)
 
+ + + + + + + + + +

+Data Fields

int beatsPerMinute
 
bool sleep
 
int threshold
 
long t
 
+

Detailed Description

+

class SENSORfastcgicallback brief Callback class when beats data arrive details Handler which receives the data here just saves the most recent sample with timestamp. Obviously, the data would be forwarde to frontend for showing to user.

+ +

Definition at line 30 of file main.cpp.

+

Member Function Documentation

+ +

◆ hasSample()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void SENSORfastcgicallback::hasSample (int beats,
bool mayBeSleep,
int bpmThreshold 
)
+
+inlinevirtual
+
+

brief Callback with the fresh pulse data. details This function is called whenever a new pulse data is arrived. It updates the local variables, which in turn forwarded to frontend. param beats int – Beats per minute, real data from sensor mayBeSleep boolean – Sleep defining variable, true if person is asleep. return void

+ +

Implements SensorCallback.

+ +

Definition at line 48 of file main.cpp.

+
48  {
+
49  sleep = mayBeSleep;
+
50  beatsPerMinute = beats;
+
51  threshold = bpmThreshold;
+
52  t = time(NULL);
+
53  }
+ + + + +
+

References beatsPerMinute, sleep, t, and threshold.

+ +
+
+

Field Documentation

+ +

◆ beatsPerMinute

+ +
+
+ + + + +
int SENSORfastcgicallback::beatsPerMinute
+
+ +

Definition at line 32 of file main.cpp.

+ +

Referenced by JSONCGIADCCallback::getJSONString(), and hasSample().

+ +
+
+ +

◆ sleep

+ +
+
+ + + + +
bool SENSORfastcgicallback::sleep
+
+ +

Definition at line 33 of file main.cpp.

+ +

Referenced by JSONCGIADCCallback::getJSONString(), and hasSample().

+ +
+
+ +

◆ t

+ +
+
+ + + + +
long SENSORfastcgicallback::t
+
+ +

Definition at line 35 of file main.cpp.

+ +

Referenced by hasSample().

+ +
+
+ +

◆ threshold

+ +
+
+ + + + +
int SENSORfastcgicallback::threshold
+
+ +

Definition at line 34 of file main.cpp.

+ +

Referenced by JSONCGIADCCallback::getJSONString(), and hasSample().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_s_e_n_s_o_rfastcgicallback.js b/docs/class_s_e_n_s_o_rfastcgicallback.js new file mode 100644 index 0000000..ce09417 --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback.js @@ -0,0 +1,8 @@ +var class_s_e_n_s_o_rfastcgicallback = +[ + [ "hasSample", "class_s_e_n_s_o_rfastcgicallback.html#a554ef360acfa9d3659742697b2946f3a", null ], + [ "beatsPerMinute", "class_s_e_n_s_o_rfastcgicallback.html#a6b4105c78aed0f6d71feccb84dc1ffd6", null ], + [ "sleep", "class_s_e_n_s_o_rfastcgicallback.html#aa667ff1226feb85d2684cc355ca6e644", null ], + [ "t", "class_s_e_n_s_o_rfastcgicallback.html#aaa260a6ca2f81d83f769b4c3ca6acc73", null ], + [ "threshold", "class_s_e_n_s_o_rfastcgicallback.html#ad48620809e828f35a6e6c0e7065f13aa", null ] +]; \ No newline at end of file diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.map b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.map new file mode 100644 index 0000000..cc8953f --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.md5 b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.md5 new file mode 100644 index 0000000..fe6c1d6 --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.md5 @@ -0,0 +1 @@ +482b03b1ec2cf9a6a489cf9527e34ada \ No newline at end of file diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.png b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.png new file mode 100644 index 0000000..f6b5ac8 Binary files /dev/null and b/docs/class_s_e_n_s_o_rfastcgicallback__coll__graph.png differ diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.map b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.map new file mode 100644 index 0000000..c3a1f5e --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.md5 b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.md5 new file mode 100644 index 0000000..6de6fd7 --- /dev/null +++ b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.md5 @@ -0,0 +1 @@ +779b52ffabb6ec612407934c56767b39 \ No newline at end of file diff --git a/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.png b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.png new file mode 100644 index 0000000..289747a Binary files /dev/null and b/docs/class_s_e_n_s_o_rfastcgicallback__inherit__graph.png differ diff --git a/docs/class_sense_window.html b/docs/class_sense_window.html new file mode 100644 index 0000000..33bd763 --- /dev/null +++ b/docs/class_sense_window.html @@ -0,0 +1,269 @@ + + + + + + + +DreamHacker: SenseWindow Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SenseWindow Class Reference
+
+
+ +

#include <PulseSensor.h>

+
+Inheritance diagram for SenseWindow:
+
+
Inheritance graph
+ + + + + +
+
+Collaboration diagram for SenseWindow:
+
+
Collaboration graph
+ + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

 SenseWindow ()
 
void timerEvent (QTimerEvent *)
 
- Public Member Functions inherited from MainWindow
 MainWindow (QWidget *parent=0)
 
void timerEvent (QTimerEvent *)
 
void addRealtimeSample (double v)
 
void callPlot ()
 
+ + + +

+Private Attributes

int Signal
 
+

Detailed Description

+
+

Definition at line 531 of file PulseSensor.h.

+

Constructor & Destructor Documentation

+ +

◆ SenseWindow()

+ +
+
+ + + + + +
+ + + + + + + +
SenseWindow::SenseWindow ()
+
+inline
+
+ +

Definition at line 535 of file PulseSensor.h.

+
535  {
+
536  }
+
+
+
+

Member Function Documentation

+ +

◆ timerEvent()

+ +
+
+ + + + + +
+ + + + + + + + +
void SenseWindow::timerEvent (QTimerEvent * )
+
+inline
+
+ +

Definition at line 537 of file PulseSensor.h.

+
537  {
+
538  Signal = analogRead(BASE);
+ +
540  callPlot();
+
541  }
+
#define BASE
Definition: PulseSensor.h:7
+
void addRealtimeSample(double v)
Definition: mainwindow.cpp:236
+
void callPlot()
Definition: mainwindow.cpp:119
+ +
+

References MainWindow::addRealtimeSample(), BASE, MainWindow::callPlot(), and Signal.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+

Field Documentation

+ +

◆ Signal

+ +
+
+ + + + + +
+ + + + +
int SenseWindow::Signal
+
+private
+
+ +

Definition at line 533 of file PulseSensor.h.

+ +

Referenced by timerEvent().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_sense_window.js b/docs/class_sense_window.js new file mode 100644 index 0000000..233ee97 --- /dev/null +++ b/docs/class_sense_window.js @@ -0,0 +1,6 @@ +var class_sense_window = +[ + [ "SenseWindow", "class_sense_window.html#afb0c22b15152f699fcb1a4e1fd254f4b", null ], + [ "timerEvent", "class_sense_window.html#a43602e0dfc68a2ad1b46562e5af17fd7", null ], + [ "Signal", "class_sense_window.html#ad97aff95e489210aaa4dec6fc03dd741", null ] +]; \ No newline at end of file diff --git a/docs/class_sense_window__coll__graph.map b/docs/class_sense_window__coll__graph.map new file mode 100644 index 0000000..73c1fa9 --- /dev/null +++ b/docs/class_sense_window__coll__graph.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/class_sense_window__coll__graph.md5 b/docs/class_sense_window__coll__graph.md5 new file mode 100644 index 0000000..f1a3263 --- /dev/null +++ b/docs/class_sense_window__coll__graph.md5 @@ -0,0 +1 @@ +cfc8abd3be8aebe4f503a97ea2699659 \ No newline at end of file diff --git a/docs/class_sense_window__coll__graph.png b/docs/class_sense_window__coll__graph.png new file mode 100644 index 0000000..a1b8ae8 Binary files /dev/null and b/docs/class_sense_window__coll__graph.png differ diff --git a/docs/class_sense_window__inherit__graph.map b/docs/class_sense_window__inherit__graph.map new file mode 100644 index 0000000..1c88895 --- /dev/null +++ b/docs/class_sense_window__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sense_window__inherit__graph.md5 b/docs/class_sense_window__inherit__graph.md5 new file mode 100644 index 0000000..d74849e --- /dev/null +++ b/docs/class_sense_window__inherit__graph.md5 @@ -0,0 +1 @@ +fd69538c3991eb0e635c4aa086ce763e \ No newline at end of file diff --git a/docs/class_sense_window__inherit__graph.png b/docs/class_sense_window__inherit__graph.png new file mode 100644 index 0000000..57bbce5 Binary files /dev/null and b/docs/class_sense_window__inherit__graph.png differ diff --git a/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.map b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.map new file mode 100644 index 0000000..6870db9 --- /dev/null +++ b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.md5 b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.md5 new file mode 100644 index 0000000..8cdb28f --- /dev/null +++ b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.md5 @@ -0,0 +1 @@ +23334b58ec81564207d39f2468d541e7 \ No newline at end of file diff --git a/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.png b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.png new file mode 100644 index 0000000..a030797 Binary files /dev/null and b/docs/class_sense_window_a43602e0dfc68a2ad1b46562e5af17fd7_cgraph.png differ diff --git a/docs/class_sensor_callback.html b/docs/class_sensor_callback.html new file mode 100644 index 0000000..69d9b51 --- /dev/null +++ b/docs/class_sensor_callback.html @@ -0,0 +1,189 @@ + + + + + + + +DreamHacker: SensorCallback Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SensorCallback Class Referenceabstract
+
+
+ +

#include <PulseSensor.h>

+
+Inheritance diagram for SensorCallback:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for SensorCallback:
+
+
Collaboration graph
+ + + +
+ + + + +

+Public Member Functions

virtual void hasSample (int beats, bool mayBeSleep, int bpmThreshold)=0
 
+

Detailed Description

+

class SensorCallback brief Callback class for sensor data details Callback for new samples which needs to be implemented by the main program. The function hasSample needs to be overloaded in the main program.

+ +

Definition at line 18 of file PulseSensor.h.

+

Member Function Documentation

+ +

◆ hasSample()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void SensorCallback::hasSample (int beats,
bool mayBeSleep,
int bpmThreshold 
)
+
+pure virtual
+
+

Called after a sample has arrived.

+ +

Implemented in SENSORfastcgicallback.

+ +

Referenced by SensorTimer::timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_sensor_callback.js b/docs/class_sensor_callback.js new file mode 100644 index 0000000..5dceaad --- /dev/null +++ b/docs/class_sensor_callback.js @@ -0,0 +1,4 @@ +var class_sensor_callback = +[ + [ "hasSample", "class_sensor_callback.html#a89069694af2123270caf56839ed22cdd", null ] +]; \ No newline at end of file diff --git a/docs/class_sensor_callback__coll__graph.map b/docs/class_sensor_callback__coll__graph.map new file mode 100644 index 0000000..bfdb45f --- /dev/null +++ b/docs/class_sensor_callback__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/class_sensor_callback__coll__graph.md5 b/docs/class_sensor_callback__coll__graph.md5 new file mode 100644 index 0000000..d91815d --- /dev/null +++ b/docs/class_sensor_callback__coll__graph.md5 @@ -0,0 +1 @@ +b0591dac9026f77ca1e5a218549ca7f7 \ No newline at end of file diff --git a/docs/class_sensor_callback__coll__graph.png b/docs/class_sensor_callback__coll__graph.png new file mode 100644 index 0000000..05c4b70 Binary files /dev/null and b/docs/class_sensor_callback__coll__graph.png differ diff --git a/docs/class_sensor_callback__inherit__graph.map b/docs/class_sensor_callback__inherit__graph.map new file mode 100644 index 0000000..3f2cb1c --- /dev/null +++ b/docs/class_sensor_callback__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_callback__inherit__graph.md5 b/docs/class_sensor_callback__inherit__graph.md5 new file mode 100644 index 0000000..e6fb555 --- /dev/null +++ b/docs/class_sensor_callback__inherit__graph.md5 @@ -0,0 +1 @@ +d3b185777a07aff8efef2fb0a3350c15 \ No newline at end of file diff --git a/docs/class_sensor_callback__inherit__graph.png b/docs/class_sensor_callback__inherit__graph.png new file mode 100644 index 0000000..ddeb4f9 Binary files /dev/null and b/docs/class_sensor_callback__inherit__graph.png differ diff --git a/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.map b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.map new file mode 100644 index 0000000..783e010 --- /dev/null +++ b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.md5 b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.md5 new file mode 100644 index 0000000..3f0f879 --- /dev/null +++ b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.md5 @@ -0,0 +1 @@ +69e52ecfa545effada877a82e14c3cf9 \ No newline at end of file diff --git a/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.png b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.png new file mode 100644 index 0000000..9e4dd4a Binary files /dev/null and b/docs/class_sensor_callback_a89069694af2123270caf56839ed22cdd_icgraph.png differ diff --git a/docs/class_sensor_timer.html b/docs/class_sensor_timer.html new file mode 100644 index 0000000..d7ef403 --- /dev/null +++ b/docs/class_sensor_timer.html @@ -0,0 +1,2264 @@ + + + + + + + +DreamHacker: SensorTimer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
SensorTimer Class Reference
+
+
+ +

#include <PulseSensor.h>

+
+Inheritance diagram for SensorTimer:
+
+
Inheritance graph
+ + + + +
+
+Collaboration diagram for SensorTimer:
+
+
Collaboration graph
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SensorTimer (int, bool, bool)
 
void setCallback (SensorCallback *cb)
 
void timerEvent ()
 
void initPulseSensorVariables (void)
 
void getPulse (void)
 
bool analyzeBeatsForSleep (int bpm)
 
void initializeVariablesForSleep (void)
 
void audioprocess ()
 
pid_t play_audio (char *audio_name)
 
void kill_the_pid (pid_t x)
 
void beatsPerMinuteSimulation ()
 
void setPeriodOfSimulatedWave (int)
 
void setSurelySleptTime (int)
 
void setNigtTimeToNow ()
 
void stopNew ()
 
- Public Member Functions inherited from CppTimer
 CppTimer (const int signo=SIGRTMIN)
 
virtual void startns (long nanosecs, cppTimerType_t type=PERIODIC)
 
virtual void startms (long millisecs, cppTimerType_t type=PERIODIC)
 
virtual void stop ()
 
virtual ~CppTimer ()
 
+ + + +

+Data Fields

time_t start_of_simulation
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Attributes

SensorCallbacksensorCallback = nullptr
 
unsigned int eventCounter
 
unsigned int thisTime
 
unsigned int lastTime
 
unsigned int elapsedTime
 
int firstTime
 
int secondTime
 
int duration
 
int timeOutStart
 
int dataRequestStart
 
int m
 
int Signal
 
unsigned int sampleCounter
 
int threshSetting
 
int lastBeatTime
 
int thresh = 550
 
int P = 512
 
int T = 512
 
int firstBeat = 1
 
int secondBeat = 0
 
int QS = 0
 
int rate [10]
 
int BPM = 0
 
int IBI = 600
 
int Pulse = 0
 
int amp = 100
 
int call_time_period = 2000
 
time_t nightTime
 
time_t wakeTime
 
int bpmThreshold = 77
 
bool maybeSleep = 0
 
time_t surelySleptTime = 2
 
bool sleep
 
time_t startOfProspectiveSleep
 
int countdown = 0
 
bool is_audio_playing = 0
 
bool play_audio_locally = 1
 
pid_t audio_pid
 
char audio_name [500]
 
bool is_simulation = 0
 
bool simulation_started = 0
 
time_t period_of_simulation = 60*1
 
+ +

+Additional Inherited Members

+

Detailed Description

+

SensorTimer is inherited from CppTimer which itself is a wrapper around timer present in time.h SensorTimer declares variables and functions to take readings from the hardware. Analyze the beats per minute to determine sleep and plays an audio in such a case.

+ +

Definition at line 31 of file PulseSensor.h.

+

Constructor & Destructor Documentation

+ +

◆ SensorTimer()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
SensorTimer::SensorTimer (int l_bpmThreshold,
bool l_simulation,
bool l_local_audio 
)
+
+

Constructor function takes three arguments: bpm threshold: this sets the bpmThreshold variable is_simulation: this sets the is_simulation variable local_audio: this sets the play_audio_locally variable The function also intializes variables necessary for measurement of pulse and variables need to analyze bpm for sleep.

+ +

Definition at line 226 of file PulseSensor.h.

+
226  {
+
227 
+
228  is_simulation = l_simulation;
+
229  bpmThreshold = l_bpmThreshold;
+
230  play_audio_locally = l_local_audio;
+
231 
+ + +
234  FILE *fptr;
+
235  if ((fptr = fopen("audio.txt", "r")) == NULL) {
+
236  printf("Error! opening audio.txt");
+
237  play_audio_locally = 0;
+
238  }else{
+
239  fscanf(fptr,"%s", audio_name);
+
240  fclose(fptr);
+
241  play_audio_locally = 1;
+
242  }
+
243 }
+
void initializeVariablesForSleep(void)
Definition: PulseSensor.h:479
+
int bpmThreshold
Definition: PulseSensor.h:70
+
char audio_name[500]
Definition: PulseSensor.h:121
+
void initPulseSensorVariables(void)
Definition: PulseSensor.h:361
+
bool play_audio_locally
Definition: PulseSensor.h:110
+
bool is_simulation
Definition: PulseSensor.h:126
+
+

References audio_name, bpmThreshold, initializeVariablesForSleep(), initPulseSensorVariables(), is_simulation, and play_audio_locally.

+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+

Member Function Documentation

+ +

◆ analyzeBeatsForSleep()

+ +
+
+ + + + + + + + +
bool SensorTimer::analyzeBeatsForSleep (int bpm)
+
+

Function to analyze sleep based on beats per minute. if BPM is below a certain threshold mayBeSleep should be on if mayBeSleep is on for a while then return 1;

+ +

Definition at line 499 of file PulseSensor.h.

+
500 {
+
501  bool sleep_local = 0;
+
502  time_t maybeSleepTime;
+
503  time_t now = time(NULL);
+
504  //printf("BPM is %d, now is %d, nightTime is %d wakeTime is %d\n", BPM, now, nightTime, wakeTime);
+
505  if (now > nightTime && now < wakeTime) {
+
506  if (bpm < bpmThreshold && maybeSleep == 0) {
+
507  printf("\n\n\nmaybesleep Positive\n\n\n");
+
508  startOfProspectiveSleep = time(NULL);
+
509  maybeSleep = 1;
+
510  }
+
511  if (bpm < bpmThreshold && maybeSleep == 1) {
+
512  maybeSleepTime = time(NULL) - startOfProspectiveSleep;
+
513  countdown = surelySleptTime - maybeSleepTime;
+
514  if (maybeSleepTime > surelySleptTime) {
+
515  sleep_local = 1;
+
516  }
+
517  }
+
518  if (bpm > bpmThreshold && maybeSleep == 1) {
+
519  maybeSleep = 0;
+
520  }
+
521  }
+
522  else {
+
523  sleep_local = 0;
+
524  }
+
525  return sleep_local;
+
526 }
+
time_t nightTime
Definition: PulseSensor.h:59
+
bool maybeSleep
Definition: PulseSensor.h:78
+ +
time_t surelySleptTime
Definition: PulseSensor.h:84
+
time_t wakeTime
Definition: PulseSensor.h:65
+
time_t startOfProspectiveSleep
Definition: PulseSensor.h:95
+
+

References bpmThreshold, countdown, maybeSleep, nightTime, startOfProspectiveSleep, surelySleptTime, and wakeTime.

+ +

Referenced by timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ audioprocess()

+ +
+
+ + + + + + + +
void SensorTimer::audioprocess ()
+
+

This function monitors the sleep variable and decides if an audio must be played. It also keeps track of the pids of the processes created to play the audio.

+ +

Definition at line 261 of file PulseSensor.h.

+
261  {
+
262  if(sleep == 1 && is_audio_playing == 0 && play_audio_locally){
+
263  is_audio_playing = 1;
+
264  printf("\n\n\nSleep is positive. Playing Audio.\n\n\n");
+ +
266  /*
+
267  * If child process then the audio is already ended, pid must kill itself safely
+
268  */
+
269  if(audio_pid == 0){
+
270  raise(SIGKILL);
+
271  }else{
+
272  /*
+
273  * If parent process then continue and put the is_audio_playing flag to be true
+
274  */
+
275  is_audio_playing = 1;
+
276  printf("\n\n\nAudio pid is %d\n\n\n", audio_pid);
+
277  }
+
278  }
+
279  else if(is_audio_playing == 1 && sleep == 0 && play_audio_locally && audio_pid > 0){
+
280  /*
+
281  * When the person wakes up again kill the pid which runs the audio
+
282  */
+
283  printf("\n\n\n Killing the Audio as maybe the person has woken up\n\n\n");
+ +
285  is_audio_playing = 0;
+
286 
+
287  }else if(is_audio_playing == 1 && sleep == 1 && audio_pid > 0 && kill(audio_pid, 0) < 0){
+
288  //the audio has ended.
+
289  is_audio_playing == 0;
+
290  }
+
291 }
+
pid_t play_audio(char *audio_name)
Definition: PulseSensor.h:292
+ +
void kill_the_pid(pid_t x)
Definition: PulseSensor.h:304
+
pid_t audio_pid
Definition: PulseSensor.h:116
+
bool is_audio_playing
Definition: PulseSensor.h:104
+
+

References audio_name, audio_pid, is_audio_playing, kill_the_pid(), play_audio(), play_audio_locally, and sleep.

+ +

Referenced by timerEvent().

+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ beatsPerMinuteSimulation()

+ +
+
+ + + + + + + +
void SensorTimer::beatsPerMinuteSimulation ()
+
+

Simulates bpm values as a triangular wave.

+ +

Definition at line 335 of file PulseSensor.h.

+
335  {
+
336  if(simulation_started == 0){
+
337  start_of_simulation = time(NULL);
+
338  simulation_started = 1;
+
339  }
+
340  int begin_bpm = 80;
+
341  int end_bpm = 60;
+
342  //time_t period_of_simulation = 60*1; //5 minute duration
+
343  float slope = (float)(end_bpm - begin_bpm)/(float)(period_of_simulation/2);
+
344  int t = (time(NULL) - start_of_simulation)%period_of_simulation;
+
345  //Downwards
+
346  int sim_bpm = begin_bpm;
+
347  //printf("slope is %f\n",slope);
+
348  if(t < period_of_simulation/2)
+
349  sim_bpm = (int)(slope*t) + begin_bpm;
+
350  //Upwards
+
351  else if(t >= period_of_simulation/2 && t <= period_of_simulation){
+
352  t = t - (period_of_simulation/2);
+
353  sim_bpm = -1 * (int)(slope*t) + end_bpm;
+
354  }
+
355  BPM = sim_bpm;
+
356 }
+
time_t period_of_simulation
Definition: PulseSensor.h:136
+ +
time_t start_of_simulation
Definition: PulseSensor.h:201
+
bool simulation_started
Definition: PulseSensor.h:131
+
+

References BPM, period_of_simulation, simulation_started, and start_of_simulation.

+ +

Referenced by timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ getPulse()

+ +
+
+ + + + + + + + +
void SensorTimer::getPulse (void )
+
+

This function gets the Signal from the DAC and calculates bpm and othe parameters from the Signal.

+

This function is taken from the hardware vendor's github repo.

+ +

Definition at line 391 of file PulseSensor.h.

+
391  {
+
392 
+
393  thisTime = micros();
+
394  Signal = analogRead(BASE);
+ +
396  lastTime = thisTime;
+
397 
+
398 
+
399  sampleCounter += 2; // keep track of the time in mS with this variable
+
400  int N = sampleCounter - lastBeatTime; // monitor the time since the last beat to avoid noise
+
401 
+
402 
+
403  // find the peak and trough of the pulse wave
+
404  if (Signal < thresh && N > (IBI / 5) * 3) { // avoid dichrotic noise by waiting 3/5 of last IBI
+
405  if (Signal < T) { // T is the trough
+
406  T = Signal; // keep track of lowest point in pulse wave
+
407  }
+
408  }
+
409 
+
410  if (Signal > thresh && Signal > P) { // thresh condition helps avoid noise
+
411  P = Signal; // P is the peak
+
412  } // keep track of highest point in pulse wave
+
413 
+
414  // NOW IT'S TIME TO LOOK FOR THE HEART BEAT
+
415  // signal surges up in value every time there is a pulse
+
416  if (N > 250) { // avoid high frequency noise
+
417  if ( (Signal > thresh) && (Pulse == 0) && (N > ((IBI / 5) * 3)) ) {
+
418  Pulse = 1; // set the Pulse flag when we think there is a pulse
+
419  IBI = sampleCounter - lastBeatTime; // measure time between beats in mS
+
420  lastBeatTime = sampleCounter; // keep track of time for next pulse
+
421 
+
422  if (secondBeat) { // if this is the second beat, if secondBeat == TRUE
+
423  secondBeat = 0; // clear secondBeat flag
+
424  for (int i = 0; i <= 9; i++) { // seed the running total to get a realisitic BPM at startup
+
425  rate[i] = IBI;
+
426  }
+
427  }
+
428 
+
429  if (firstBeat) { // if it's the first time we found a beat, if firstBeat == TRUE
+
430  firstBeat = 0; // clear firstBeat flag
+
431  secondBeat = 1; // set the second beat flag
+
432  // IBI value is unreliable so discard it
+
433  return;
+
434  }
+
435 
+
436 
+
437  // keep a running total of the last 10 IBI values
+
438  int runningTotal = 0; // clear the runningTotal variable
+
439 
+
440  for (int i = 0; i <= 8; i++) { // shift data in the rate array
+
441  rate[i] = rate[i + 1]; // and drop the oldest IBI value
+
442  runningTotal += rate[i]; // add up the 9 oldest IBI values
+
443  }
+
444 
+
445  rate[9] = IBI; // add the latest IBI to the rate array
+
446  runningTotal += rate[9]; // add the latest IBI to runningTotal
+
447  runningTotal /= 10; // average the last 10 IBI values
+
448  BPM = 60000 / runningTotal; // how many beats can fit into a minute? that's BPM!
+
449  QS = 1; // set Quantified Self flag (we detected a beat)
+
450  //fadeLevel = MAX_FADE_LEVEL; // If we're fading, re-light that LED.
+
451  }
+
452  }
+
453 
+
454  if (Signal < thresh && Pulse == 1) { // when the values are going down, the beat is over
+
455  Pulse = 0; // reset the Pulse flag so we can do it again
+
456  amp = P - T; // get amplitude of the pulse wave
+
457  thresh = amp / 2 + T; // set thresh at 50% of the amplitude
+
458  P = thresh; // reset these for next time
+
459  T = thresh;
+
460  }
+
461 
+
462  if (N > 2500) { // if 2.5 seconds go by without a beat
+
463  thresh = threshSetting; // set thresh default
+
464  P = 512; // set P default
+
465  T = 512; // set T default
+
466  lastBeatTime = sampleCounter; // bring the lastBeatTime up to date
+
467  firstBeat = 1; // set these to avoid noise
+
468  secondBeat = 0; // when we get the heartbeat back
+
469  QS = 0;
+
470  BPM = 0;
+
471  IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM)
+
472  Pulse = 0;
+
473  amp = 100; // beat amplitude 1/10 of input range.
+
474 
+
475  }
+
476 
+
477  duration = micros()-thisTime;
+
478 }
+
#define BASE
Definition: PulseSensor.h:7
+
unsigned int lastTime
Definition: PulseSensor.h:34
+ +
unsigned int elapsedTime
Definition: PulseSensor.h:34
+ +
int lastBeatTime
Definition: PulseSensor.h:39
+ +
int threshSetting
Definition: PulseSensor.h:39
+ +
unsigned int sampleCounter
Definition: PulseSensor.h:38
+ + +
int secondBeat
Definition: PulseSensor.h:44
+ + +
int rate[10]
Definition: PulseSensor.h:46
+
unsigned int thisTime
Definition: PulseSensor.h:34
+ + +
+

References amp, BASE, BPM, duration, elapsedTime, firstBeat, IBI, lastBeatTime, lastTime, P, Pulse, QS, rate, sampleCounter, secondBeat, Signal, T, thisTime, thresh, and threshSetting.

+ +

Referenced by timerEvent().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ initializeVariablesForSleep()

+ +
+
+ + + + + + + + +
void SensorTimer::initializeVariablesForSleep (void )
+
+

This function initializes the variables for sleep detection.

+ +

Definition at line 479 of file PulseSensor.h.

+
479  {
+
480  time_t current_time = time(NULL);
+
481  struct tm *time_split = localtime(&current_time);
+
482  struct tm night_time_split = {0, 0, 22, time_split->tm_mday,
+
483  time_split->tm_mon, time_split->tm_year, time_split->tm_wday, time_split->tm_yday, time_split->tm_isdst};
+
484  nightTime = mktime(&night_time_split);
+
485  if(is_simulation)
+
486  nightTime = time(NULL) - 60;
+
487  time_t estimatedSleepLength = 60*60*8;
+
488  wakeTime = nightTime + estimatedSleepLength;
+
489 }
+
+

References is_simulation, nightTime, and wakeTime.

+ +

Referenced by SensorTimer().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ initPulseSensorVariables()

+ +
+
+ + + + + + + + +
void SensorTimer::initPulseSensorVariables (void )
+
+

This function intializes variables necessary to read the data, and get the beats per minute.

+

This function is taken from the hardware vendor's github repo.

+ +

Definition at line 361 of file PulseSensor.h.

+
361  {
+
362 
+
363  wiringPiSetup(); //use the wiringPi pin numbers
+
364  mcp3004Setup(BASE,SPI_CHAN); // setup the mcp3004 library
+
365 
+
366 
+
367  for (int i = 0; i < 10; ++i) {
+
368  rate[i] = 0;
+
369  }
+
370  QS = 0;
+
371  BPM = 0;
+
372  IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM)
+
373  Pulse = 0;
+
374  sampleCounter = 0;
+
375  lastBeatTime = 0;
+
376  P = 512; // peak at 1/2 the input range of 0..1023
+
377  T = 512; // trough at 1/2 the input range.
+
378  threshSetting = 550; // used to seed and reset the thresh variable
+
379  thresh = 550; // threshold a little above the trough
+
380  amp = 100; // beat amplitude 1/10 of input range.
+
381  firstBeat = 1; // looking for the first beat
+
382  secondBeat = 0; // not yet looking for the second beat in a row
+
383  lastTime = micros();
+ +
385  call_time_period = 2000; //in microseconds 2 milli s
+
386 }
+
#define SPI_CHAN
Definition: PulseSensor.h:8
+
int call_time_period
Definition: PulseSensor.h:51
+
int timeOutStart
Definition: PulseSensor.h:36
+
+

References amp, BASE, BPM, call_time_period, firstBeat, IBI, lastBeatTime, lastTime, P, Pulse, QS, rate, sampleCounter, secondBeat, SPI_CHAN, T, thresh, threshSetting, and timeOutStart.

+ +

Referenced by SensorTimer().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ kill_the_pid()

+ +
+
+ + + + + + + + +
void SensorTimer::kill_the_pid (pid_t x)
+
+

Kills the pid of given to it as parameter

+ +

Definition at line 304 of file PulseSensor.h.

+
304  {
+
305  //char kil[100] = "kill -9 ";
+
306  //sprintf(kil,"%s%d",kil, x);
+
307  //system(kil);
+
308  kill(x,SIGINT);
+
309 }
+
+

Referenced by audioprocess().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ play_audio()

+ +
+
+ + + + + + + + +
pid_t SensorTimer::play_audio (char * audio_name)
+
+

This function is used inside the audioprocess It takes in the audio name as argument and forks the program to run the audio returns pid of the process which runs audio to the parent process

+ +

Definition at line 292 of file PulseSensor.h.

+
292  {
+
293  pid_t audio_pid_local;
+
294  if(0 == (audio_pid_local = fork())){
+
295  //child process
+
296  //printf("reached here\n");
+
297  execlp("mpg123", "mpg123", "-q", audio_name, 0);
+
298  is_audio_playing = 1;
+
299  }
+
300  is_audio_playing = 1;
+
301  return audio_pid_local;
+
302 }
+
+

References audio_name, and is_audio_playing.

+ +

Referenced by audioprocess().

+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ setCallback()

+ +
+
+ + + + + + + + +
void SensorTimer::setCallback (SensorCallbackcb)
+
+

Sets the callback which is called whenever there is a sample

+ +

Definition at line 314 of file PulseSensor.h.

+
314  {
+
315  //printf("pointer: %p\n", cb);
+
316  sensorCallback = cb;
+
317 }
+
SensorCallback * sensorCallback
Definition: PulseSensor.h:33
+
+

References sensorCallback.

+ +

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ setNigtTimeToNow()

+ +
+
+ + + + + + + +
void SensorTimer::setNigtTimeToNow ()
+
+

sets the night time to the current time. Useful in testing.

+ +

Definition at line 247 of file PulseSensor.h.

+
247  {
+
248  nightTime = time(NULL) - 60;
+
249  wakeTime = nightTime + 60*60*8;
+
250 }
+
+

References nightTime, and wakeTime.

+ +

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ setPeriodOfSimulatedWave()

+ +
+
+ + + + + + + + +
void SensorTimer::setPeriodOfSimulatedWave (int period)
+
+

sets the time period of the triangular wave of bpm simulation

+ +

Definition at line 251 of file PulseSensor.h.

+
251  {
+
252  period_of_simulation = period;
+
253 }
+
+

References period_of_simulation.

+ +
+
+ +

◆ setSurelySleptTime()

+ +
+
+ + + + + + + + +
void SensorTimer::setSurelySleptTime (int t)
+
+

sets the surelySleptTime variable

+ +

Definition at line 244 of file PulseSensor.h.

+
244  {
+
245  surelySleptTime = t;
+
246 }
+
+

References surelySleptTime.

+ +

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ stopNew()

+ +
+
+ + + + + + + +
void SensorTimer::stopNew ()
+
+

This function is a wrapper around stop() function of the stop() function of the CppTimer This function also kills any audio pid if it is present.

+ +

Definition at line 255 of file PulseSensor.h.

+
255  {
+
256  if(audio_pid > 0)
+
257  kill(audio_pid, SIGTERM);
+
258  stop();
+
259 }
+
virtual void stop()
Definition: CppTimer.cpp:78
+
+

References audio_pid, and CppTimer::stop().

+ +

Referenced by main().

+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ timerEvent()

+ +
+
+ + + + + +
+ + + + + + + +
void SensorTimer::timerEvent ()
+
+virtual
+
+

This is a function in the parent class which is overidden here. Everything mentioned in the function is fired periodically after a certain interval.

+ +

Implements CppTimer.

+ +

Definition at line 319 of file PulseSensor.h.

+
319  {
+
320  getPulse();
+
321  if(is_simulation)
+ + +
324  audioprocess();
+
325  //Main print message
+
326  printf("BPM Threshold is: %d, BPM is: %d, Maybe he is asleep: %d, "
+
327  "Sleep is: %d, Audio_On: %d, Countdown: %d\r", bpmThreshold, BPM, maybeSleep, sleep, is_audio_playing, countdown);
+
328  fflush(stdout);
+
329  if (nullptr != sensorCallback) {
+ +
331  }
+
332  fflush(stdout);
+
333 }
+
virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold)=0
+
bool analyzeBeatsForSleep(int bpm)
Definition: PulseSensor.h:499
+
void getPulse(void)
Definition: PulseSensor.h:391
+
void audioprocess()
Definition: PulseSensor.h:261
+
void beatsPerMinuteSimulation()
Definition: PulseSensor.h:335
+
+

References analyzeBeatsForSleep(), audioprocess(), beatsPerMinuteSimulation(), BPM, bpmThreshold, countdown, getPulse(), SensorCallback::hasSample(), is_audio_playing, is_simulation, maybeSleep, sensorCallback, and sleep.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + +
+ +
+
+

Field Documentation

+ +

◆ amp

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::amp = 100
+
+private
+
+ +

Definition at line 50 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ audio_name

+ +
+
+ + + + + +
+ + + + +
char SensorTimer::audio_name[500]
+
+private
+
+

string which stores the name of the audio file which should be played.

+ +

Definition at line 121 of file PulseSensor.h.

+ +

Referenced by audioprocess(), play_audio(), and SensorTimer().

+ +
+
+ +

◆ audio_pid

+ +
+
+ + + + + +
+ + + + +
pid_t SensorTimer::audio_pid
+
+private
+
+

pid_t tracks the pid of the process which plays the audio. It needs to be tracked so that it can be killed at an appropriate moment. Also, it helps the program to avoid creating multiple pids.

+ +

Definition at line 116 of file PulseSensor.h.

+ +

Referenced by audioprocess(), and stopNew().

+ +
+
+ +

◆ BPM

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::BPM = 0
+
+private
+
+ +

Definition at line 47 of file PulseSensor.h.

+ +

Referenced by beatsPerMinuteSimulation(), getPulse(), initPulseSensorVariables(), and timerEvent().

+ +
+
+ +

◆ bpmThreshold

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::bpmThreshold = 77
+
+private
+
+

int variable which stores the threshold on beats per minute

+ +

Definition at line 70 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), SensorTimer(), and timerEvent().

+ +
+
+ +

◆ call_time_period

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::call_time_period = 2000
+
+private
+
+ +

Definition at line 51 of file PulseSensor.h.

+ +

Referenced by initPulseSensorVariables().

+ +
+
+ +

◆ countdown

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::countdown = 0
+
+private
+
+ +

Definition at line 97 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), and timerEvent().

+ +
+
+ +

◆ dataRequestStart

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::dataRequestStart
+
+private
+
+ +

Definition at line 36 of file PulseSensor.h.

+ +
+
+ +

◆ duration

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::duration
+
+private
+
+ +

Definition at line 35 of file PulseSensor.h.

+ +

Referenced by getPulse().

+ +
+
+ +

◆ elapsedTime

+ +
+
+ + + + + +
+ + + + +
unsigned int SensorTimer::elapsedTime
+
+private
+
+ +

Definition at line 34 of file PulseSensor.h.

+ +

Referenced by getPulse().

+ +
+
+ +

◆ eventCounter

+ +
+
+ + + + + +
+ + + + +
unsigned int SensorTimer::eventCounter
+
+private
+
+ +

Definition at line 34 of file PulseSensor.h.

+ +
+
+ +

◆ firstBeat

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::firstBeat = 1
+
+private
+
+ +

Definition at line 43 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ firstTime

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::firstTime
+
+private
+
+ +

Definition at line 35 of file PulseSensor.h.

+ +
+
+ +

◆ IBI

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::IBI = 600
+
+private
+
+ +

Definition at line 48 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ is_audio_playing

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::is_audio_playing = 0
+
+private
+
+

bool which if 1 means the audio is playin and if zero means the audio is not playing. This is useful for functions which play audio as they must know if audio is playing or not.

+ +

Definition at line 104 of file PulseSensor.h.

+ +

Referenced by audioprocess(), play_audio(), and timerEvent().

+ +
+
+ +

◆ is_simulation

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::is_simulation = 0
+
+private
+
+

bool which if 1, will lead to production of simulated values of beats per minute (BPM).

+ +

Definition at line 126 of file PulseSensor.h.

+ +

Referenced by initializeVariablesForSleep(), SensorTimer(), and timerEvent().

+ +
+
+ +

◆ lastBeatTime

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::lastBeatTime
+
+private
+
+ +

Definition at line 39 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ lastTime

+ +
+
+ + + + + +
+ + + + +
unsigned int SensorTimer::lastTime
+
+private
+
+ +

Definition at line 34 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ m

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::m
+
+private
+
+ +

Definition at line 36 of file PulseSensor.h.

+ +
+
+ +

◆ maybeSleep

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::maybeSleep = 0
+
+private
+
+

bool variable which if is one the person is in maybesleep state. If it remains in this state for a while then the person gets into sleep state in a while maybeSleep is a superset of the sleep state. In other words, maybeSleep is a necessary condition for sleep.

+ +

Definition at line 78 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), and timerEvent().

+ +
+
+ +

◆ nightTime

+ +
+
+ + + + + +
+ + + + +
time_t SensorTimer::nightTime
+
+private
+
+

time_t variable stores when the night will start on the current day

+ +

Definition at line 59 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), initializeVariablesForSleep(), and setNigtTimeToNow().

+ +
+
+ +

◆ P

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::P = 512
+
+private
+
+ +

Definition at line 41 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ period_of_simulation

+ +
+
+ + + + + +
+ + + + +
time_t SensorTimer::period_of_simulation = 60*1
+
+private
+
+

The simulation produces a triagular wave of bpm. This is the time period of the waveform

+ +

Definition at line 136 of file PulseSensor.h.

+ +

Referenced by beatsPerMinuteSimulation(), and setPeriodOfSimulatedWave().

+ +
+
+ +

◆ play_audio_locally

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::play_audio_locally = 1
+
+private
+
+

bool which if > 0 means that the audio will be played by the program itself and not a remote server.

+ +

Definition at line 110 of file PulseSensor.h.

+ +

Referenced by audioprocess(), and SensorTimer().

+ +
+
+ +

◆ Pulse

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::Pulse = 0
+
+private
+
+ +

Definition at line 49 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ QS

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::QS = 0
+
+private
+
+ +

Definition at line 45 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ rate

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::rate[10]
+
+private
+
+ +

Definition at line 46 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ sampleCounter

+ +
+
+ + + + + +
+ + + + +
unsigned int SensorTimer::sampleCounter
+
+private
+
+ +

Definition at line 38 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ secondBeat

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::secondBeat = 0
+
+private
+
+ +

Definition at line 44 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ secondTime

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::secondTime
+
+private
+
+ +

Definition at line 35 of file PulseSensor.h.

+ +
+
+ +

◆ sensorCallback

+ +
+
+ + + + + +
+ + + + +
SensorCallback* SensorTimer::sensorCallback = nullptr
+
+private
+
+ +

Definition at line 33 of file PulseSensor.h.

+ +

Referenced by setCallback(), and timerEvent().

+ +
+
+ +

◆ Signal

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::Signal
+
+private
+
+ +

Definition at line 37 of file PulseSensor.h.

+ +

Referenced by getPulse().

+ +
+
+ +

◆ simulation_started

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::simulation_started = 0
+
+private
+
+

bool which is set to 1 if the simulation has started.

+ +

Definition at line 131 of file PulseSensor.h.

+ +

Referenced by beatsPerMinuteSimulation().

+ +
+
+ +

◆ sleep

+ +
+
+ + + + + +
+ + + + +
bool SensorTimer::sleep
+
+private
+
+

This variable is set to one by [todo] to one if the person is sleep. This is read by various other functions to take appropriate actions.

+ +

Definition at line 90 of file PulseSensor.h.

+ +

Referenced by audioprocess(), and timerEvent().

+ +
+
+ +

◆ start_of_simulation

+ +
+
+ + + + +
time_t SensorTimer::start_of_simulation
+
+ +

Definition at line 201 of file PulseSensor.h.

+ +

Referenced by beatsPerMinuteSimulation().

+ +
+
+ +

◆ startOfProspectiveSleep

+ +
+
+ + + + + +
+ + + + +
time_t SensorTimer::startOfProspectiveSleep
+
+private
+
+

time_t variable which stores the unix time of a person getting in the maybeSleep state

+ +

Definition at line 95 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep().

+ +
+
+ +

◆ surelySleptTime

+ +
+
+ + + + + +
+ + + + +
time_t SensorTimer::surelySleptTime = 2
+
+private
+
+

time_t variable which contains the time the program waits for the person to be in maybesleep state before he is put into sleep state as well.

+ +

Definition at line 84 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), and setSurelySleptTime().

+ +
+
+ +

◆ T

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::T = 512
+
+private
+
+ +

Definition at line 42 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ thisTime

+ +
+
+ + + + + +
+ + + + +
unsigned int SensorTimer::thisTime
+
+private
+
+ +

Definition at line 34 of file PulseSensor.h.

+ +

Referenced by getPulse().

+ +
+
+ +

◆ thresh

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::thresh = 550
+
+private
+
+ +

Definition at line 40 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ threshSetting

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::threshSetting
+
+private
+
+ +

Definition at line 39 of file PulseSensor.h.

+ +

Referenced by getPulse(), and initPulseSensorVariables().

+ +
+
+ +

◆ timeOutStart

+ +
+
+ + + + + +
+ + + + +
int SensorTimer::timeOutStart
+
+private
+
+ +

Definition at line 36 of file PulseSensor.h.

+ +

Referenced by initPulseSensorVariables().

+ +
+
+ +

◆ wakeTime

+ +
+
+ + + + + +
+ + + + +
time_t SensorTimer::wakeTime
+
+private
+
+

time_t which is set as nightTime plus 8 hours. Not the actual wake up time of the person it can be taken as the morning time.

+ +

Definition at line 65 of file PulseSensor.h.

+ +

Referenced by analyzeBeatsForSleep(), initializeVariablesForSleep(), and setNigtTimeToNow().

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/docs/class_sensor_timer.js b/docs/class_sensor_timer.js new file mode 100644 index 0000000..0cdc1fa --- /dev/null +++ b/docs/class_sensor_timer.js @@ -0,0 +1,61 @@ +var class_sensor_timer = +[ + [ "SensorTimer", "class_sensor_timer.html#afbfb91d0dc35bf217cb22f50d680b26e", null ], + [ "analyzeBeatsForSleep", "class_sensor_timer.html#a36233c0d18fe087bbfcf3a37bdf6dcec", null ], + [ "audioprocess", "class_sensor_timer.html#adb180c4dab8ccaa5eae6870aa851f76a", null ], + [ "beatsPerMinuteSimulation", "class_sensor_timer.html#ae70a0da132083a8135a17903baa68059", null ], + [ "getPulse", "class_sensor_timer.html#a54d4119db865d1fd2bbff0fc8da67482", null ], + [ "initializeVariablesForSleep", "class_sensor_timer.html#a042706c0c1ec146beb95e8f3947211fd", null ], + [ "initPulseSensorVariables", "class_sensor_timer.html#a86849a9ab4dc5443cc93f96f00c29f6c", null ], + [ "kill_the_pid", "class_sensor_timer.html#a26f5ab50413256c6b9523b8cbe5f6a84", null ], + [ "play_audio", "class_sensor_timer.html#a03ec27b4291d6a2bdd84822415efe680", null ], + [ "setCallback", "class_sensor_timer.html#a2b87e348b476be96d88ee70be98bef11", null ], + [ "setNigtTimeToNow", "class_sensor_timer.html#a571f7dcc621738e57607586cea71d302", null ], + [ "setPeriodOfSimulatedWave", "class_sensor_timer.html#afa77fed86caa66cbff25f6f1599e6012", null ], + [ "setSurelySleptTime", "class_sensor_timer.html#ad8d148ba672bccb72ca45fea9b98fb38", null ], + [ "stopNew", "class_sensor_timer.html#ab27fde0c17025181e3008d3246077bbc", null ], + [ "timerEvent", "class_sensor_timer.html#a6d15ff3f37f39e6baa43cf22a48263f2", null ], + [ "amp", "class_sensor_timer.html#a69302d73a34d1ac10dbbd4d17e46493c", null ], + [ "audio_name", "class_sensor_timer.html#a753287351e0381ca5d0d85df3078f762", null ], + [ "audio_pid", "class_sensor_timer.html#aaeec2579eba748d10fa8532311b20e99", null ], + [ "BPM", "class_sensor_timer.html#a54c96b55f91d091b3f11d9f4f5aaa34a", null ], + [ "bpmThreshold", "class_sensor_timer.html#a4db914e2d73ffb3202aeb4fb3ffb3073", null ], + [ "call_time_period", "class_sensor_timer.html#a0ee1760c265760a66758a9845f179f53", null ], + [ "countdown", "class_sensor_timer.html#a6bb2773d68210a8d70742b118b84139f", null ], + [ "dataRequestStart", "class_sensor_timer.html#a5e04d19d42170c73243dbcbbdedfdbc5", null ], + [ "duration", "class_sensor_timer.html#a1353e51d3e3db2f14a18afb14419c905", null ], + [ "elapsedTime", "class_sensor_timer.html#a23904c4f9bc7b0ef8f39e9158da989a3", null ], + [ "eventCounter", "class_sensor_timer.html#ab410d5296b53f11c14037a0639d905ae", null ], + [ "firstBeat", "class_sensor_timer.html#a285de7aa2794270cbcf59144afd4746a", null ], + [ "firstTime", "class_sensor_timer.html#a29b97782575a74a0d4bf7af50bad66cc", null ], + [ "IBI", "class_sensor_timer.html#abc1f4e1db59f4aa0dae5793c90740a84", null ], + [ "is_audio_playing", "class_sensor_timer.html#ab9ea2c04c2ed4e36f2983ad441fa06d7", null ], + [ "is_simulation", "class_sensor_timer.html#ace1263828012e5e2c0011ca5ee2d4ad8", null ], + [ "lastBeatTime", "class_sensor_timer.html#a4eeaf71d9a5f96e322b35081cf33f6e9", null ], + [ "lastTime", "class_sensor_timer.html#a03ed20714879814e22e5641940e1c764", null ], + [ "m", "class_sensor_timer.html#ac2688bda3961332bcb0a80a63be6c0f5", null ], + [ "maybeSleep", "class_sensor_timer.html#a6aaa261915f03ad857544fd629607ea6", null ], + [ "nightTime", "class_sensor_timer.html#a4d29fdf6804a4777668d957a8333f9c6", null ], + [ "P", "class_sensor_timer.html#a9bf478f0366940dab46992b626eb6614", null ], + [ "period_of_simulation", "class_sensor_timer.html#a05ab0c30d7e40d9045c21b0b115c392d", null ], + [ "play_audio_locally", "class_sensor_timer.html#ab8ae50b1ee64129594c15f056856c35f", null ], + [ "Pulse", "class_sensor_timer.html#aaa0853dc77e341fcaf2f19bf968b4b4c", null ], + [ "QS", "class_sensor_timer.html#a820b614d51dc988ae64219c133406f47", null ], + [ "rate", "class_sensor_timer.html#ab74c86309da203b069a991f8ca09ae0a", null ], + [ "sampleCounter", "class_sensor_timer.html#a7ba22ffafc2b42ae3cdff31d47525fcb", null ], + [ "secondBeat", "class_sensor_timer.html#a93f19ee800ea1f8b53d2bd9ca40374ab", null ], + [ "secondTime", "class_sensor_timer.html#ac2de8ccb0d70b801574f962baae0a5cb", null ], + [ "sensorCallback", "class_sensor_timer.html#ad58597d91c359dc772a970ee46ef2b8c", null ], + [ "Signal", "class_sensor_timer.html#a73b3600a3b439a889ec2aefb6e9d406e", null ], + [ "simulation_started", "class_sensor_timer.html#af524226ec78b66a274851119f7b00a2f", null ], + [ "sleep", "class_sensor_timer.html#a1bf0ef8c1667be0f111419322d196077", null ], + [ "start_of_simulation", "class_sensor_timer.html#a5b5f30f0afd6eb4a9df8f7b6b6869a6a", null ], + [ "startOfProspectiveSleep", "class_sensor_timer.html#ad2a424f227d18421cf94c86d7eb031be", null ], + [ "surelySleptTime", "class_sensor_timer.html#a84505975df90206876681d89975faa52", null ], + [ "T", "class_sensor_timer.html#ad78b1837ae8402db8111c1125d62c39a", null ], + [ "thisTime", "class_sensor_timer.html#ab8ae36c7b7cb90c0b0d119e890489338", null ], + [ "thresh", "class_sensor_timer.html#a888dc3b1bf9bfb452c679bccb018a387", null ], + [ "threshSetting", "class_sensor_timer.html#a6e26abccf69140ef3749f95dccbb60aa", null ], + [ "timeOutStart", "class_sensor_timer.html#a884380525acb68dcbe88e55a48a37496", null ], + [ "wakeTime", "class_sensor_timer.html#a9edffcd5c781e8942f8570f2bfe8232d", null ] +]; \ No newline at end of file diff --git a/docs/class_sensor_timer__coll__graph.map b/docs/class_sensor_timer__coll__graph.map new file mode 100644 index 0000000..f1a2567 --- /dev/null +++ b/docs/class_sensor_timer__coll__graph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/class_sensor_timer__coll__graph.md5 b/docs/class_sensor_timer__coll__graph.md5 new file mode 100644 index 0000000..8128fd2 --- /dev/null +++ b/docs/class_sensor_timer__coll__graph.md5 @@ -0,0 +1 @@ +7bbf3c107412855478aece5e93a01b15 \ No newline at end of file diff --git a/docs/class_sensor_timer__coll__graph.png b/docs/class_sensor_timer__coll__graph.png new file mode 100644 index 0000000..ca2eb55 Binary files /dev/null and b/docs/class_sensor_timer__coll__graph.png differ diff --git a/docs/class_sensor_timer__inherit__graph.map b/docs/class_sensor_timer__inherit__graph.map new file mode 100644 index 0000000..4f856a8 --- /dev/null +++ b/docs/class_sensor_timer__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer__inherit__graph.md5 b/docs/class_sensor_timer__inherit__graph.md5 new file mode 100644 index 0000000..f17d05e --- /dev/null +++ b/docs/class_sensor_timer__inherit__graph.md5 @@ -0,0 +1 @@ +77cf0272b36c0c372e4002af384849ff \ No newline at end of file diff --git a/docs/class_sensor_timer__inherit__graph.png b/docs/class_sensor_timer__inherit__graph.png new file mode 100644 index 0000000..ba2745a Binary files /dev/null and b/docs/class_sensor_timer__inherit__graph.png differ diff --git a/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.map b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.map new file mode 100644 index 0000000..673d84c --- /dev/null +++ b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.md5 b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.md5 new file mode 100644 index 0000000..6d18545 --- /dev/null +++ b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.md5 @@ -0,0 +1 @@ +98b63506269f39fd1b7c0668670029f2 \ No newline at end of file diff --git a/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.png b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.png new file mode 100644 index 0000000..b117a9e Binary files /dev/null and b/docs/class_sensor_timer_a03ec27b4291d6a2bdd84822415efe680_icgraph.png differ diff --git a/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.map b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.map new file mode 100644 index 0000000..d7c3abd --- /dev/null +++ b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.md5 b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.md5 new file mode 100644 index 0000000..8fd412c --- /dev/null +++ b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.md5 @@ -0,0 +1 @@ +ac78ed575753eb3b3ccdba41b0945cc5 \ No newline at end of file diff --git a/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.png b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.png new file mode 100644 index 0000000..b414829 Binary files /dev/null and b/docs/class_sensor_timer_a042706c0c1ec146beb95e8f3947211fd_icgraph.png differ diff --git a/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.map b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.map new file mode 100644 index 0000000..ac26f29 --- /dev/null +++ b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.md5 b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.md5 new file mode 100644 index 0000000..893c3b7 --- /dev/null +++ b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.md5 @@ -0,0 +1 @@ +1ab8380bfcea01aa7438780eacb06873 \ No newline at end of file diff --git a/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.png b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.png new file mode 100644 index 0000000..4a36bde Binary files /dev/null and b/docs/class_sensor_timer_a26f5ab50413256c6b9523b8cbe5f6a84_icgraph.png differ diff --git a/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.map b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.map new file mode 100644 index 0000000..0675b38 --- /dev/null +++ b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.md5 b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.md5 new file mode 100644 index 0000000..59ac1a5 --- /dev/null +++ b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.md5 @@ -0,0 +1 @@ +173cd169fb74c1b07dd2e427673e7e37 \ No newline at end of file diff --git a/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.png b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.png new file mode 100644 index 0000000..dc0ddfa Binary files /dev/null and b/docs/class_sensor_timer_a2b87e348b476be96d88ee70be98bef11_icgraph.png differ diff --git a/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.map b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.map new file mode 100644 index 0000000..c666975 --- /dev/null +++ b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.md5 b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.md5 new file mode 100644 index 0000000..0b792c4 --- /dev/null +++ b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.md5 @@ -0,0 +1 @@ +6147220f724406494e5423c11e227160 \ No newline at end of file diff --git a/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.png b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.png new file mode 100644 index 0000000..194d6ad Binary files /dev/null and b/docs/class_sensor_timer_a36233c0d18fe087bbfcf3a37bdf6dcec_icgraph.png differ diff --git a/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.map b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.map new file mode 100644 index 0000000..37098e8 --- /dev/null +++ b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.md5 b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.md5 new file mode 100644 index 0000000..7e1b608 --- /dev/null +++ b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.md5 @@ -0,0 +1 @@ +f86fe2cdc51cb29eeea7c98f4f36a3e4 \ No newline at end of file diff --git a/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.png b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.png new file mode 100644 index 0000000..c6c9925 Binary files /dev/null and b/docs/class_sensor_timer_a54d4119db865d1fd2bbff0fc8da67482_icgraph.png differ diff --git a/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.map b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.map new file mode 100644 index 0000000..57b413c --- /dev/null +++ b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.md5 b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.md5 new file mode 100644 index 0000000..993ff83 --- /dev/null +++ b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.md5 @@ -0,0 +1 @@ +833f352c74ac7fb59ef5e074eaee30c5 \ No newline at end of file diff --git a/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.png b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.png new file mode 100644 index 0000000..5428a55 Binary files /dev/null and b/docs/class_sensor_timer_a571f7dcc621738e57607586cea71d302_icgraph.png differ diff --git a/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.map b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.map new file mode 100644 index 0000000..e7af173 --- /dev/null +++ b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.md5 b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.md5 new file mode 100644 index 0000000..ec3d242 --- /dev/null +++ b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.md5 @@ -0,0 +1 @@ +34415f691943fe39b460cf1b296a4d52 \ No newline at end of file diff --git a/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.png b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.png new file mode 100644 index 0000000..901c584 Binary files /dev/null and b/docs/class_sensor_timer_a6d15ff3f37f39e6baa43cf22a48263f2_cgraph.png differ diff --git a/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.map b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.map new file mode 100644 index 0000000..8c10209 --- /dev/null +++ b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.md5 b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.md5 new file mode 100644 index 0000000..3cd6ce9 --- /dev/null +++ b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.md5 @@ -0,0 +1 @@ +8ef4771db282633f51b377a58891647e \ No newline at end of file diff --git a/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.png b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.png new file mode 100644 index 0000000..bdbb2ec Binary files /dev/null and b/docs/class_sensor_timer_a86849a9ab4dc5443cc93f96f00c29f6c_icgraph.png differ diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.map b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.map new file mode 100644 index 0000000..954b5bd --- /dev/null +++ b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.md5 b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.md5 new file mode 100644 index 0000000..59ae6db --- /dev/null +++ b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.md5 @@ -0,0 +1 @@ +508779c66488827ab6851041f0284be0 \ No newline at end of file diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.png b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.png new file mode 100644 index 0000000..3093f0e Binary files /dev/null and b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_cgraph.png differ diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.map b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.map new file mode 100644 index 0000000..b16ada3 --- /dev/null +++ b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.md5 b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.md5 new file mode 100644 index 0000000..3a47f9c --- /dev/null +++ b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.md5 @@ -0,0 +1 @@ +cb16723fb266d37f6f12cd2ed9005aac \ No newline at end of file diff --git a/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.png b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.png new file mode 100644 index 0000000..6b6f6e4 Binary files /dev/null and b/docs/class_sensor_timer_ab27fde0c17025181e3008d3246077bbc_icgraph.png differ diff --git a/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.map b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.map new file mode 100644 index 0000000..dedf474 --- /dev/null +++ b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.md5 b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.md5 new file mode 100644 index 0000000..e5f5782 --- /dev/null +++ b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.md5 @@ -0,0 +1 @@ +bd775883597391c49f8e79336c959866 \ No newline at end of file diff --git a/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.png b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.png new file mode 100644 index 0000000..96c0415 Binary files /dev/null and b/docs/class_sensor_timer_ad8d148ba672bccb72ca45fea9b98fb38_icgraph.png differ diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.map b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.map new file mode 100644 index 0000000..5a5860c --- /dev/null +++ b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.md5 b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.md5 new file mode 100644 index 0000000..5f382ef --- /dev/null +++ b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.md5 @@ -0,0 +1 @@ +36d715f91ed965d44a3a0a8a24a75758 \ No newline at end of file diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.png b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.png new file mode 100644 index 0000000..2ab435a Binary files /dev/null and b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_cgraph.png differ diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.map b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.map new file mode 100644 index 0000000..699a6c9 --- /dev/null +++ b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.md5 b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.md5 new file mode 100644 index 0000000..ed6de74 --- /dev/null +++ b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.md5 @@ -0,0 +1 @@ +d1bfc7be58958ad685fe03c335cbe343 \ No newline at end of file diff --git a/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.png b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.png new file mode 100644 index 0000000..c4c5faf Binary files /dev/null and b/docs/class_sensor_timer_adb180c4dab8ccaa5eae6870aa851f76a_icgraph.png differ diff --git a/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.map b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.map new file mode 100644 index 0000000..ee5bdb7 --- /dev/null +++ b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.md5 b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.md5 new file mode 100644 index 0000000..b8aeeee --- /dev/null +++ b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.md5 @@ -0,0 +1 @@ +5ee7211e5e21a467e18fc4e5b4ea390d \ No newline at end of file diff --git a/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.png b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.png new file mode 100644 index 0000000..876ea2f Binary files /dev/null and b/docs/class_sensor_timer_ae70a0da132083a8135a17903baa68059_icgraph.png differ diff --git a/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.map b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.map new file mode 100644 index 0000000..b076f90 --- /dev/null +++ b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.md5 b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.md5 new file mode 100644 index 0000000..0d2ba17 --- /dev/null +++ b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.md5 @@ -0,0 +1 @@ +f677b7de9e7ee3e55b41d2fcee67933a \ No newline at end of file diff --git a/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.png b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.png new file mode 100644 index 0000000..b37b4ab Binary files /dev/null and b/docs/class_sensor_timer_afbfb91d0dc35bf217cb22f50d680b26e_cgraph.png differ diff --git a/docs/classes.html b/docs/classes.html new file mode 100644 index 0000000..71e452f --- /dev/null +++ b/docs/classes.html @@ -0,0 +1,124 @@ + + + + + + + +DreamHacker: Data Structure Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/docs/closed.png b/docs/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/docs/closed.png differ diff --git a/docs/dir_000000_000001.html b/docs/dir_000000_000001.html new file mode 100644 index 0000000..dc6f858 --- /dev/null +++ b/docs/dir_000000_000001.html @@ -0,0 +1,94 @@ + + + + + + + +DreamHacker: drmhk_autogen -> 6YEA5652QU Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

drmhk_autogen → 6YEA5652QU Relation

File in drmhk_autogenIncludes file in drmhk_autogen/6YEA5652QU
mocs_compilation.cppmoc_mainwindow.cpp
+
+ + + + diff --git a/docs/dir_000001_000002.html b/docs/dir_000001_000002.html new file mode 100644 index 0000000..5859336 --- /dev/null +++ b/docs/dir_000001_000002.html @@ -0,0 +1,94 @@ + + + + + + + +DreamHacker: drmhk_autogen/6YEA5652QU -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

6YEA5652QU → include Relation

File in drmhk_autogen/6YEA5652QUIncludes file in include
moc_mainwindow.cppmainwindow.h
+
+ + + + diff --git a/docs/dir_000003_000002.html b/docs/dir_000003_000002.html new file mode 100644 index 0000000..32511b2 --- /dev/null +++ b/docs/dir_000003_000002.html @@ -0,0 +1,94 @@ + + + + + + + +DreamHacker: main -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

main → include Relation

File in mainIncludes file in include
main.cppCppTimer.h
main.cppjson_fastcgi_web_api.h
main.cppmainwindow.h
main.cppPulseSensor.h
+
+ + + + diff --git a/docs/dir_000004_000002.html b/docs/dir_000004_000002.html new file mode 100644 index 0000000..d0f4833 --- /dev/null +++ b/docs/dir_000004_000002.html @@ -0,0 +1,94 @@ + + + + + + + +DreamHacker: src -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

src → include Relation

File in srcIncludes file in include
CppTimer.cppCppTimer.h
mainwindowdemo.cppmainwindow.h
+
+ + + + diff --git a/docs/dir_4bc54f5321a2fafd757d3d45665af198.html b/docs/dir_4bc54f5321a2fafd757d3d45665af198.html new file mode 100644 index 0000000..b5b1f4a --- /dev/null +++ b/docs/dir_4bc54f5321a2fafd757d3d45665af198.html @@ -0,0 +1,115 @@ + + + + + + + +DreamHacker: drmhk_autogen/6YEA5652QU Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
6YEA5652QU Directory Reference
+
+
+
+Directory dependency graph for 6YEA5652QU:
+
+
drmhk_autogen/6YEA5652QU
+ + + + + + +
+ + + + +

+Files

file  moc_mainwindow.cpp [code]
 
+
+
+ + + + diff --git a/docs/dir_4bc54f5321a2fafd757d3d45665af198.js b/docs/dir_4bc54f5321a2fafd757d3d45665af198.js new file mode 100644 index 0000000..1d70265 --- /dev/null +++ b/docs/dir_4bc54f5321a2fafd757d3d45665af198.js @@ -0,0 +1,4 @@ +var dir_4bc54f5321a2fafd757d3d45665af198 = +[ + [ "moc_mainwindow.cpp", "moc__mainwindow_8cpp.html", "moc__mainwindow_8cpp" ] +]; \ No newline at end of file diff --git a/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.map b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.map new file mode 100644 index 0000000..7fbba72 --- /dev/null +++ b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.md5 b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.md5 new file mode 100644 index 0000000..62448fb --- /dev/null +++ b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.md5 @@ -0,0 +1 @@ +47dd9559b5a7310fd78b6cff34981fea \ No newline at end of file diff --git a/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.png b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.png new file mode 100644 index 0000000..ed47e52 Binary files /dev/null and b/docs/dir_4bc54f5321a2fafd757d3d45665af198_dep.png differ diff --git a/docs/dir_5c982d53a68cdbcd421152b4020263a9.html b/docs/dir_5c982d53a68cdbcd421152b4020263a9.html new file mode 100644 index 0000000..8995692 --- /dev/null +++ b/docs/dir_5c982d53a68cdbcd421152b4020263a9.html @@ -0,0 +1,114 @@ + + + + + + + +DreamHacker: main Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
main Directory Reference
+
+
+
+Directory dependency graph for main:
+
+
main
+ + + + + +
+ + + + +

+Files

file  main.cpp [code]
 
+
+
+ + + + diff --git a/docs/dir_5c982d53a68cdbcd421152b4020263a9.js b/docs/dir_5c982d53a68cdbcd421152b4020263a9.js new file mode 100644 index 0000000..30d97ab --- /dev/null +++ b/docs/dir_5c982d53a68cdbcd421152b4020263a9.js @@ -0,0 +1,4 @@ +var dir_5c982d53a68cdbcd421152b4020263a9 = +[ + [ "main.cpp", "main_8cpp.html", "main_8cpp" ] +]; \ No newline at end of file diff --git a/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.map b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.map new file mode 100644 index 0000000..b966b32 --- /dev/null +++ b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 new file mode 100644 index 0000000..9494d86 --- /dev/null +++ b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.md5 @@ -0,0 +1 @@ +9c2e64e96405d3c7339a67aa9b5498a1 \ No newline at end of file diff --git a/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.png b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.png new file mode 100644 index 0000000..2037ab8 Binary files /dev/null and b/docs/dir_5c982d53a68cdbcd421152b4020263a9_dep.png differ diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..aceab6c --- /dev/null +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,116 @@ + + + + + + + +DreamHacker: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
src
+ + + + + +
+ + + + + + +

+Files

file  CppTimer.cpp [code]
 
file  mainwindowdemo.cpp [code]
 
+
+
+ + + + diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 0000000..e97e16e --- /dev/null +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,5 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "CppTimer.cpp", "_cpp_timer_8cpp.html", null ], + [ "mainwindowdemo.cpp", "mainwindowdemo_8cpp.html", "mainwindowdemo_8cpp" ] +]; \ No newline at end of file diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map new file mode 100644 index 0000000..3b0e53a --- /dev/null +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 0000000..8567a4c --- /dev/null +++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +18ea1382a5d66f7e17d2d45fa956576a \ No newline at end of file diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png new file mode 100644 index 0000000..0925132 Binary files /dev/null and b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png differ diff --git a/docs/dir_764629c8b824a2149a75238f2672c627.html b/docs/dir_764629c8b824a2149a75238f2672c627.html new file mode 100644 index 0000000..72fe0c4 --- /dev/null +++ b/docs/dir_764629c8b824a2149a75238f2672c627.html @@ -0,0 +1,123 @@ + + + + + + + +DreamHacker: drmhk_autogen Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
drmhk_autogen Directory Reference
+
+
+
+Directory dependency graph for drmhk_autogen:
+
+
drmhk_autogen
+ + + + + + + +
+ + + + +

+Directories

directory  6YEA5652QU
 
+ + + + + +

+Files

file  moc_predefs.h [code]
 
file  mocs_compilation.cpp [code]
 
+
+
+ + + + diff --git a/docs/dir_764629c8b824a2149a75238f2672c627.js b/docs/dir_764629c8b824a2149a75238f2672c627.js new file mode 100644 index 0000000..4897539 --- /dev/null +++ b/docs/dir_764629c8b824a2149a75238f2672c627.js @@ -0,0 +1,6 @@ +var dir_764629c8b824a2149a75238f2672c627 = +[ + [ "6YEA5652QU", "dir_4bc54f5321a2fafd757d3d45665af198.html", "dir_4bc54f5321a2fafd757d3d45665af198" ], + [ "moc_predefs.h", "moc__predefs_8h.html", "moc__predefs_8h" ], + [ "mocs_compilation.cpp", "mocs__compilation_8cpp.html", null ] +]; \ No newline at end of file diff --git a/docs/dir_764629c8b824a2149a75238f2672c627_dep.map b/docs/dir_764629c8b824a2149a75238f2672c627_dep.map new file mode 100644 index 0000000..8d1505e --- /dev/null +++ b/docs/dir_764629c8b824a2149a75238f2672c627_dep.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/dir_764629c8b824a2149a75238f2672c627_dep.md5 b/docs/dir_764629c8b824a2149a75238f2672c627_dep.md5 new file mode 100644 index 0000000..3f9ed82 --- /dev/null +++ b/docs/dir_764629c8b824a2149a75238f2672c627_dep.md5 @@ -0,0 +1 @@ +963e5d69d61ed50b34399cf1633bed4c \ No newline at end of file diff --git a/docs/dir_764629c8b824a2149a75238f2672c627_dep.png b/docs/dir_764629c8b824a2149a75238f2672c627_dep.png new file mode 100644 index 0000000..80b4c7f Binary files /dev/null and b/docs/dir_764629c8b824a2149a75238f2672c627_dep.png differ diff --git a/docs/dir_856524284ebe840938865dc061f982fb.html b/docs/dir_856524284ebe840938865dc061f982fb.html new file mode 100644 index 0000000..151c9ef --- /dev/null +++ b/docs/dir_856524284ebe840938865dc061f982fb.html @@ -0,0 +1,118 @@ + + + + + + + +DreamHacker: Include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Include Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + +

+Files

file  CppTimer.cpp [code]
 
file  CppTimer.h [code]
 
file  CppTimerCallback.h [code]
 
file  json_fastcgi_web_api.h [code]
 
file  mainwindow.cpp [code]
 
file  mainwindow.h [code]
 
file  mainwindowdemo.cpp [code]
 
file  PulseSensor.h [code]
 
+
+
+ + + + diff --git a/docs/dir_856524284ebe840938865dc061f982fb.js b/docs/dir_856524284ebe840938865dc061f982fb.js new file mode 100644 index 0000000..8640819 --- /dev/null +++ b/docs/dir_856524284ebe840938865dc061f982fb.js @@ -0,0 +1,21 @@ +var dir_856524284ebe840938865dc061f982fb = +[ + [ "CppTimer.cpp", "_cpp_timer_8cpp.html", null ], + [ "CppTimer.h", "_cpp_timer_8h.html", "_cpp_timer_8h" ], + [ "CppTimerCallback.h", "_cpp_timer_callback_8h.html", [ + [ "CppTimerCallback", "class_cpp_timer_callback.html", "class_cpp_timer_callback" ], + [ "Runnable", "class_cpp_timer_callback_1_1_runnable.html", "class_cpp_timer_callback_1_1_runnable" ] + ] ], + [ "json_fastcgi_web_api.h", "json__fastcgi__web__api_8h.html", [ + [ "JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html", "class_j_s_o_n_c_g_i_handler" ], + [ "GETCallback", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback" ], + [ "POSTCallback", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback" ], + [ "JSONGenerator", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator" ] + ] ], + [ "mainwindow.cpp", "mainwindow_8cpp.html", "mainwindow_8cpp" ], + [ "mainwindow.h", "mainwindow_8h.html", [ + [ "MainWindow", "class_main_window.html", "class_main_window" ] + ] ], + [ "mainwindowdemo.cpp", "mainwindowdemo_8cpp.html", "mainwindowdemo_8cpp" ], + [ "PulseSensor.h", "_pulse_sensor_8h.html", "_pulse_sensor_8h" ] +]; \ No newline at end of file diff --git a/docs/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 0000000..b7c8bb7 --- /dev/null +++ b/docs/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,114 @@ + + + + + + + +DreamHacker: include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  CppTimer.h [code]
 
file  CppTimerCallback.h [code]
 
file  json_fastcgi_web_api.h [code]
 
file  mainwindow.cpp [code]
 
file  mainwindow.h [code]
 
file  PulseSensor.h [code]
 
+
+
+ + + + diff --git a/docs/dir_d44c64559bbebec7f509842c48db8b23.js b/docs/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 0000000..1543262 --- /dev/null +++ b/docs/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,19 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "CppTimer.h", "_cpp_timer_8h.html", "_cpp_timer_8h" ], + [ "CppTimerCallback.h", "_cpp_timer_callback_8h.html", [ + [ "CppTimerCallback", "class_cpp_timer_callback.html", "class_cpp_timer_callback" ], + [ "Runnable", "class_cpp_timer_callback_1_1_runnable.html", "class_cpp_timer_callback_1_1_runnable" ] + ] ], + [ "json_fastcgi_web_api.h", "json__fastcgi__web__api_8h.html", [ + [ "JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html", "class_j_s_o_n_c_g_i_handler" ], + [ "GETCallback", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback" ], + [ "POSTCallback", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback" ], + [ "JSONGenerator", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator" ] + ] ], + [ "mainwindow.cpp", "mainwindow_8cpp.html", "mainwindow_8cpp" ], + [ "mainwindow.h", "mainwindow_8h.html", [ + [ "MainWindow", "class_main_window.html", "class_main_window" ] + ] ], + [ "PulseSensor.h", "_pulse_sensor_8h.html", "_pulse_sensor_8h" ] +]; \ No newline at end of file diff --git a/docs/doc.png b/docs/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/docs/doc.png differ diff --git a/docs/doxygen.css b/docs/doxygen.css new file mode 100644 index 0000000..ffbff02 --- /dev/null +++ b/docs/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/docs/doxygen.svg b/docs/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/docs/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/dynsections.js b/docs/dynsections.js new file mode 100644 index 0000000..88f2c27 --- /dev/null +++ b/docs/dynsections.js @@ -0,0 +1,128 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +DreamHacker: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+
+ + + + diff --git a/docs/files_dup.js b/docs/files_dup.js new file mode 100644 index 0000000..39481fe --- /dev/null +++ b/docs/files_dup.js @@ -0,0 +1,7 @@ +var files_dup = +[ + [ "drmhk_autogen", "dir_764629c8b824a2149a75238f2672c627.html", "dir_764629c8b824a2149a75238f2672c627" ], + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ], + [ "main", "dir_5c982d53a68cdbcd421152b4020263a9.html", "dir_5c982d53a68cdbcd421152b4020263a9" ], + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/docs/folderclosed.png b/docs/folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/docs/folderclosed.png differ diff --git a/docs/folderopen.png b/docs/folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/docs/folderopen.png differ diff --git a/docs/functions.html b/docs/functions.html new file mode 100644 index 0000000..6ca9716 --- /dev/null +++ b/docs/functions.html @@ -0,0 +1,575 @@ + + + + + + + +DreamHacker: Data Fields + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- j -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- ~ -

+
+
+ + + + diff --git a/docs/functions_func.html b/docs/functions_func.html new file mode 100644 index 0000000..a91048a --- /dev/null +++ b/docs/functions_func.html @@ -0,0 +1,323 @@ + + + + + + + +DreamHacker: Data Fields - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- e -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- j -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- ~ -

+
+
+ + + + diff --git a/docs/functions_vars.html b/docs/functions_vars.html new file mode 100644 index 0000000..b9da19c --- /dev/null +++ b/docs/functions_vars.html @@ -0,0 +1,397 @@ + + + + + + + +DreamHacker: Data Fields - Variables + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- j -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+ + +

- w -

+
+
+ + + + diff --git a/docs/globals.html b/docs/globals.html new file mode 100644 index 0000000..227da38 --- /dev/null +++ b/docs/globals.html @@ -0,0 +1,1492 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- _ -

+
+
+ + + + diff --git a/docs/globals_a.html b/docs/globals_a.html new file mode 100644 index 0000000..48a329f --- /dev/null +++ b/docs/globals_a.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- a -

+
+
+ + + + diff --git a/docs/globals_b.html b/docs/globals_b.html new file mode 100644 index 0000000..24f0987 --- /dev/null +++ b/docs/globals_b.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- b -

+
+
+ + + + diff --git a/docs/globals_c.html b/docs/globals_c.html new file mode 100644 index 0000000..8d619ae --- /dev/null +++ b/docs/globals_c.html @@ -0,0 +1,103 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- c -

+
+
+ + + + diff --git a/docs/globals_defs.html b/docs/globals_defs.html new file mode 100644 index 0000000..980f8e9 --- /dev/null +++ b/docs/globals_defs.html @@ -0,0 +1,1492 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- _ -

+
+
+ + + + diff --git a/docs/globals_defs.js b/docs/globals_defs.js new file mode 100644 index 0000000..0a8cc2d --- /dev/null +++ b/docs/globals_defs.js @@ -0,0 +1,11 @@ +var globals_defs = +[ + [ "_", "globals_defs.html", null ], + [ "a", "globals_defs_a.html", null ], + [ "b", "globals_defs_b.html", null ], + [ "c", "globals_defs_c.html", null ], + [ "l", "globals_defs_l.html", null ], + [ "q", "globals_defs_q.html", null ], + [ "s", "globals_defs_s.html", null ], + [ "u", "globals_defs_u.html", null ] +]; \ No newline at end of file diff --git a/docs/globals_defs_a.html b/docs/globals_defs_a.html new file mode 100644 index 0000000..2837a1b --- /dev/null +++ b/docs/globals_defs_a.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+
+ + + + diff --git a/docs/globals_defs_b.html b/docs/globals_defs_b.html new file mode 100644 index 0000000..d05a761 --- /dev/null +++ b/docs/globals_defs_b.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+
+ + + + diff --git a/docs/globals_defs_c.html b/docs/globals_defs_c.html new file mode 100644 index 0000000..edecde0 --- /dev/null +++ b/docs/globals_defs_c.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+
+ + + + diff --git a/docs/globals_defs_l.html b/docs/globals_defs_l.html new file mode 100644 index 0000000..01d132d --- /dev/null +++ b/docs/globals_defs_l.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- l -

+
+
+ + + + diff --git a/docs/globals_defs_q.html b/docs/globals_defs_q.html new file mode 100644 index 0000000..ffd6ab1 --- /dev/null +++ b/docs/globals_defs_q.html @@ -0,0 +1,115 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- q -

+
+
+ + + + diff --git a/docs/globals_defs_s.html b/docs/globals_defs_s.html new file mode 100644 index 0000000..01636a5 --- /dev/null +++ b/docs/globals_defs_s.html @@ -0,0 +1,103 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+
+ + + + diff --git a/docs/globals_defs_u.html b/docs/globals_defs_u.html new file mode 100644 index 0000000..b9a3191 --- /dev/null +++ b/docs/globals_defs_u.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- u -

+
+
+ + + + diff --git a/docs/globals_dup.js b/docs/globals_dup.js new file mode 100644 index 0000000..159fa6a --- /dev/null +++ b/docs/globals_dup.js @@ -0,0 +1,17 @@ +var globals_dup = +[ + [ "_", "globals.html", null ], + [ "a", "globals_a.html", null ], + [ "b", "globals_b.html", null ], + [ "c", "globals_c.html", null ], + [ "g", "globals_g.html", null ], + [ "i", "globals_i.html", null ], + [ "l", "globals_l.html", null ], + [ "m", "globals_m.html", null ], + [ "o", "globals_o.html", null ], + [ "p", "globals_p.html", null ], + [ "q", "globals_q.html", null ], + [ "s", "globals_s.html", null ], + [ "t", "globals_t.html", null ], + [ "u", "globals_u.html", null ] +]; \ No newline at end of file diff --git a/docs/globals_enum.html b/docs/globals_enum.html new file mode 100644 index 0000000..8ae8655 --- /dev/null +++ b/docs/globals_enum.html @@ -0,0 +1,98 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/globals_eval.html b/docs/globals_eval.html new file mode 100644 index 0000000..a30213e --- /dev/null +++ b/docs/globals_eval.html @@ -0,0 +1,101 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/globals_func.html b/docs/globals_func.html new file mode 100644 index 0000000..beb83cb --- /dev/null +++ b/docs/globals_func.html @@ -0,0 +1,105 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/globals_g.html b/docs/globals_g.html new file mode 100644 index 0000000..2bddc02 --- /dev/null +++ b/docs/globals_g.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- g -

+
+
+ + + + diff --git a/docs/globals_i.html b/docs/globals_i.html new file mode 100644 index 0000000..b8f12d0 --- /dev/null +++ b/docs/globals_i.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- i -

+
+
+ + + + diff --git a/docs/globals_l.html b/docs/globals_l.html new file mode 100644 index 0000000..7409165 --- /dev/null +++ b/docs/globals_l.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- l -

+
+
+ + + + diff --git a/docs/globals_m.html b/docs/globals_m.html new file mode 100644 index 0000000..816ea1e --- /dev/null +++ b/docs/globals_m.html @@ -0,0 +1,101 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- m -

+
+
+ + + + diff --git a/docs/globals_o.html b/docs/globals_o.html new file mode 100644 index 0000000..5bb813e --- /dev/null +++ b/docs/globals_o.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- o -

+
+
+ + + + diff --git a/docs/globals_p.html b/docs/globals_p.html new file mode 100644 index 0000000..58960bb --- /dev/null +++ b/docs/globals_p.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- p -

+
+
+ + + + diff --git a/docs/globals_q.html b/docs/globals_q.html new file mode 100644 index 0000000..0d73af5 --- /dev/null +++ b/docs/globals_q.html @@ -0,0 +1,115 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- q -

+
+
+ + + + diff --git a/docs/globals_s.html b/docs/globals_s.html new file mode 100644 index 0000000..6da7752 --- /dev/null +++ b/docs/globals_s.html @@ -0,0 +1,106 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- s -

+
+
+ + + + diff --git a/docs/globals_t.html b/docs/globals_t.html new file mode 100644 index 0000000..17ffd82 --- /dev/null +++ b/docs/globals_t.html @@ -0,0 +1,100 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- t -

+
+
+ + + + diff --git a/docs/globals_u.html b/docs/globals_u.html new file mode 100644 index 0000000..902347d --- /dev/null +++ b/docs/globals_u.html @@ -0,0 +1,103 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- u -

+
+
+ + + + diff --git a/docs/globals_vars.html b/docs/globals_vars.html new file mode 100644 index 0000000..2b1be93 --- /dev/null +++ b/docs/globals_vars.html @@ -0,0 +1,104 @@ + + + + + + + +DreamHacker: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/docs/graph_legend.html b/docs/graph_legend.html new file mode 100644 index 0000000..0b6a80c --- /dev/null +++ b/docs/graph_legend.html @@ -0,0 +1,157 @@ + + + + + + + +DreamHacker: Graph Legend + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/docs/graph_legend.md5 b/docs/graph_legend.md5 new file mode 100644 index 0000000..8fcdccd --- /dev/null +++ b/docs/graph_legend.md5 @@ -0,0 +1 @@ +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/docs/graph_legend.png b/docs/graph_legend.png new file mode 100644 index 0000000..94ac761 Binary files /dev/null and b/docs/graph_legend.png differ diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 0000000..87d30a5 --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1,118 @@ + + + + + + + +DreamHacker: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+ +
+ + + + diff --git a/docs/hierarchy.js b/docs/hierarchy.js new file mode 100644 index 0000000..2ee2682 --- /dev/null +++ b/docs/hierarchy.js @@ -0,0 +1,23 @@ +var hierarchy = +[ + [ "CppTimer", "class_cpp_timer.html", [ + [ "CppTimerCallback", "class_cpp_timer_callback.html", null ], + [ "SensorTimer", "class_sensor_timer.html", null ] + ] ], + [ "JSONCGIHandler::GETCallback", "class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html", [ + [ "JSONCGIADCCallback", "class_j_s_o_n_c_g_i_a_d_c_callback.html", null ] + ] ], + [ "JSONCGIHandler", "class_j_s_o_n_c_g_i_handler.html", null ], + [ "JSONCGIHandler::JSONGenerator", "class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html", null ], + [ "JSONCGIHandler::POSTCallback", "class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html", null ], + [ "QMainWindow", "class_q_main_window.html", [ + [ "MainWindow", "class_main_window.html", [ + [ "SenseWindow", "class_sense_window.html", null ] + ] ] + ] ], + [ "qt_meta_stringdata_MainWindow_t", "structqt__meta__stringdata___main_window__t.html", null ], + [ "CppTimerCallback::Runnable", "class_cpp_timer_callback_1_1_runnable.html", null ], + [ "SensorCallback", "class_sensor_callback.html", [ + [ "SENSORfastcgicallback", "class_s_e_n_s_o_rfastcgicallback.html", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..ef7e679 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,222 @@ + + + + + + + +DreamHacker: Main Page + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DreamHacker Documentation
+
+
+

Dream Hacker

+


+

Logo
+
+
Dream Hacker is program designed to help you have better dreams. Our projects monitors our users heart rate and plays an audio file chosen by the user. Once Dream Hacker detects the user has entered sleep ie. when the beats per minute is below a certain threshold it will play the selected audio.
+
This setup takes data from pulse sensor and time of the day etc, to predict when the person has slept. Then after a while start the audio stimulus.
+
+ Checkout docs »
+ Read the wiki »
+
+                    
+
+ Discuss with us ·

+Contents

+
    +
  1. +About +
  2. +
  3. +Getting Started +
  4. +
  5. +Contributing
  6. +
  7. +License
  8. +
  9. +Contact
  10. +
  11. +References
  12. +
+

+About

+

Dream Hacker is program designed to help you have better dreams. Our projects monitors our users heart rate and plays an audio file chosen by the user. Once Dream Hacker detects the user has entered sleep ie. when the beats per minute is below a certain threshold it will play the selected audio.

+

Website interface enables user to select the music they want to play while they are sleeping. They can also see their different information using web Interface. The information will include bpm (beats per minute), the threshold and when the user has slept.

+
Contributors Stars Issues License

+

If you have any questions about DreamHacker or want to share some information with us, please go to one of the following places:

+ +

Before you file an issue, make sure you have read the known issues.

+

+Hardware

+ +

+Software

+

See Documentation

+

+Roadmap

+

[-] Next Software Release (v2.0) - ML of sleep detection using Python and ML algo

    +
  • [-] User input integrated
  • +
  • [-] User sleep timings integrated
  • +
  • [-] Social Media Presence improvement
  • +
  • [-] Pulse sensor improvements
  • +
  • [-] Web-Server Improvments
  • +
  • [-] Gather Training Dataset
  • +
  • [-] Train sleep detection
  • +
  • [-] Test on real samples
  • +
+

+Getting Started

+

+Installation

+

Hardware

    +
  • Set up the circuit as shown in the diagram.
  • +
  • Put a speaker with it's audio jack in the audio output of the raspberry pi.
  • +
  • For more information: Hardware Wiki
  • +
+

Software

1. Use SSH, VNC or a monitor and a keyboard to login to raspberry pi.
+
2. Install the audio player mpg123
+
3. Clone the repository somewhere in the Raspberry Pi.
+
4. Run the following commands from inside the repository
+
- cmake .
+
- make
+

+Usage

+
    +
  • Put your audio files inside the directory audio/.
  • +
  • Edit the audio.txt file with the name of the audio you want to play when the sleep starts. For example if you want to play my_file.mp3 present in the audio/ directory then write audio/my_file.mp3. Make sure that the file has just one line.
  • +
  • Run ./drmhk -h to explore what are the parameters which can be feeded as the input to the program.
  • +
  • Example: If you want to run the program as a simulation and set the beats per minute threshold to 70 then run ./drmhk -s 1 -t 70.
  • +
  • To run in default mode run ./drmhk
  • +
+

+Contributing

+

See CONTRIBUTING for more information.

+

+License

+

Distributed under the GPL-3.0 License. See LICENSE for more information.

+

+Contact

+

Team 39 in Real Time Embedded Programming

+

👤 Amber Dehariya (2594660d)

+

👤 Michael Hiluf (2529225h)

+

👤 Praveen (2620969t)

+

👤 Shreyansh Singh (2611417s)

+

+References

+ +
+
+
+ + + + diff --git a/docs/inherit_graph_0.map b/docs/inherit_graph_0.map new file mode 100644 index 0000000..5c3342f --- /dev/null +++ b/docs/inherit_graph_0.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/inherit_graph_0.md5 b/docs/inherit_graph_0.md5 new file mode 100644 index 0000000..1d2ca83 --- /dev/null +++ b/docs/inherit_graph_0.md5 @@ -0,0 +1 @@ +a786f5f9f91a90ee917011d25b459533 \ No newline at end of file diff --git a/docs/inherit_graph_0.png b/docs/inherit_graph_0.png new file mode 100644 index 0000000..6da25d3 Binary files /dev/null and b/docs/inherit_graph_0.png differ diff --git a/docs/inherit_graph_1.map b/docs/inherit_graph_1.map new file mode 100644 index 0000000..3f04398 --- /dev/null +++ b/docs/inherit_graph_1.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_1.md5 b/docs/inherit_graph_1.md5 new file mode 100644 index 0000000..0ec69ff --- /dev/null +++ b/docs/inherit_graph_1.md5 @@ -0,0 +1 @@ +3841940797eaa4b7fc69913845d33ada \ No newline at end of file diff --git a/docs/inherit_graph_1.png b/docs/inherit_graph_1.png new file mode 100644 index 0000000..e2396fa Binary files /dev/null and b/docs/inherit_graph_1.png differ diff --git a/docs/inherit_graph_2.map b/docs/inherit_graph_2.map new file mode 100644 index 0000000..f1e2ffd --- /dev/null +++ b/docs/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_2.md5 b/docs/inherit_graph_2.md5 new file mode 100644 index 0000000..1ab907b --- /dev/null +++ b/docs/inherit_graph_2.md5 @@ -0,0 +1 @@ +b7af078158c9eef88fde2d12ad450382 \ No newline at end of file diff --git a/docs/inherit_graph_2.png b/docs/inherit_graph_2.png new file mode 100644 index 0000000..7466ecb Binary files /dev/null and b/docs/inherit_graph_2.png differ diff --git a/docs/inherit_graph_3.map b/docs/inherit_graph_3.map new file mode 100644 index 0000000..d880901 --- /dev/null +++ b/docs/inherit_graph_3.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/inherit_graph_3.md5 b/docs/inherit_graph_3.md5 new file mode 100644 index 0000000..402c763 --- /dev/null +++ b/docs/inherit_graph_3.md5 @@ -0,0 +1 @@ +757bdf8487474520550c0643773183c6 \ No newline at end of file diff --git a/docs/inherit_graph_3.png b/docs/inherit_graph_3.png new file mode 100644 index 0000000..bde54bc Binary files /dev/null and b/docs/inherit_graph_3.png differ diff --git a/docs/inherit_graph_4.map b/docs/inherit_graph_4.map new file mode 100644 index 0000000..cfa4d67 --- /dev/null +++ b/docs/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_4.md5 b/docs/inherit_graph_4.md5 new file mode 100644 index 0000000..dcc0cea --- /dev/null +++ b/docs/inherit_graph_4.md5 @@ -0,0 +1 @@ +094d8e3fd574b88a3c18f63117ce0693 \ No newline at end of file diff --git a/docs/inherit_graph_4.png b/docs/inherit_graph_4.png new file mode 100644 index 0000000..c3a2426 Binary files /dev/null and b/docs/inherit_graph_4.png differ diff --git a/docs/inherit_graph_5.map b/docs/inherit_graph_5.map new file mode 100644 index 0000000..cff9111 --- /dev/null +++ b/docs/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_5.md5 b/docs/inherit_graph_5.md5 new file mode 100644 index 0000000..4f037b4 --- /dev/null +++ b/docs/inherit_graph_5.md5 @@ -0,0 +1 @@ +a235ae75ffa7ca17756239df7a15f62b \ No newline at end of file diff --git a/docs/inherit_graph_5.png b/docs/inherit_graph_5.png new file mode 100644 index 0000000..38b1968 Binary files /dev/null and b/docs/inherit_graph_5.png differ diff --git a/docs/inherit_graph_6.map b/docs/inherit_graph_6.map new file mode 100644 index 0000000..d47af84 --- /dev/null +++ b/docs/inherit_graph_6.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/inherit_graph_6.md5 b/docs/inherit_graph_6.md5 new file mode 100644 index 0000000..a5b2557 --- /dev/null +++ b/docs/inherit_graph_6.md5 @@ -0,0 +1 @@ +290d57ed80df4d467f6d1396f3c66049 \ No newline at end of file diff --git a/docs/inherit_graph_6.png b/docs/inherit_graph_6.png new file mode 100644 index 0000000..6d866db Binary files /dev/null and b/docs/inherit_graph_6.png differ diff --git a/docs/inherit_graph_7.map b/docs/inherit_graph_7.map new file mode 100644 index 0000000..7a1ac37 --- /dev/null +++ b/docs/inherit_graph_7.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/inherit_graph_7.md5 b/docs/inherit_graph_7.md5 new file mode 100644 index 0000000..2333d03 --- /dev/null +++ b/docs/inherit_graph_7.md5 @@ -0,0 +1 @@ +7c9cf0a8b9fc3c616342fb52741b2f78 \ No newline at end of file diff --git a/docs/inherit_graph_7.png b/docs/inherit_graph_7.png new file mode 100644 index 0000000..21130ab Binary files /dev/null and b/docs/inherit_graph_7.png differ diff --git a/docs/inherit_graph_8.map b/docs/inherit_graph_8.map new file mode 100644 index 0000000..0c9d4e8 --- /dev/null +++ b/docs/inherit_graph_8.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/inherit_graph_8.md5 b/docs/inherit_graph_8.md5 new file mode 100644 index 0000000..804ec78 --- /dev/null +++ b/docs/inherit_graph_8.md5 @@ -0,0 +1 @@ +bc851a0f2891d5a80cd950f6b7b7bafa \ No newline at end of file diff --git a/docs/inherit_graph_8.png b/docs/inherit_graph_8.png new file mode 100644 index 0000000..658a099 Binary files /dev/null and b/docs/inherit_graph_8.png differ diff --git a/docs/inherits.html b/docs/inherits.html new file mode 100644 index 0000000..808da01 --- /dev/null +++ b/docs/inherits.html @@ -0,0 +1,152 @@ + + + + + + + +DreamHacker: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + + + +
+ + + + + +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+
+
+ + + + diff --git a/docs/jquery.js b/docs/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/docs/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/docs/json__fastcgi__web__api_8h.html b/docs/json__fastcgi__web__api_8h.html new file mode 100644 index 0000000..d2832e9 --- /dev/null +++ b/docs/json__fastcgi__web__api_8h.html @@ -0,0 +1,157 @@ + + + + + + + +DreamHacker: include/json_fastcgi_web_api.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
json_fastcgi_web_api.h File Reference
+
+
+
#include <stdint.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/signal.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <iostream>
+#include <fcgio.h>
+#include <thread>
+#include <string>
+#include <map>
+#include <curl/curl.h>
+
+Include dependency graph for json_fastcgi_web_api.h:
+
+
+ + + + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + + + + + + +

+Data Structures

class  JSONCGIHandler
 
class  JSONCGIHandler::GETCallback
 
class  JSONCGIHandler::POSTCallback
 
class  JSONCGIHandler::JSONGenerator
 
+
+
+ + + + diff --git a/docs/json__fastcgi__web__api_8h__dep__incl.map b/docs/json__fastcgi__web__api_8h__dep__incl.map new file mode 100644 index 0000000..9e37314 --- /dev/null +++ b/docs/json__fastcgi__web__api_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/json__fastcgi__web__api_8h__dep__incl.md5 b/docs/json__fastcgi__web__api_8h__dep__incl.md5 new file mode 100644 index 0000000..59812bc --- /dev/null +++ b/docs/json__fastcgi__web__api_8h__dep__incl.md5 @@ -0,0 +1 @@ +dd80854d3737542727e961da29063ad4 \ No newline at end of file diff --git a/docs/json__fastcgi__web__api_8h__dep__incl.png b/docs/json__fastcgi__web__api_8h__dep__incl.png new file mode 100644 index 0000000..a3aedad Binary files /dev/null and b/docs/json__fastcgi__web__api_8h__dep__incl.png differ diff --git a/docs/json__fastcgi__web__api_8h__incl.map b/docs/json__fastcgi__web__api_8h__incl.map new file mode 100644 index 0000000..ba0f735 --- /dev/null +++ b/docs/json__fastcgi__web__api_8h__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/json__fastcgi__web__api_8h__incl.md5 b/docs/json__fastcgi__web__api_8h__incl.md5 new file mode 100644 index 0000000..f810937 --- /dev/null +++ b/docs/json__fastcgi__web__api_8h__incl.md5 @@ -0,0 +1 @@ +5d6922228e543ddfe9a2dbdaf1731e70 \ No newline at end of file diff --git a/docs/json__fastcgi__web__api_8h__incl.png b/docs/json__fastcgi__web__api_8h__incl.png new file mode 100644 index 0000000..69cb31b Binary files /dev/null and b/docs/json__fastcgi__web__api_8h__incl.png differ diff --git a/docs/json__fastcgi__web__api_8h_source.html b/docs/json__fastcgi__web__api_8h_source.html new file mode 100644 index 0000000..2c9fcb7 --- /dev/null +++ b/docs/json__fastcgi__web__api_8h_source.html @@ -0,0 +1,325 @@ + + + + + + + +DreamHacker: include/json_fastcgi_web_api.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
json_fastcgi_web_api.h
+
+
+Go to the documentation of this file.
1 #ifndef FAST_CGI_H
+
2 #define FAST_CGI_H
+
3 
+
4 #include <stdint.h>
+
5 #include <unistd.h>
+
6 #include <stdio.h>
+
7 #include <stdlib.h>
+
8 #include <sys/signal.h>
+
9 #include <sys/stat.h>
+
10 #include <sys/socket.h>
+
11 #include <iostream>
+
12 #include <fcgio.h>
+
13 #include <thread>
+
14 #include <string>
+
15 #include <map>
+
16 #include <curl/curl.h>
+
17 
+ +
26 public:
+
33  class GETCallback {
+
34  public:
+
41  virtual std::string getJSONString() = 0;
+
47  virtual std::string getContentType() { return "application/json"; }
+
48  };
+
49 
+
50 
+
55  class POSTCallback {
+
56  public:
+
62  virtual void postString(std::string postArg) = 0;
+
63  };
+
64 
+
65 
+
70  class JSONGenerator {
+
71  public:
+
77  void add(std::string key, std::string value) {
+
78  if (!firstEntry) {
+
79  json = json + ", ";
+
80  }
+
81  json = json + "\"" + key + "\":";
+
82  json = json + "\"" + value + "\"";
+
83  firstEntry = 0;
+
84  }
+
85 
+
91  void add(std::string key, double value) {
+
92  if (!firstEntry) {
+
93  json = json + ", ";
+
94  }
+
95  json = json + "\"" + key + "\":";
+
96  json = json + std::to_string(value);
+
97  firstEntry = 0;
+
98  }
+
99 
+
105  void add(std::string key, float value) {
+
106  add(key, (double)value);
+
107  }
+
108 
+
114  void add(std::string key, long value) {
+
115  if (!firstEntry) {
+
116  json = json + ", ";
+
117  }
+
118  json = json + "\"" + key + "\":";
+
119  json = json + std::to_string(value);
+
120  firstEntry = 0;
+
121  }
+
122 
+
128  void add(std::string key, int value) {
+
129  add(key, (long)value);
+
130  }
+
131 
+
136  std::string getJSON() { return json + "}"; }
+
137 
+
138  private:
+
139  std::string json = "{";
+
140  int firstEntry = 1;
+
141  };
+
142 
+
143 
+
144 public:
+
154  static std::map<std::string,std::string> postDecoder(std::string s) {
+
155  std::map<std::string,std::string> postMap;
+
156  CURL *curl = curl_easy_init();
+
157  if (NULL == curl) {
+
158  std::cerr << "Could not init curl.\n";
+
159  return postMap;
+
160  }
+
161  size_t pos = 0;
+
162  while (1) {
+
163  std::string token;
+
164  pos = s.find("&");
+
165  if (pos == std::string::npos) {
+
166  token = s;
+
167  } else {
+
168  token = s.substr(0, pos);
+
169  }
+
170  size_t pos2 = token.find("=");
+
171  if (pos2 != std::string::npos) {
+
172  std::string key = token.substr(0,pos2);
+
173  std::string value = token.substr(pos2+1,token.length());
+
174  char* valueDecoded = curl_easy_unescape( curl, value.c_str(), value.length(), NULL );
+
175  if (NULL != valueDecoded) {
+
176  for(int i = 0; i < strlen(valueDecoded); i++) {
+
177  if (valueDecoded[i] == '+') valueDecoded[i] = ' ';
+
178  }
+
179  postMap[key] = valueDecoded;
+
180  curl_free(valueDecoded);
+
181  }
+
182  }
+
183  if (pos == std::string::npos) break;
+
184  s.erase(0, pos + 1);
+
185  }
+
186  curl_easy_cleanup(curl);
+
187  return postMap;
+
188  }
+
189 
+
190 
+
202  JSONCGIHandler(GETCallback* argGetCallback,
+
203  POSTCallback* argPostCallback = nullptr,
+
204  const char socketpath[] = "/tmp/fastcgisocket") {
+
205  getCallback = argGetCallback;
+
206  postCallback = argPostCallback;
+
207  int r = curl_global_init(CURL_GLOBAL_NOTHING);
+
208  if (r) {
+
209  std::cerr << "Curl init error: " << r << "\n";
+
210  }
+
211  // set it to zero
+
212  memset(&request, 0, sizeof(FCGX_Request));
+
213  // init the connection
+
214  FCGX_Init();
+
215  // open the socket
+
216  sock_fd = FCGX_OpenSocket(socketpath, 1024);
+
217  // making sure the nginx process can read/write to it
+
218  chmod(socketpath, S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH);
+
219  // init requests so that we can accept requests
+
220  FCGX_InitRequest(&request, sock_fd, 0);
+
221  // starting main loop
+
222  mainThread = new std::thread(JSONCGIHandler::exec, this);
+
223  }
+
224 
+ +
230  running = 0;
+
231  shutdown(sock_fd, SHUT_RDWR);
+
232  mainThread->join();
+
233  delete mainThread;
+
234  FCGX_Free(&request, sock_fd);
+
235  }
+
236 
+
237  private:
+
238  static void exec(JSONCGIHandler* fastCGIHandler) {
+
239  while ((fastCGIHandler->running) && (FCGX_Accept_r(&(fastCGIHandler->request)) == 0)) {
+
240  char * method = FCGX_GetParam("REQUEST_METHOD", fastCGIHandler->request.envp);
+
241  if (method == nullptr) {
+
242  fprintf(stderr,"Please add 'include fastcgi_params;' to the nginx conf.\n");
+
243  throw "JSONCGI parameters missing.\n";
+
244  }
+
245  if (strcmp(method, "GET") == 0) {
+
246  // create the header
+
247  std::string buffer = "Content-type: "+fastCGIHandler->getCallback->getContentType();
+
248  buffer = buffer + "; charset=utf-8\r\n";
+
249  buffer = buffer + "\r\n";
+
250  // append the data
+
251  buffer = buffer + fastCGIHandler->getCallback->getJSONString();
+
252  buffer = buffer + "\r\n";
+
253  // send the data to the web server
+
254  FCGX_PutStr(buffer.c_str(), buffer.length(), fastCGIHandler->request.out);
+
255  FCGX_Finish_r(&(fastCGIHandler->request));
+
256  }
+
257  if (strcmp(method, "POST") == 0) {
+
258  long reqLen = 1;
+
259  char * content_length_str = FCGX_GetParam("CONTENT_LENGTH",
+
260  fastCGIHandler->request.envp);
+
261  if (content_length_str) reqLen = atol(content_length_str)+1;
+
262  char* tmp = new char[reqLen];
+
263  FCGX_GetStr(tmp,reqLen,fastCGIHandler->request.in);
+
264  tmp[reqLen - 1] = 0;
+
265  if (nullptr != fastCGIHandler->postCallback) {
+
266  fastCGIHandler->postCallback->postString(tmp);
+
267  }
+
268  delete[] tmp;
+
269  // create the header
+
270  std::string buffer = "Content-type: text/html";
+
271  buffer = buffer + "; charset=utf-8\r\n";
+
272  buffer = buffer + "\r\n";
+
273  // append the data
+
274  buffer = buffer + "\r\n";
+
275  buffer = buffer + "<html></html>\r\n";
+
276  // send the data to the web server
+
277  FCGX_PutStr(buffer.c_str(), buffer.length(), fastCGIHandler->request.out);
+
278  FCGX_Finish_r(&(fastCGIHandler->request));
+
279  }
+
280  }
+
281  }
+
282 
+
283  private:
+
284  FCGX_Request request;
+
285  int sock_fd = 0;
+
286  int running = 1;
+
287  std::thread* mainThread = nullptr;
+ + +
290 };
+
291 
+
292 #endif
+ +
virtual std::string getJSONString()=0
+
virtual std::string getContentType()
+ +
void add(std::string key, std::string value)
+
void add(std::string key, float value)
+ +
void add(std::string key, int value)
+ +
void add(std::string key, double value)
+
void add(std::string key, long value)
+ + +
virtual void postString(std::string postArg)=0
+ +
POSTCallback * postCallback
+
static std::map< std::string, std::string > postDecoder(std::string s)
+
static void exec(JSONCGIHandler *fastCGIHandler)
+ + + +
GETCallback * getCallback
+
JSONCGIHandler(GETCallback *argGetCallback, POSTCallback *argPostCallback=nullptr, const char socketpath[]="/tmp/fastcgisocket")
+
std::thread * mainThread
+ +
+
+ + + + diff --git a/docs/main_8cpp.html b/docs/main_8cpp.html new file mode 100644 index 0000000..8af4a9e --- /dev/null +++ b/docs/main_8cpp.html @@ -0,0 +1,457 @@ + + + + + + + +DreamHacker: main/main.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
main.cpp File Reference
+
+
+
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <time.h>
+#include <wiringPi.h>
+#include <mcp3004.h>
+#include <QApplication>
+#include "../include/mainwindow.h"
+#include "../include/CppTimer.h"
+#include <thread>
+#include "../include/PulseSensor.h"
+#include "../include/json_fastcgi_web_api.h"
+
+Include dependency graph for main.cpp:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

class  SENSORfastcgicallback
 
class  JSONCGIADCCallback
 
+ + + + + + + +

+Functions

void signalHandler (int signum)
 
void usage (void)
 
int main (int argc, char *argv[])
 
+ + + +

+Variables

volatile int g_running = 1
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char * argv[] 
)
+
+

Threshold of Beats per minute Modifiable by using ./main -t <int>

+

bool value: if 1, then ecg will be plotted, if zero ecg will not be plotted Can be changed by giving arguments like this: ./main -g 0 for graph not to be plotted and ./main -g 1 for graph to be plotted. Default is 1

+

bool value: if 1, then program will run in simulation mode, if 0 then real data of bpm is used. Can be changed by giving arguments like this: ./main -s 0 for real bpm and ./main -g 1 for simulated bpm. Default is 1

+

bool value if 1, the audio will be played from this progrma itself. Default is 1. can be changed while running the program by giving arguments like ./main -l 0

+

If we want to play the audio at any time during the day then nightTime should be set to now. For that we need to set this value to 1. This can be done by passing the argument like: ./main -n 1. Default is 0

+

int value. The delay it takes the program to reach from the state of maybesleep to sleep. Usually it must be half an our but it can be manipulated for testing purpose like this: ./main -w 60 It this example the program would wait for 30 seconds to go from maybesleep state to sleep state.

+

This variable is used to get the parameters from the terminal

+

This variable is used to get the parameters from the terminal

+

Pulse me runs in a c++ timer It reads the analog data from pulse sensor and calculates BPM. BPM is used for other analysis.

+

Setting up the JSONCGI communication The callback which is called when fastCGI needs data gets a pointer to the SENSOR callback class which contains the samples. Remember this is just a simple example to have access to some data.

+

The QApplication will form the windows for the display of raw data read from the sensor. This will block the control and the program will keep on runnig stuck here.

+

If the graphing window is terminated by the user then the control will get stuck in the while loop which depends on the global variable bool runnig

+

The timer will stop if the control reaches at pulseMe.stop

+ +

Definition at line 117 of file main.cpp.

+
118 {
+
123  int threshold = 77;
+
129  bool graph = 1;
+
135  bool simulation = 0;
+
136 
+
141  bool local_audio = 1;
+
142 
+
148  bool nightTimeNow = 0;
+
149 
+
155  int surelySleptTime = 2;
+
156 
+
157  bool flagSurelySleptTime = 0;
+
158 
+
162  char key;
+
163 
+
167  char* value;
+
168  if(argc > 1){
+
169  //mode = atoi(argv[1]);
+
170  for(int i = 1; i < argc; i++){
+
171  if(argv[i][0] == '-'){
+
172  key = argv[i][1];
+
173  value = argv[i + 1];
+
174  switch(key){
+
175  case 't':
+
176  threshold = atoi(value);
+
177  i +=1;
+
178  break;
+
179  case 'g':
+
180  graph = atoi(value);
+
181  i +=1;
+
182  break;
+
183  case 's':
+
184  simulation = atoi(value);
+
185  i +=1;
+
186  break;
+
187  case 'l':
+
188  local_audio = atoi(value);
+
189  i +=1;
+
190  break;
+
191  case 'n':
+
192  nightTimeNow = atoi(value);
+
193  i +=1;
+
194  break;
+
195  case 'w':
+
196  surelySleptTime = atoi(value);
+
197  flagSurelySleptTime = 1;
+
198  i +=1;
+
199  break;
+
200  case 'h':
+
201  i +=1;
+
202  usage();
+
203  exit(0);
+
204  break;
+
205  default:
+
206  printf("Wrong Parameters passed\n\n");
+
207  usage();
+
208  exit(0);
+
209  }
+
210 
+
211  }else{
+
212  usage();
+
213  exit(0);
+
214  }
+
215  }
+
216  }
+
217  signal(SIGINT, signalHandler);
+
223  SensorTimer pulseMe(threshold, simulation, local_audio);
+
224  if(nightTimeNow)
+
225  pulseMe.setNigtTimeToNow();
+
226  //waiting time just after the bpm drops to threshold
+
227  if(flagSurelySleptTime)
+
228  pulseMe.setSurelySleptTime(surelySleptTime);
+
229 
+
230 
+
231  SENSORfastcgicallback sensorfastcgicallback;
+
232  pulseMe.setCallback(&sensorfastcgicallback);
+
233 
+
241  JSONCGIADCCallback fastCGIADCCallback(&sensorfastcgicallback);
+
242 
+
243 
+
244  // starting the fastCGI handler with the callback and the
+
245  // socket for nginx.
+
246  JSONCGIHandler* fastCGIHandler = new JSONCGIHandler(&fastCGIADCCallback, NULL, "/tmp/sensorsocket");
+
247 
+
248  pulseMe.startms(2);
+
253  QApplication a(argc, argv);
+
254  SenseWindow w;
+
255  if(graph){
+
256  w.showMaximized();
+
257  a.exec();
+
258  }
+
259 
+
265  while(g_running);
+
266 
+
267 
+
272  //pulseMe.stop();
+
273  pulseMe.stopNew();
+
274 
+
275 
+
276  return 0;
+
277 
+
278 }//int main(int argc, char *argv[])
+ + + + + +
volatile int g_running
Definition: main.cpp:98
+
void signalHandler(int signum)
Definition: main.cpp:100
+
void usage(void)
Definition: main.cpp:105
+
+

References g_running, SensorTimer::setCallback(), SensorTimer::setNigtTimeToNow(), SensorTimer::setSurelySleptTime(), signalHandler(), CppTimer::startms(), SensorTimer::stopNew(), and usage().

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + +
+ +
+
+ +

◆ signalHandler()

+ +
+
+ + + + + + + + +
void signalHandler (int signum)
+
+ +

Definition at line 100 of file main.cpp.

+
100  {
+
101  g_running = 0;
+
102  printf("\n\n\nProgram Terminated\n\n\n");
+
103 }
+
+

References g_running.

+ +

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ usage()

+ +
+
+ + + + + + + + +
void usage (void )
+
+ +

Definition at line 105 of file main.cpp.

+
105  {
+
106  printf("\nUsage:\n"
+
107  "./main [-h] for usage\n"
+
108  "./main [-t <int>] to put bpm threshold\n"
+
109  "./main [-g <bool>] 1 to plot in qtplot. Default: 1\n"
+
110  "./main [-l <bool>] 1 to play audio locally. Default: 1\n"
+
111  "./main [-n <bool>] 1 to set night time to now. Default: 0\n"
+
112  "./main [-w <int> ]set waiting time to confirm sleep.\n"
+
113  "./main [-s <bool>] 1 for simulated bpm. Default: 0\n");
+
114 }
+
+

Referenced by main().

+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+

Variable Documentation

+ +

◆ g_running

+ +
+
+ + + + +
volatile int g_running = 1
+
+ +

Definition at line 98 of file main.cpp.

+ +

Referenced by main(), and signalHandler().

+ +
+
+
+
+ + + + diff --git a/docs/main_8cpp.js b/docs/main_8cpp.js new file mode 100644 index 0000000..c89dd7a --- /dev/null +++ b/docs/main_8cpp.js @@ -0,0 +1,9 @@ +var main_8cpp = +[ + [ "SENSORfastcgicallback", "class_s_e_n_s_o_rfastcgicallback.html", "class_s_e_n_s_o_rfastcgicallback" ], + [ "JSONCGIADCCallback", "class_j_s_o_n_c_g_i_a_d_c_callback.html", "class_j_s_o_n_c_g_i_a_d_c_callback" ], + [ "main", "main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "signalHandler", "main_8cpp.html#a8ee3282bc313e547dbbb8d4f4010db61", null ], + [ "usage", "main_8cpp.html#ae8605e2b78cd4a81b6c6b5c30cb7366a", null ], + [ "g_running", "main_8cpp.html#a037aed45f792fc3e78387006be43a53e", null ] +]; \ No newline at end of file diff --git a/docs/main_8cpp__incl.map b/docs/main_8cpp__incl.map new file mode 100644 index 0000000..58bca67 --- /dev/null +++ b/docs/main_8cpp__incl.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/main_8cpp__incl.md5 b/docs/main_8cpp__incl.md5 new file mode 100644 index 0000000..77e0085 --- /dev/null +++ b/docs/main_8cpp__incl.md5 @@ -0,0 +1 @@ +ae4b513c93e7e72e3c1b82fc7149237e \ No newline at end of file diff --git a/docs/main_8cpp__incl.png b/docs/main_8cpp__incl.png new file mode 100644 index 0000000..d185dbf Binary files /dev/null and b/docs/main_8cpp__incl.png differ diff --git a/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map new file mode 100644 index 0000000..8ed6f6b --- /dev/null +++ b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 new file mode 100644 index 0000000..33ad6d3 --- /dev/null +++ b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.md5 @@ -0,0 +1 @@ +6bc1f7dc6929c43bcfb1c9d46f8dc618 \ No newline at end of file diff --git a/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.png b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.png new file mode 100644 index 0000000..b1fe6bf Binary files /dev/null and b/docs/main_8cpp_a0ddf1224851353fc92bfbff6f499fa97_cgraph.png differ diff --git a/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.map b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.map new file mode 100644 index 0000000..0315de8 --- /dev/null +++ b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.md5 b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.md5 new file mode 100644 index 0000000..ab4f609 --- /dev/null +++ b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.md5 @@ -0,0 +1 @@ +d00a740539ab8e63b352f3821e6995e8 \ No newline at end of file diff --git a/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.png b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.png new file mode 100644 index 0000000..0572451 Binary files /dev/null and b/docs/main_8cpp_a8ee3282bc313e547dbbb8d4f4010db61_icgraph.png differ diff --git a/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.map b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.map new file mode 100644 index 0000000..81c602d --- /dev/null +++ b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.md5 b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.md5 new file mode 100644 index 0000000..7b377a3 --- /dev/null +++ b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.md5 @@ -0,0 +1 @@ +837c2a2791b78ef085696d25b9d94b28 \ No newline at end of file diff --git a/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.png b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.png new file mode 100644 index 0000000..388eb69 Binary files /dev/null and b/docs/main_8cpp_ae8605e2b78cd4a81b6c6b5c30cb7366a_icgraph.png differ diff --git a/docs/main_8cpp_source.html b/docs/main_8cpp_source.html new file mode 100644 index 0000000..d52658e --- /dev/null +++ b/docs/main_8cpp_source.html @@ -0,0 +1,306 @@ + + + + + + + +DreamHacker: main/main.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
main.cpp
+
+
+Go to the documentation of this file.
1 #include <stdio.h>
+
2 #include <stdlib.h>
+
3 #include <string.h>
+
4 #include <fcntl.h>
+
5 #include <sys/stat.h>
+
6 #include <sys/types.h>
+
7 #include <unistd.h>
+
8 #include <stdarg.h>
+
9 #include <signal.h>
+
10 #include <time.h>
+
11 #include <wiringPi.h>
+
12 #include <mcp3004.h>
+
13 #include <QApplication>
+
14 #include "../include/mainwindow.h"
+
15 #include "../include/CppTimer.h"
+
16 #include <thread>
+
17 #include "../include/PulseSensor.h"
+
18 #include "../include/json_fastcgi_web_api.h"
+
19 
+
20 
+
21 
+
22 
+ +
31 public:
+ +
33  bool sleep;
+
34  int threshold;
+
35  long t;
+
36 
+
48  virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold) {
+
49  sleep = mayBeSleep;
+
50  beatsPerMinute = beats;
+
51  threshold = bpmThreshold;
+
52  t = time(NULL);
+
53  }
+
54 
+
55 };
+
56 
+ +
66 private:
+ +
72 
+
73 public:
+ +
79  sensorfastcgi = argSENSORfastcgi;
+
80  }
+
81 
+
88  virtual std::string getJSONString()
+
89  {
+
90  JSONCGIHandler::JSONGenerator jsonGenerator;
+
91  jsonGenerator.add("epoch", (long)time(NULL));
+
92  jsonGenerator.add("beats", sensorfastcgi->beatsPerMinute);
+
93  jsonGenerator.add("sleep", sensorfastcgi->sleep);
+
94  jsonGenerator.add("bpmThreshold", sensorfastcgi->threshold);
+
95  return jsonGenerator.getJSON();
+
96  }
+
97 };
+
98 volatile int g_running = 1;
+
99 
+
100 void signalHandler(int signum){
+
101  g_running = 0;
+
102  printf("\n\n\nProgram Terminated\n\n\n");
+
103 }
+
104 
+
105 void usage(void){
+
106  printf("\nUsage:\n"
+
107  "./main [-h] for usage\n"
+
108  "./main [-t <int>] to put bpm threshold\n"
+
109  "./main [-g <bool>] 1 to plot in qtplot. Default: 1\n"
+
110  "./main [-l <bool>] 1 to play audio locally. Default: 1\n"
+
111  "./main [-n <bool>] 1 to set night time to now. Default: 0\n"
+
112  "./main [-w <int> ]set waiting time to confirm sleep.\n"
+
113  "./main [-s <bool>] 1 for simulated bpm. Default: 0\n");
+
114 }
+
115 
+
116 
+
117 int main(int argc, char *argv[])
+
118 {
+
123  int threshold = 77;
+
129  bool graph = 1;
+
135  bool simulation = 0;
+
136 
+
141  bool local_audio = 1;
+
142 
+
148  bool nightTimeNow = 0;
+
149 
+
155  int surelySleptTime = 2;
+
156 
+
157  bool flagSurelySleptTime = 0;
+
158 
+
162  char key;
+
163 
+
167  char* value;
+
168  if(argc > 1){
+
169  //mode = atoi(argv[1]);
+
170  for(int i = 1; i < argc; i++){
+
171  if(argv[i][0] == '-'){
+
172  key = argv[i][1];
+
173  value = argv[i + 1];
+
174  switch(key){
+
175  case 't':
+
176  threshold = atoi(value);
+
177  i +=1;
+
178  break;
+
179  case 'g':
+
180  graph = atoi(value);
+
181  i +=1;
+
182  break;
+
183  case 's':
+
184  simulation = atoi(value);
+
185  i +=1;
+
186  break;
+
187  case 'l':
+
188  local_audio = atoi(value);
+
189  i +=1;
+
190  break;
+
191  case 'n':
+
192  nightTimeNow = atoi(value);
+
193  i +=1;
+
194  break;
+
195  case 'w':
+
196  surelySleptTime = atoi(value);
+
197  flagSurelySleptTime = 1;
+
198  i +=1;
+
199  break;
+
200  case 'h':
+
201  i +=1;
+
202  usage();
+
203  exit(0);
+
204  break;
+
205  default:
+
206  printf("Wrong Parameters passed\n\n");
+
207  usage();
+
208  exit(0);
+
209  }
+
210 
+
211  }else{
+
212  usage();
+
213  exit(0);
+
214  }
+
215  }
+
216  }
+
217  signal(SIGINT, signalHandler);
+
223  SensorTimer pulseMe(threshold, simulation, local_audio);
+
224  if(nightTimeNow)
+
225  pulseMe.setNigtTimeToNow();
+
226  //waiting time just after the bpm drops to threshold
+
227  if(flagSurelySleptTime)
+
228  pulseMe.setSurelySleptTime(surelySleptTime);
+
229 
+
230 
+
231  SENSORfastcgicallback sensorfastcgicallback;
+
232  pulseMe.setCallback(&sensorfastcgicallback);
+
233 
+
241  JSONCGIADCCallback fastCGIADCCallback(&sensorfastcgicallback);
+
242 
+
243 
+
244  // starting the fastCGI handler with the callback and the
+
245  // socket for nginx.
+
246  JSONCGIHandler* fastCGIHandler = new JSONCGIHandler(&fastCGIADCCallback, NULL, "/tmp/sensorsocket");
+
247 
+
248  pulseMe.startms(2);
+
253  QApplication a(argc, argv);
+
254  SenseWindow w;
+
255  if(graph){
+
256  w.showMaximized();
+
257  a.exec();
+
258  }
+
259 
+
265  while(g_running);
+
266 
+
267 
+
272  //pulseMe.stop();
+
273  pulseMe.stopNew();
+
274 
+
275 
+
276  return 0;
+
277 
+
278 }//int main(int argc, char *argv[])
+
279 
+
280 
+
virtual void startms(long millisecs, cppTimerType_t type=PERIODIC)
Definition: CppTimer.cpp:55
+ +
SENSORfastcgicallback * sensorfastcgi
Definition: main.cpp:71
+
virtual std::string getJSONString()
Definition: main.cpp:88
+
JSONCGIADCCallback(SENSORfastcgicallback *argSENSORfastcgi)
Definition: main.cpp:78
+ + +
void add(std::string key, std::string value)
+ + + +
virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold)
Definition: main.cpp:48
+ + + + + + + +
void setCallback(SensorCallback *cb)
Definition: PulseSensor.h:314
+
void setNigtTimeToNow()
Definition: PulseSensor.h:247
+
void stopNew()
Definition: PulseSensor.h:255
+
void setSurelySleptTime(int)
Definition: PulseSensor.h:244
+
volatile int g_running
Definition: main.cpp:98
+
int main(int argc, char *argv[])
Definition: main.cpp:117
+
void signalHandler(int signum)
Definition: main.cpp:100
+
void usage(void)
Definition: main.cpp:105
+
+
+ + + + diff --git a/docs/mainwindow_8cpp.html b/docs/mainwindow_8cpp.html new file mode 100644 index 0000000..ea6fe43 --- /dev/null +++ b/docs/mainwindow_8cpp.html @@ -0,0 +1,178 @@ + + + + + + + +DreamHacker: include/mainwindow.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mainwindow.cpp File Reference
+
+
+
+Include dependency graph for mainwindow.cpp:
+
+
+ + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + +

+Variables

const char instructionsTxt []
 
const char titleTxt [] = "QCustomPlot Dream Hacker Pulse Measurement"
 
+

Variable Documentation

+ +

◆ instructionsTxt

+ +
+
+ + + + +
const char instructionsTxt[]
+
+Initial value:
=
+
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+
"p, li { white-space: pre-wrap; }\n"
+
"</style></head><body style=\" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;\">\n"
+
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Select the axes</span> to drag and zoom them individually.</p>\n"
+
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Double click labels</span> or legend items to set user specified strings.</p>\n"
+
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Left click</span> on graphs or legend to select graphs.</p>\n"
+
"<p style=\" m"
+
"argin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Right click</span> for a popup menu to add/remove graphs and move the legend</p></body></html>"
+
+

Definition at line 3 of file mainwindow.cpp.

+ +

Referenced by MainWindow::MainWindow().

+ +
+
+ +

◆ titleTxt

+ +
+
+ + + + +
const char titleTxt[] = "QCustomPlot Dream Hacker Pulse Measurement"
+
+ +

Definition at line 14 of file mainwindow.cpp.

+ +

Referenced by MainWindow::MainWindow().

+ +
+
+
+
+ + + + diff --git a/docs/mainwindow_8cpp.js b/docs/mainwindow_8cpp.js new file mode 100644 index 0000000..1de869f --- /dev/null +++ b/docs/mainwindow_8cpp.js @@ -0,0 +1,5 @@ +var mainwindow_8cpp = +[ + [ "instructionsTxt", "mainwindow_8cpp.html#ae78f4adc40f6a5315f05fc1ab3e69ecf", null ], + [ "titleTxt", "mainwindow_8cpp.html#a773d83c4ef02c0fe33e23e9133603c75", null ] +]; \ No newline at end of file diff --git a/docs/mainwindow_8cpp__incl.map b/docs/mainwindow_8cpp__incl.map new file mode 100644 index 0000000..01d1207 --- /dev/null +++ b/docs/mainwindow_8cpp__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/mainwindow_8cpp__incl.md5 b/docs/mainwindow_8cpp__incl.md5 new file mode 100644 index 0000000..87eebc6 --- /dev/null +++ b/docs/mainwindow_8cpp__incl.md5 @@ -0,0 +1 @@ +392e1be09d10667a72ffd0b2633b8a7b \ No newline at end of file diff --git a/docs/mainwindow_8cpp__incl.png b/docs/mainwindow_8cpp__incl.png new file mode 100644 index 0000000..83fb008 Binary files /dev/null and b/docs/mainwindow_8cpp__incl.png differ diff --git a/docs/mainwindow_8cpp_source.html b/docs/mainwindow_8cpp_source.html new file mode 100644 index 0000000..dc1a140 --- /dev/null +++ b/docs/mainwindow_8cpp_source.html @@ -0,0 +1,471 @@ + + + + + + + +DreamHacker: include/mainwindow.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mainwindow.cpp
+
+
+Go to the documentation of this file.
1 #include "../include/mainwindow.h"
+
2 
+
3 const char instructionsTxt[] =
+
4  "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+
5  "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
+
6  "p, li { white-space: pre-wrap; }\n"
+
7  "</style></head><body style=\" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;\">\n"
+
8  "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Select the axes</span> to drag and zoom them individually.</p>\n"
+
9  "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Double click labels</span> or legend items to set user specified strings.</p>\n"
+
10  "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Left click</span> on graphs or legend to select graphs.</p>\n"
+
11  "<p style=\" m"
+
12  "argin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Right click</span> for a popup menu to add/remove graphs and move the legend</p></body></html>";
+
13 
+
14 const char titleTxt[] = "QCustomPlot Dream Hacker Pulse Measurement";
+
15 
+
16 MainWindow::MainWindow(QWidget *parent) :
+
17  QMainWindow(parent) {
+
18  srand(QDateTime::currentDateTime().toTime_t());
+
19 
+
20  // Layout
+
21  centralWidget = new QWidget();
+
22  verticalLayout = new QVBoxLayout(centralWidget);
+
23  verticalLayout->setSpacing(6);
+
24  verticalLayout->setContentsMargins(11, 11, 11, 11);
+
25  frame_2 = new QFrame(centralWidget);
+
26  frame_2->setFrameShape(QFrame::StyledPanel);
+
27  frame_2->setFrameShadow(QFrame::Sunken);
+
28  frame_2->setLineWidth(1);
+
29  frame_2->setMidLineWidth(0);
+
30  verticalLayout_3 = new QVBoxLayout(frame_2);
+
31  verticalLayout_3->setSpacing(0);
+
32  verticalLayout_3->setContentsMargins(0, 0, 0, 0);
+
33  customPlot = new QCustomPlot(frame_2);
+
34  QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+
35  sizePolicy.setHorizontalStretch(0);
+
36  sizePolicy.setVerticalStretch(0);
+
37  sizePolicy.setHeightForWidth(customPlot->sizePolicy().hasHeightForWidth());
+
38  customPlot->setSizePolicy(sizePolicy);
+
39  verticalLayout_3->addWidget(customPlot);
+
40  verticalLayout->addWidget(frame_2);
+
41  frame = new QFrame(centralWidget);
+
42  frame->setFrameShape(QFrame::StyledPanel);
+
43  frame->setFrameShadow(QFrame::Raised);
+
44  verticalLayout_2 = new QVBoxLayout(frame);
+
45  verticalLayout_2->setSpacing(6);
+
46  verticalLayout_2->setContentsMargins(11, 11, 11, 11);
+
47  label = new QLabel(frame);
+
48  verticalLayout_2->addWidget(label);
+
49  verticalLayout->addWidget(frame);
+
50  setCentralWidget(centralWidget);
+
51  statusBar = new QStatusBar();
+
52  setStatusBar(statusBar);
+
53 
+
54  customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes |
+
55  QCP::iSelectLegend | QCP::iSelectPlottables);
+
56  customPlot->xAxis->setRange(-1, 8);
+
57  //Shreyansh input y range
+
58  //customPlot->yAxis->setRange(-5, 5);
+
59  customPlot->yAxis->setRange(400, 600);
+
60  customPlot->axisRect()->setupFullAxesBox();
+
61 
+
62  customPlot->plotLayout()->insertRow(0);
+
63  QCPTextElement *title = new QCPTextElement(customPlot, titleTxt, QFont("sans", 17, QFont::Bold));
+
64  customPlot->plotLayout()->addElement(0, 0, title);
+
65 
+
66  customPlot->xAxis->setLabel("x Axis");
+
67  customPlot->yAxis->setLabel("y Axis");
+
68  customPlot->legend->setVisible(true);
+
69  QFont legendFont = font();
+
70  legendFont.setPointSize(10);
+
71  customPlot->legend->setFont(legendFont);
+
72  customPlot->legend->setSelectedFont(legendFont);
+
73  customPlot->legend->setSelectableParts(QCPLegend::spItems); // legend box shall not be selectable, only legend items
+
74 
+ +
76  //addRandomGraph();
+
77  //addRandomGraph();
+
78 
+
79  // connect slot that ties some axis selections together (especially opposite axes):
+
80  connect(customPlot, SIGNAL(selectionChangedByUser()), this, SLOT(selectionChanged()));
+
81  // connect slots that takes care that when an axis is selected, only that direction can be dragged and zoomed:
+
82  connect(customPlot, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(mousePress()));
+
83  connect(customPlot, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(mouseWheel()));
+
84 
+
85  // make bottom and left axes transfer their ranges to top and right axes:
+
86  connect(customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->xAxis2, SLOT(setRange(QCPRange)));
+
87  connect(customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->yAxis2, SLOT(setRange(QCPRange)));
+
88 
+
89  // connect some interaction slots:
+
90  connect(customPlot, SIGNAL(axisDoubleClick(QCPAxis*,QCPAxis::SelectablePart,QMouseEvent*)), this, SLOT(axisLabelDoubleClick(QCPAxis*,QCPAxis::SelectablePart)));
+
91  connect(customPlot, SIGNAL(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*)));
+
92  connect(title, SIGNAL(doubleClicked(QMouseEvent*)), this, SLOT(titleDoubleClick(QMouseEvent*)));
+
93 
+
94  // connect slot that shows a message in the status bar when a graph is clicked:
+
95  connect(customPlot, SIGNAL(plottableClick(QCPAbstractPlottable*,int,QMouseEvent*)), this, SLOT(graphClicked(QCPAbstractPlottable*,int)));
+
96 
+
97  // setup policy and connect slot for context menu popup:
+
98  customPlot->setContextMenuPolicy(Qt::CustomContextMenu);
+
99  connect(customPlot, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuRequest(QPoint)));
+
100 
+
101  setWindowTitle(titleTxt);
+
102  label->setText(instructionsTxt);
+
103 }
+
104 
+
105 void MainWindow::titleDoubleClick(QMouseEvent* event) {
+
106  Q_UNUSED(event)
+
107  if (QCPTextElement *title = qobject_cast<QCPTextElement*>(sender()))
+
108  {
+
109  // Set the plot title by double clicking on it
+
110  bool ok;
+
111  QString newTitle = QInputDialog::getText(this, "QCustomPlot example", "New plot title:", QLineEdit::Normal, title->text(), &ok);
+
112  if (ok)
+
113  {
+
114  title->setText(newTitle);
+
115  customPlot->replot();
+
116  }
+
117  }
+
118 }
+ +
120  customPlot->replot();
+
121 }
+
122 
+
123 void MainWindow::axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part) {
+
124  // Set an axis label by double clicking on it
+
125  if (part == QCPAxis::spAxisLabel) // only react when the actual axis label is clicked, not tick label or axis backbone
+
126  {
+
127  bool ok;
+
128  QString newLabel = QInputDialog::getText(this, "QCustomPlot example", "New axis label:", QLineEdit::Normal, axis->label(), &ok);
+
129  if (ok)
+
130  {
+
131  axis->setLabel(newLabel);
+
132  customPlot->replot();
+
133  }
+
134  }
+
135 }
+
136 
+
137 void MainWindow::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item) {
+
138  // Rename a graph by double clicking on its legend item
+
139  Q_UNUSED(legend)
+
140  if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0)
+
141  {
+
142  QCPPlottableLegendItem *plItem = qobject_cast<QCPPlottableLegendItem*>(item);
+
143  bool ok;
+
144  QString newName = QInputDialog::getText(this, "QCustomPlot example", "New graph name:", QLineEdit::Normal, plItem->plottable()->name(), &ok);
+
145  if (ok)
+
146  {
+
147  plItem->plottable()->setName(newName);
+
148  customPlot->replot();
+
149  }
+
150  }
+
151 }
+
152 
+ +
154  /*
+
155  normally, axis base line, axis tick labels and axis labels are selectable separately, but we want
+
156  the user only to be able to select the axis as a whole, so we tie the selected states of the tick labels
+
157  and the axis base line together. However, the axis label shall be selectable individually.
+
158 
+
159  The selection state of the left and right axes shall be synchronized as well as the state of the
+
160  bottom and top axes.
+
161 
+
162  Further, we want to synchronize the selection of the graphs with the selection state of the respective
+
163  legend item belonging to that graph. So the user can select a graph by either clicking on the graph itself
+
164  or on its legend item.
+
165  */
+
166 
+
167  // make top and bottom axes be selected synchronously, and handle axis and tick labels as one selectable object:
+
168  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis->selectedParts().testFlag(QCPAxis::spTickLabels) ||
+
169  customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spTickLabels))
+
170  {
+
171  customPlot->xAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
172  customPlot->xAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
173  }
+
174  // make left and right axes be selected synchronously, and handle axis and tick labels as one selectable object:
+
175  if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis->selectedParts().testFlag(QCPAxis::spTickLabels) ||
+
176  customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spTickLabels))
+
177  {
+
178  customPlot->yAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
179  customPlot->yAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels);
+
180  }
+
181 
+
182  // synchronize selection of graphs with selection of corresponding legend items:
+
183  for (int i=0; i<customPlot->graphCount(); ++i)
+
184  {
+
185  QCPGraph *graph = customPlot->graph(i);
+
186  QCPPlottableLegendItem *item = customPlot->legend->itemWithPlottable(graph);
+
187  if (item->selected() || graph->selected())
+
188  {
+
189  item->setSelected(true);
+
190  graph->setSelection(QCPDataSelection(graph->data()->dataRange()));
+
191  }
+
192  }
+
193 }
+
194 
+ +
196  // if an axis is selected, only allow the direction of that axis to be dragged
+
197  // if no axis is selected, both directions may be dragged
+
198 
+
199  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
200  customPlot->axisRect()->setRangeDrag(customPlot->xAxis->orientation());
+
201  else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
202  customPlot->axisRect()->setRangeDrag(customPlot->yAxis->orientation());
+
203  else
+
204  customPlot->axisRect()->setRangeDrag(Qt::Horizontal|Qt::Vertical);
+
205 }
+
206 
+ +
208  // if an axis is selected, only allow the direction of that axis to be zoomed
+
209  // if no axis is selected, both directions may be zoomed
+
210 
+
211  if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
212  customPlot->axisRect()->setRangeZoom(customPlot->xAxis->orientation());
+
213  else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis))
+
214  customPlot->axisRect()->setRangeZoom(customPlot->yAxis->orientation());
+
215  else
+
216  customPlot->axisRect()->setRangeZoom(Qt::Horizontal|Qt::Vertical);
+
217 }
+
218 
+ +
220  customPlot->addGraph();
+
221  customPlot->graph()->setName(QString("Realtime"));
+
222  animdata.reset(new QCPDataContainer<QCPGraphData>);
+
223  for(int i=0;i<nRealtimePoints;i++) {
+
224  QCPGraphData data(i*dt,0);
+
225  animdata->add(data);
+
226  }
+
227  customPlot->graph()->setData(animdata);
+
228  QPen graphPen;
+
229  graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10));
+
230  graphPen.setWidthF(2);
+
231  customPlot->graph()->setPen(graphPen);
+
232  customPlot->replot();
+
233  startTimer(40);
+
234 }
+
235 
+ +
237  // shift the values
+
238  for (auto i = animdata->end(); i != (animdata->begin()); --i) {
+
239  i->value = (i-1)->value;
+
240  }
+
241  // add a new datapoint at the start
+
242  animdata->begin()->value = v;
+
243 }
+
244 
+
245 void MainWindow::timerEvent( QTimerEvent * ) {
+
246  // demonstrates that adding a few samples before plotting speeds things up
+
247  for(int i = 0; i < 5; i++) {
+
248  addRealtimeSample(sin(t*5));
+
249  t = t + dt;
+
250  }
+
251  customPlot->replot();
+
252 }
+
253 
+ +
255  int n = 2000; // number of points in graph
+
256  double xScale = (rand()/(double)RAND_MAX + 0.5)*2;
+
257  double yScale = (rand()/(double)RAND_MAX + 0.5)*2;
+
258  double xOffset = (rand()/(double)RAND_MAX - 0.5)*4;
+
259  double yOffset = (rand()/(double)RAND_MAX - 0.5)*10;
+
260  double r1 = (rand()/(double)RAND_MAX - 0.5)*2;
+
261  double r2 = (rand()/(double)RAND_MAX - 0.5)*2;
+
262  double r3 = (rand()/(double)RAND_MAX - 0.5)*2;
+
263  double r4 = (rand()/(double)RAND_MAX - 0.5)*2;
+
264  QVector<double> x(n), y(n);
+
265  for (int i=0; i<n; i++)
+
266  {
+
267  x[i] = (i/(double)n-0.5)*10.0*xScale + xOffset;
+
268  y[i] = (qSin(x[i]*r1*5)*qSin(qCos(x[i]*r2)*r4*3)+r3*qCos(qSin(x[i])*r4*2))*yScale + yOffset;
+
269  }
+
270 
+
271  customPlot->addGraph();
+
272  customPlot->graph()->setName(QString("New graph %1").arg(customPlot->graphCount()-1));
+
273  customPlot->graph()->setData(x, y);
+
274  QPen graphPen;
+
275  graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10));
+
276  graphPen.setWidthF(2);
+
277  customPlot->graph()->setPen(graphPen);
+
278  customPlot->replot();
+
279 }
+
280 
+ +
282  if (customPlot->selectedGraphs().size() > 0)
+
283  {
+
284  customPlot->removeGraph(customPlot->selectedGraphs().first());
+
285  customPlot->replot();
+
286  }
+
287 }
+
288 
+ +
290  customPlot->clearGraphs();
+
291  customPlot->replot();
+
292 }
+
293 
+ +
295  QMenu *menu = new QMenu(this);
+
296  menu->setAttribute(Qt::WA_DeleteOnClose);
+
297 
+
298  if (customPlot->legend->selectTest(pos, false) >= 0) // context menu on legend requested
+
299  {
+
300  menu->addAction("Move to top left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignLeft));
+
301  menu->addAction("Move to top center", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignHCenter));
+
302  menu->addAction("Move to top right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignRight));
+
303  menu->addAction("Move to bottom right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignRight));
+
304  menu->addAction("Move to bottom left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignLeft));
+
305  } else // general context menu on graphs requested
+
306  {
+
307  menu->addAction("Add random graph", this, SLOT(addRandomGraph()));
+
308  if (customPlot->selectedGraphs().size() > 0)
+
309  menu->addAction("Remove selected graph", this, SLOT(removeSelectedGraph()));
+
310  if (customPlot->graphCount() > 0)
+
311  menu->addAction("Remove all graphs", this, SLOT(removeAllGraphs()));
+
312  }
+
313 
+
314  menu->popup(customPlot->mapToGlobal(pos));
+
315 }
+
316 
+ +
318  if (QAction* contextAction = qobject_cast<QAction*>(sender())) // make sure this slot is really called by a context menu action, so it carries the data we need
+
319  {
+
320  bool ok;
+
321  int dataInt = contextAction->data().toInt(&ok);
+
322  if (ok)
+
323  {
+
324  customPlot->axisRect()->insetLayout()->setInsetAlignment(0, (Qt::Alignment)dataInt);
+
325  customPlot->replot();
+
326  }
+
327  }
+
328 }
+
329 
+
330 void MainWindow::graphClicked(QCPAbstractPlottable *plottable, int dataIndex) {
+
331  // since we know we only have QCPGraphs in the plot, we can immediately access interface1D()
+
332  // usually it's better to first check whether interface1D() returns non-zero, and only then use it.
+
333  double dataValue = plottable->interface1D()->dataMainValue(dataIndex);
+
334  QString message = QString("Clicked on graph '%1' at data point #%2 with value %3.").arg(plottable->name()).arg(dataIndex).arg(dataValue);
+
335  statusBar->showMessage(message, 2500);
+
336 }
+
337 
+
338 
+
339 
+
340 
+
QFrame * frame
Definition: mainwindow.h:51
+
void timerEvent(QTimerEvent *)
Definition: mainwindow.cpp:245
+
void addRealtimeSample(double v)
Definition: mainwindow.cpp:236
+
QVBoxLayout * verticalLayout
Definition: mainwindow.h:47
+
QFrame * frame_2
Definition: mainwindow.h:48
+
void callPlot()
Definition: mainwindow.cpp:119
+
QStatusBar * statusBar
Definition: mainwindow.h:55
+
double t
Definition: mainwindow.h:59
+
QVBoxLayout * verticalLayout_3
Definition: mainwindow.h:49
+
void addRealtimeGraph()
Definition: mainwindow.cpp:219
+
void mousePress()
Definition: mainwindow.cpp:195
+
void moveLegend()
Definition: mainwindow.cpp:317
+
void titleDoubleClick(QMouseEvent *event)
Definition: mainwindow.cpp:105
+
void removeAllGraphs()
Definition: mainwindow.cpp:289
+
void graphClicked(QCPAbstractPlottable *plottable, int dataIndex)
Definition: mainwindow.cpp:330
+
QLabel * label
Definition: mainwindow.h:53
+
QSharedPointer< QCPDataContainer< QCPGraphData > > animdata
Definition: mainwindow.h:56
+
MainWindow(QWidget *parent=0)
Definition: mainwindow.cpp:16
+
void selectionChanged()
Definition: mainwindow.cpp:153
+
const double dt
Definition: mainwindow.h:58
+
void contextMenuRequest(QPoint pos)
Definition: mainwindow.cpp:294
+
QVBoxLayout * verticalLayout_2
Definition: mainwindow.h:52
+
void mouseWheel()
Definition: mainwindow.cpp:207
+
const int nRealtimePoints
Definition: mainwindow.h:57
+
QWidget * centralWidget
Definition: mainwindow.h:46
+
void removeSelectedGraph()
Definition: mainwindow.cpp:281
+
QCustomPlot * customPlot
Definition: mainwindow.h:50
+
void addRandomGraph()
Definition: mainwindow.cpp:254
+
void axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part)
Definition: mainwindow.cpp:123
+
void legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
Definition: mainwindow.cpp:137
+ +
const char titleTxt[]
Definition: mainwindow.cpp:14
+
const char instructionsTxt[]
Definition: mainwindow.cpp:3
+
+
+ + + + diff --git a/docs/mainwindow_8h.html b/docs/mainwindow_8h.html new file mode 100644 index 0000000..3fa44cd --- /dev/null +++ b/docs/mainwindow_8h.html @@ -0,0 +1,151 @@ + + + + + + + +DreamHacker: include/mainwindow.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mainwindow.h File Reference
+
+
+
#include <QMainWindow>
+#include <QInputDialog>
+#include <qcustomplot.h>
+#include <QtCore/QVariant>
+#include <QApplication>
+#include <QFrame>
+#include <QLabel>
+#include <QMenuBar>
+#include <QStatusBar>
+#include <QVBoxLayout>
+#include <QWidget>
+
+Include dependency graph for mainwindow.h:
+
+
+ + + + + + + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Data Structures

class  MainWindow
 
+
+
+ + + + diff --git a/docs/mainwindow_8h__dep__incl.map b/docs/mainwindow_8h__dep__incl.map new file mode 100644 index 0000000..159bd06 --- /dev/null +++ b/docs/mainwindow_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/mainwindow_8h__dep__incl.md5 b/docs/mainwindow_8h__dep__incl.md5 new file mode 100644 index 0000000..b3bb521 --- /dev/null +++ b/docs/mainwindow_8h__dep__incl.md5 @@ -0,0 +1 @@ +5572d0f2250cc53bb6a0b3b73e367d07 \ No newline at end of file diff --git a/docs/mainwindow_8h__dep__incl.png b/docs/mainwindow_8h__dep__incl.png new file mode 100644 index 0000000..dd1b690 Binary files /dev/null and b/docs/mainwindow_8h__dep__incl.png differ diff --git a/docs/mainwindow_8h__incl.map b/docs/mainwindow_8h__incl.map new file mode 100644 index 0000000..79469a7 --- /dev/null +++ b/docs/mainwindow_8h__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/mainwindow_8h__incl.md5 b/docs/mainwindow_8h__incl.md5 new file mode 100644 index 0000000..fe2138a --- /dev/null +++ b/docs/mainwindow_8h__incl.md5 @@ -0,0 +1 @@ +0eba4f59dcb1045b279656fe5b756754 \ No newline at end of file diff --git a/docs/mainwindow_8h__incl.png b/docs/mainwindow_8h__incl.png new file mode 100644 index 0000000..57547de Binary files /dev/null and b/docs/mainwindow_8h__incl.png differ diff --git a/docs/mainwindow_8h_source.html b/docs/mainwindow_8h_source.html new file mode 100644 index 0000000..7665789 --- /dev/null +++ b/docs/mainwindow_8h_source.html @@ -0,0 +1,193 @@ + + + + + + + +DreamHacker: include/mainwindow.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mainwindow.h
+
+
+Go to the documentation of this file.
1 #ifndef MAINWINDOW_H
+
2 #define MAINWINDOW_H
+
3 
+
4 #include <QMainWindow>
+
5 #include <QInputDialog>
+
6 #include <qcustomplot.h>
+
7 #include <QtCore/QVariant>
+
8 #include <QApplication>
+
9 #include <QFrame>
+
10 #include <QLabel>
+
11 #include <QMainWindow>
+
12 #include <QMenuBar>
+
13 #include <QStatusBar>
+
14 #include <QVBoxLayout>
+
15 #include <QWidget>
+
16 
+
17 
+
18 
+
19 class MainWindow : public QMainWindow
+
20 {
+
21  Q_OBJECT
+
22 
+
23 public:
+
24  explicit MainWindow(QWidget *parent = 0);
+
25 
+
26  void timerEvent( QTimerEvent * );
+
27  void addRealtimeSample(double v);
+
28  void callPlot();
+
29 
+
30 private slots:
+
31  void titleDoubleClick(QMouseEvent *event);
+
32  void axisLabelDoubleClick(QCPAxis* axis, QCPAxis::SelectablePart part);
+
33  void legendDoubleClick(QCPLegend* legend, QCPAbstractLegendItem* item);
+
34  void selectionChanged();
+
35  void mousePress();
+
36  void mouseWheel();
+
37  void addRandomGraph();
+
38  void addRealtimeGraph();
+
39  void removeSelectedGraph();
+
40  void removeAllGraphs();
+
41  void contextMenuRequest(QPoint pos);
+
42  void moveLegend();
+
43  void graphClicked(QCPAbstractPlottable *plottable, int dataIndex);
+
44 
+
45 private:
+
46  QWidget *centralWidget;
+
47  QVBoxLayout *verticalLayout;
+
48  QFrame *frame_2;
+
49  QVBoxLayout *verticalLayout_3;
+
50  QCustomPlot *customPlot;
+
51  QFrame *frame;
+
52  QVBoxLayout *verticalLayout_2;
+
53  QLabel *label;
+
54  QMenuBar *menuBar;
+
55  QStatusBar *statusBar;
+
56  QSharedPointer<QCPDataContainer<QCPGraphData> > animdata;
+
57  const int nRealtimePoints = 500;
+
58  const double dt = 0.02;
+
59  double t = 0;
+
60 };
+
61 
+
62 #endif // MAINWINDOW_H
+ +
QFrame * frame
Definition: mainwindow.h:51
+
void timerEvent(QTimerEvent *)
Definition: mainwindow.cpp:245
+
void addRealtimeSample(double v)
Definition: mainwindow.cpp:236
+
QVBoxLayout * verticalLayout
Definition: mainwindow.h:47
+
QMenuBar * menuBar
Definition: mainwindow.h:54
+
QFrame * frame_2
Definition: mainwindow.h:48
+
void callPlot()
Definition: mainwindow.cpp:119
+
QStatusBar * statusBar
Definition: mainwindow.h:55
+
double t
Definition: mainwindow.h:59
+
QVBoxLayout * verticalLayout_3
Definition: mainwindow.h:49
+
void addRealtimeGraph()
Definition: mainwindow.cpp:219
+
void mousePress()
Definition: mainwindow.cpp:195
+
void moveLegend()
Definition: mainwindow.cpp:317
+
void titleDoubleClick(QMouseEvent *event)
Definition: mainwindow.cpp:105
+
void removeAllGraphs()
Definition: mainwindow.cpp:289
+
void graphClicked(QCPAbstractPlottable *plottable, int dataIndex)
Definition: mainwindow.cpp:330
+
QLabel * label
Definition: mainwindow.h:53
+
QSharedPointer< QCPDataContainer< QCPGraphData > > animdata
Definition: mainwindow.h:56
+
MainWindow(QWidget *parent=0)
Definition: mainwindow.cpp:16
+
void selectionChanged()
Definition: mainwindow.cpp:153
+
const double dt
Definition: mainwindow.h:58
+
void contextMenuRequest(QPoint pos)
Definition: mainwindow.cpp:294
+
QVBoxLayout * verticalLayout_2
Definition: mainwindow.h:52
+
void mouseWheel()
Definition: mainwindow.cpp:207
+
const int nRealtimePoints
Definition: mainwindow.h:57
+
QWidget * centralWidget
Definition: mainwindow.h:46
+
void removeSelectedGraph()
Definition: mainwindow.cpp:281
+
QCustomPlot * customPlot
Definition: mainwindow.h:50
+
void addRandomGraph()
Definition: mainwindow.cpp:254
+
void axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part)
Definition: mainwindow.cpp:123
+
void legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
Definition: mainwindow.cpp:137
+ +
+
+ + + + diff --git a/docs/mainwindowdemo_8cpp.html b/docs/mainwindowdemo_8cpp.html new file mode 100644 index 0000000..1703ace --- /dev/null +++ b/docs/mainwindowdemo_8cpp.html @@ -0,0 +1,169 @@ + + + + + + + +DreamHacker: src/mainwindowdemo.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
mainwindowdemo.cpp File Reference
+
+
+
#include <QApplication>
+#include "../include/mainwindow.h"
+
+Include dependency graph for mainwindowdemo.cpp:
+
+
+ + + + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Functions

int main (int argc, char *argv[])
 
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char * argv[] 
)
+
+ +

Definition at line 4 of file mainwindowdemo.cpp.

+
5 {
+
6  QApplication a(argc, argv);
+
7  MainWindow w;
+
8  w.showMaximized();
+
9 
+
10  return a.exec();
+
11 }
+ +
+
+
+
+
+ + + + diff --git a/docs/mainwindowdemo_8cpp.js b/docs/mainwindowdemo_8cpp.js new file mode 100644 index 0000000..a24c668 --- /dev/null +++ b/docs/mainwindowdemo_8cpp.js @@ -0,0 +1,4 @@ +var mainwindowdemo_8cpp = +[ + [ "main", "mainwindowdemo_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/docs/mainwindowdemo_8cpp__incl.map b/docs/mainwindowdemo_8cpp__incl.map new file mode 100644 index 0000000..97a6f08 --- /dev/null +++ b/docs/mainwindowdemo_8cpp__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/docs/mainwindowdemo_8cpp__incl.md5 b/docs/mainwindowdemo_8cpp__incl.md5 new file mode 100644 index 0000000..463a144 --- /dev/null +++ b/docs/mainwindowdemo_8cpp__incl.md5 @@ -0,0 +1 @@ +eb91c5893a47a2fceb8f36f3e625f02b \ No newline at end of file diff --git a/docs/mainwindowdemo_8cpp__incl.png b/docs/mainwindowdemo_8cpp__incl.png new file mode 100644 index 0000000..6a03696 Binary files /dev/null and b/docs/mainwindowdemo_8cpp__incl.png differ diff --git a/docs/mainwindowdemo_8cpp_source.html b/docs/mainwindowdemo_8cpp_source.html new file mode 100644 index 0000000..d726534 --- /dev/null +++ b/docs/mainwindowdemo_8cpp_source.html @@ -0,0 +1,111 @@ + + + + + + + +DreamHacker: src/mainwindowdemo.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
mainwindowdemo.cpp
+
+
+Go to the documentation of this file.
1 #include <QApplication>
+
2 #include "../include/mainwindow.h"
+
3 
+
4 int main(int argc, char *argv[])
+
5 {
+
6  QApplication a(argc, argv);
+
7  MainWindow w;
+
8  w.showMaximized();
+
9 
+
10  return a.exec();
+
11 }
+ +
int main(int argc, char *argv[])
+
+
+ + + + diff --git a/docs/md__s_t_r_u_c_t_u_r_e.html b/docs/md__s_t_r_u_c_t_u_r_e.html new file mode 100644 index 0000000..6ecbe5d --- /dev/null +++ b/docs/md__s_t_r_u_c_t_u_r_e.html @@ -0,0 +1,131 @@ + + + + + + + +DreamHacker: Structure + + + + + + + + + + + + + +
+
+ + + + + + +
+
DreamHacker +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Structure
+
+
+

This document describes the high-level folder structure of DreamHacker project. If you want to familiarize yourself with the code base, you are just in the right place!

+

+Overview

+

On the highest level, DreamHacker/drmhk_autogen is a thing which runs in the background and gathers data and handles communication with the webserver.

+

It was created with the concept of event-driven logic in mind. Therefore these use events and callbacks as much as possible.

+

+In-detail

+

In this section, all paths are relative to DreamHacker.

+

+<tt>./drmhk_autogen</tt>

+

This houses the front-facing logic for DreamHacker. Handles CLI flags via getopts and sets global variables as defined. Also allows running of a test function tests which isn't really tests.

+

+<tt>./frontend</tt>

+

All the files related to developing webserver to view graphs are present in this folder.

+

+<tt>./include</tt>

+

All header files for the project are to be declared here and added to CMakeLists.txt. This allows an easy overview of what is happening within the system.

+
    +
  • CppTimer.h – Wrapper around C++ timer
  • +
  • CppTimerCallback.h – This class when implemented calls a function repeatedly after a several nanoseconds.
  • +
  • json_fastcgi_web_api.h helps in creating communicating fastcgi socket and provides a mechanism to transfer json data to and from C++.
  • +
  • mainwindow.h – QT Graph plotting.
  • +
  • PulseSensor.h – Records the Signal from the ADC, calculates beats per minute(bpm) detects sleep and plays audio.
  • +
+

+<tt>./main</tt>

+

Contains main.cpp file. This is the main program.

+

+<tt>./src</tt>

+

Contains the *.cpp implementation files for *.h files present in the ./include directory

+

+<tt>./test</tt>

+

The test folder contains the test scenarios

+
+
+
+ + + + diff --git a/docs/menu.js b/docs/menu.js new file mode 100644 index 0000000..2fe2214 --- /dev/null +++ b/docs/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/docs/menudata.js b/docs/menudata.js new file mode 100644 index 0000000..bafdb3d --- /dev/null +++ b/docs/menudata.js @@ -0,0 +1,125 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"inherits.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions.html#index_b"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"j",url:"functions.html#index_j"}, +{text:"k",url:"functions.html#index_k"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"n",url:"functions.html#index_n"}, +{text:"p",url:"functions.html#index_p"}, +{text:"q",url:"functions.html#index_q"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"u",url:"functions.html#index_u"}, +{text:"v",url:"functions.html#index_v"}, +{text:"w",url:"functions.html#index_w"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func.html#index_b"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"j",url:"functions_func.html#index_j"}, +{text:"k",url:"functions_func.html#index_k"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"t",url:"functions_func.html#index_t"}, +{text:"u",url:"functions_func.html#index_u"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"j",url:"functions_vars.html#index_j"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"q",url:"functions_vars.html#index_q"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"v",url:"functions_vars.html#index_v"}, +{text:"w",url:"functions_vars.html#index_w"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"_",url:"globals.html#index__5F"}, +{text:"a",url:"globals_a.html#index_a"}, +{text:"b",url:"globals_b.html#index_b"}, +{text:"c",url:"globals_c.html#index_c"}, +{text:"g",url:"globals_g.html#index_g"}, +{text:"i",url:"globals_i.html#index_i"}, +{text:"l",url:"globals_l.html#index_l"}, +{text:"m",url:"globals_m.html#index_m"}, +{text:"o",url:"globals_o.html#index_o"}, +{text:"p",url:"globals_p.html#index_p"}, +{text:"q",url:"globals_q.html#index_q"}, +{text:"s",url:"globals_s.html#index_s"}, +{text:"t",url:"globals_t.html#index_t"}, +{text:"u",url:"globals_u.html#index_u"}]}, +{text:"Functions",url:"globals_func.html"}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html",children:[ +{text:"_",url:"globals_defs.html#index__5F"}, +{text:"a",url:"globals_defs_a.html#index_a"}, +{text:"b",url:"globals_defs_b.html#index_b"}, +{text:"c",url:"globals_defs_c.html#index_c"}, +{text:"l",url:"globals_defs_l.html#index_l"}, +{text:"q",url:"globals_defs_q.html#index_q"}, +{text:"s",url:"globals_defs_s.html#index_s"}, +{text:"u",url:"globals_defs_u.html#index_u"}]}]}]}]} diff --git a/docs/moc__mainwindow_8cpp.html b/docs/moc__mainwindow_8cpp.html new file mode 100644 index 0000000..faff01c --- /dev/null +++ b/docs/moc__mainwindow_8cpp.html @@ -0,0 +1,190 @@ + + + + + + + +DreamHacker: drmhk_autogen/6YEA5652QU/moc_mainwindow.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    moc_mainwindow.cpp File Reference
    +
    +
    +
    #include "../../include/mainwindow.h"
    +#include <QtCore/qbytearray.h>
    +#include <QtCore/qmetatype.h>
    +
    +Include dependency graph for moc_mainwindow.cpp:
    +
    +
    + + + + + + + + + + + + + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Data Structures

    struct  qt_meta_stringdata_MainWindow_t
     
    + + + +

    +Macros

    #define QT_MOC_LITERAL(idx, ofs, len)
     
    +

    Macro Definition Documentation

    + +

    ◆ QT_MOC_LITERAL

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    #define QT_MOC_LITERAL( idx,
     ofs,
     len 
    )
    +
    +Value:
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    +
    qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
    +
    - idx * sizeof(QByteArrayData)) \
    +
    )
    + +
    +

    Definition at line 27 of file moc_mainwindow.cpp.

    + +
    +
    +
    +
    + + + + diff --git a/docs/moc__mainwindow_8cpp.js b/docs/moc__mainwindow_8cpp.js new file mode 100644 index 0000000..e24d8b3 --- /dev/null +++ b/docs/moc__mainwindow_8cpp.js @@ -0,0 +1,5 @@ +var moc__mainwindow_8cpp = +[ + [ "qt_meta_stringdata_MainWindow_t", "structqt__meta__stringdata___main_window__t.html", "structqt__meta__stringdata___main_window__t" ], + [ "QT_MOC_LITERAL", "moc__mainwindow_8cpp.html#a75bb9482d242cde0a06c9dbdc6b83abe", null ] +]; \ No newline at end of file diff --git a/docs/moc__mainwindow_8cpp__dep__incl.map b/docs/moc__mainwindow_8cpp__dep__incl.map new file mode 100644 index 0000000..ff84d00 --- /dev/null +++ b/docs/moc__mainwindow_8cpp__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/docs/moc__mainwindow_8cpp__dep__incl.md5 b/docs/moc__mainwindow_8cpp__dep__incl.md5 new file mode 100644 index 0000000..09c67b2 --- /dev/null +++ b/docs/moc__mainwindow_8cpp__dep__incl.md5 @@ -0,0 +1 @@ +7a850f2c81bfb57e5f6342a6e3d00fe7 \ No newline at end of file diff --git a/docs/moc__mainwindow_8cpp__dep__incl.png b/docs/moc__mainwindow_8cpp__dep__incl.png new file mode 100644 index 0000000..9eecfb8 Binary files /dev/null and b/docs/moc__mainwindow_8cpp__dep__incl.png differ diff --git a/docs/moc__mainwindow_8cpp__incl.map b/docs/moc__mainwindow_8cpp__incl.map new file mode 100644 index 0000000..3a37fed --- /dev/null +++ b/docs/moc__mainwindow_8cpp__incl.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/moc__mainwindow_8cpp__incl.md5 b/docs/moc__mainwindow_8cpp__incl.md5 new file mode 100644 index 0000000..e6439fc --- /dev/null +++ b/docs/moc__mainwindow_8cpp__incl.md5 @@ -0,0 +1 @@ +cf78309d8e65b4dad94071ac01054d48 \ No newline at end of file diff --git a/docs/moc__mainwindow_8cpp__incl.png b/docs/moc__mainwindow_8cpp__incl.png new file mode 100644 index 0000000..58bb077 Binary files /dev/null and b/docs/moc__mainwindow_8cpp__incl.png differ diff --git a/docs/moc__mainwindow_8cpp_source.html b/docs/moc__mainwindow_8cpp_source.html new file mode 100644 index 0000000..77645f9 --- /dev/null +++ b/docs/moc__mainwindow_8cpp_source.html @@ -0,0 +1,330 @@ + + + + + + + +DreamHacker: drmhk_autogen/6YEA5652QU/moc_mainwindow.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    moc_mainwindow.cpp
    +
    +
    +Go to the documentation of this file.
    1 /****************************************************************************
    +
    2 ** Meta object code from reading C++ file 'mainwindow.h'
    +
    3 **
    +
    4 ** Created by: The Qt Meta Object Compiler version 67 (Qt 5.11.3)
    +
    5 **
    +
    6 ** WARNING! All changes made in this file will be lost!
    +
    7 *****************************************************************************/
    +
    8 
    +
    9 #include "../../include/mainwindow.h"
    +
    10 #include <QtCore/qbytearray.h>
    +
    11 #include <QtCore/qmetatype.h>
    +
    12 #if !defined(Q_MOC_OUTPUT_REVISION)
    +
    13 #error "The header file 'mainwindow.h' doesn't include <QObject>."
    +
    14 #elif Q_MOC_OUTPUT_REVISION != 67
    +
    15 #error "This file was generated using the moc from 5.11.3. It"
    +
    16 #error "cannot be used with the include files from this version of Qt."
    +
    17 #error "(The moc has changed too much.)"
    +
    18 #endif
    +
    19 
    +
    20 QT_BEGIN_MOC_NAMESPACE
    +
    21 QT_WARNING_PUSH
    +
    22 QT_WARNING_DISABLE_DEPRECATED
    + +
    24  QByteArrayData data[29];
    +
    25  char stringdata0[372];
    +
    26 };
    +
    27 #define QT_MOC_LITERAL(idx, ofs, len) \
    +
    28  Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    +
    29  qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
    +
    30  - idx * sizeof(QByteArrayData)) \
    +
    31  )
    +
    32 static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
    +
    33  {
    +
    34 QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
    +
    35 QT_MOC_LITERAL(1, 11, 16), // "titleDoubleClick"
    +
    36 QT_MOC_LITERAL(2, 28, 0), // ""
    +
    37 QT_MOC_LITERAL(3, 29, 12), // "QMouseEvent*"
    +
    38 QT_MOC_LITERAL(4, 42, 5), // "event"
    +
    39 QT_MOC_LITERAL(5, 48, 20), // "axisLabelDoubleClick"
    +
    40 QT_MOC_LITERAL(6, 69, 8), // "QCPAxis*"
    +
    41 QT_MOC_LITERAL(7, 78, 4), // "axis"
    +
    42 QT_MOC_LITERAL(8, 83, 23), // "QCPAxis::SelectablePart"
    +
    43 QT_MOC_LITERAL(9, 107, 4), // "part"
    +
    44 QT_MOC_LITERAL(10, 112, 17), // "legendDoubleClick"
    +
    45 QT_MOC_LITERAL(11, 130, 10), // "QCPLegend*"
    +
    46 QT_MOC_LITERAL(12, 141, 6), // "legend"
    +
    47 QT_MOC_LITERAL(13, 148, 22), // "QCPAbstractLegendItem*"
    +
    48 QT_MOC_LITERAL(14, 171, 4), // "item"
    +
    49 QT_MOC_LITERAL(15, 176, 16), // "selectionChanged"
    +
    50 QT_MOC_LITERAL(16, 193, 10), // "mousePress"
    +
    51 QT_MOC_LITERAL(17, 204, 10), // "mouseWheel"
    +
    52 QT_MOC_LITERAL(18, 215, 14), // "addRandomGraph"
    +
    53 QT_MOC_LITERAL(19, 230, 16), // "addRealtimeGraph"
    +
    54 QT_MOC_LITERAL(20, 247, 19), // "removeSelectedGraph"
    +
    55 QT_MOC_LITERAL(21, 267, 15), // "removeAllGraphs"
    +
    56 QT_MOC_LITERAL(22, 283, 18), // "contextMenuRequest"
    +
    57 QT_MOC_LITERAL(23, 302, 3), // "pos"
    +
    58 QT_MOC_LITERAL(24, 306, 10), // "moveLegend"
    +
    59 QT_MOC_LITERAL(25, 317, 12), // "graphClicked"
    +
    60 QT_MOC_LITERAL(26, 330, 21), // "QCPAbstractPlottable*"
    +
    61 QT_MOC_LITERAL(27, 352, 9), // "plottable"
    +
    62 QT_MOC_LITERAL(28, 362, 9) // "dataIndex"
    +
    63 
    +
    64  },
    +
    65  "MainWindow\0titleDoubleClick\0\0QMouseEvent*\0"
    +
    66  "event\0axisLabelDoubleClick\0QCPAxis*\0"
    +
    67  "axis\0QCPAxis::SelectablePart\0part\0"
    +
    68  "legendDoubleClick\0QCPLegend*\0legend\0"
    +
    69  "QCPAbstractLegendItem*\0item\0"
    +
    70  "selectionChanged\0mousePress\0mouseWheel\0"
    +
    71  "addRandomGraph\0addRealtimeGraph\0"
    +
    72  "removeSelectedGraph\0removeAllGraphs\0"
    +
    73  "contextMenuRequest\0pos\0moveLegend\0"
    +
    74  "graphClicked\0QCPAbstractPlottable*\0"
    +
    75  "plottable\0dataIndex"
    +
    76 };
    +
    77 #undef QT_MOC_LITERAL
    +
    78 
    +
    79 static const uint qt_meta_data_MainWindow[] = {
    +
    80 
    +
    81  // content:
    +
    82  7, // revision
    +
    83  0, // classname
    +
    84  0, 0, // classinfo
    +
    85  13, 14, // methods
    +
    86  0, 0, // properties
    +
    87  0, 0, // enums/sets
    +
    88  0, 0, // constructors
    +
    89  0, // flags
    +
    90  0, // signalCount
    +
    91 
    +
    92  // slots: name, argc, parameters, tag, flags
    +
    93  1, 1, 79, 2, 0x08 /* Private */,
    +
    94  5, 2, 82, 2, 0x08 /* Private */,
    +
    95  10, 2, 87, 2, 0x08 /* Private */,
    +
    96  15, 0, 92, 2, 0x08 /* Private */,
    +
    97  16, 0, 93, 2, 0x08 /* Private */,
    +
    98  17, 0, 94, 2, 0x08 /* Private */,
    +
    99  18, 0, 95, 2, 0x08 /* Private */,
    +
    100  19, 0, 96, 2, 0x08 /* Private */,
    +
    101  20, 0, 97, 2, 0x08 /* Private */,
    +
    102  21, 0, 98, 2, 0x08 /* Private */,
    +
    103  22, 1, 99, 2, 0x08 /* Private */,
    +
    104  24, 0, 102, 2, 0x08 /* Private */,
    +
    105  25, 2, 103, 2, 0x08 /* Private */,
    +
    106 
    +
    107  // slots: parameters
    +
    108  QMetaType::Void, 0x80000000 | 3, 4,
    +
    109  QMetaType::Void, 0x80000000 | 6, 0x80000000 | 8, 7, 9,
    +
    110  QMetaType::Void, 0x80000000 | 11, 0x80000000 | 13, 12, 14,
    +
    111  QMetaType::Void,
    +
    112  QMetaType::Void,
    +
    113  QMetaType::Void,
    +
    114  QMetaType::Void,
    +
    115  QMetaType::Void,
    +
    116  QMetaType::Void,
    +
    117  QMetaType::Void,
    +
    118  QMetaType::Void, QMetaType::QPoint, 23,
    +
    119  QMetaType::Void,
    +
    120  QMetaType::Void, 0x80000000 | 26, QMetaType::Int, 27, 28,
    +
    121 
    +
    122  0 // eod
    +
    123 };
    +
    124 
    +
    125 void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
    +
    126 {
    +
    127  if (_c == QMetaObject::InvokeMetaMethod) {
    +
    128  MainWindow *_t = static_cast<MainWindow *>(_o);
    +
    129  Q_UNUSED(_t)
    +
    130  switch (_id) {
    +
    131  case 0: _t->titleDoubleClick((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break;
    +
    132  case 1: _t->axisLabelDoubleClick((*reinterpret_cast< QCPAxis*(*)>(_a[1])),(*reinterpret_cast< QCPAxis::SelectablePart(*)>(_a[2]))); break;
    +
    133  case 2: _t->legendDoubleClick((*reinterpret_cast< QCPLegend*(*)>(_a[1])),(*reinterpret_cast< QCPAbstractLegendItem*(*)>(_a[2]))); break;
    +
    134  case 3: _t->selectionChanged(); break;
    +
    135  case 4: _t->mousePress(); break;
    +
    136  case 5: _t->mouseWheel(); break;
    +
    137  case 6: _t->addRandomGraph(); break;
    +
    138  case 7: _t->addRealtimeGraph(); break;
    +
    139  case 8: _t->removeSelectedGraph(); break;
    +
    140  case 9: _t->removeAllGraphs(); break;
    +
    141  case 10: _t->contextMenuRequest((*reinterpret_cast< QPoint(*)>(_a[1]))); break;
    +
    142  case 11: _t->moveLegend(); break;
    +
    143  case 12: _t->graphClicked((*reinterpret_cast< QCPAbstractPlottable*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
    +
    144  default: ;
    +
    145  }
    +
    146  } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
    +
    147  switch (_id) {
    +
    148  default: *reinterpret_cast<int*>(_a[0]) = -1; break;
    +
    149  case 1:
    +
    150  switch (*reinterpret_cast<int*>(_a[1])) {
    +
    151  default: *reinterpret_cast<int*>(_a[0]) = -1; break;
    +
    152  case 0:
    +
    153  *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QCPAxis* >(); break;
    +
    154  case 1:
    +
    155  *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QCPAxis::SelectablePart >(); break;
    +
    156  }
    +
    157  break;
    +
    158  case 2:
    +
    159  switch (*reinterpret_cast<int*>(_a[1])) {
    +
    160  default: *reinterpret_cast<int*>(_a[0]) = -1; break;
    +
    161  case 1:
    +
    162  *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QCPAbstractLegendItem* >(); break;
    +
    163  case 0:
    +
    164  *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QCPLegend* >(); break;
    +
    165  }
    +
    166  break;
    +
    167  case 12:
    +
    168  switch (*reinterpret_cast<int*>(_a[1])) {
    +
    169  default: *reinterpret_cast<int*>(_a[0]) = -1; break;
    +
    170  case 0:
    +
    171  *reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< QCPAbstractPlottable* >(); break;
    +
    172  }
    +
    173  break;
    +
    174  }
    +
    175  }
    +
    176 }
    +
    177 
    +
    178 QT_INIT_METAOBJECT const QMetaObject MainWindow::staticMetaObject = {
    +
    179  { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
    +
    180  qt_meta_data_MainWindow, qt_static_metacall, nullptr, nullptr}
    +
    181 };
    +
    182 
    +
    183 
    +
    184 const QMetaObject *MainWindow::metaObject() const
    +
    185 {
    +
    186  return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
    +
    187 }
    +
    188 
    +
    189 void *MainWindow::qt_metacast(const char *_clname)
    +
    190 {
    +
    191  if (!_clname) return nullptr;
    +
    192  if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
    +
    193  return static_cast<void*>(this);
    +
    194  return QMainWindow::qt_metacast(_clname);
    +
    195 }
    +
    196 
    +
    197 int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
    +
    198 {
    +
    199  _id = QMainWindow::qt_metacall(_c, _id, _a);
    +
    200  if (_id < 0)
    +
    201  return _id;
    +
    202  if (_c == QMetaObject::InvokeMetaMethod) {
    +
    203  if (_id < 13)
    +
    204  qt_static_metacall(this, _c, _id, _a);
    +
    205  _id -= 13;
    +
    206  } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
    +
    207  if (_id < 13)
    +
    208  qt_static_metacall(this, _c, _id, _a);
    +
    209  _id -= 13;
    +
    210  }
    +
    211  return _id;
    +
    212 }
    +
    213 QT_WARNING_POP
    +
    214 QT_END_MOC_NAMESPACE
    + +
    void addRealtimeGraph()
    Definition: mainwindow.cpp:219
    +
    void mousePress()
    Definition: mainwindow.cpp:195
    +
    void moveLegend()
    Definition: mainwindow.cpp:317
    +
    void titleDoubleClick(QMouseEvent *event)
    Definition: mainwindow.cpp:105
    +
    void removeAllGraphs()
    Definition: mainwindow.cpp:289
    +
    void graphClicked(QCPAbstractPlottable *plottable, int dataIndex)
    Definition: mainwindow.cpp:330
    +
    void selectionChanged()
    Definition: mainwindow.cpp:153
    +
    void contextMenuRequest(QPoint pos)
    Definition: mainwindow.cpp:294
    +
    void mouseWheel()
    Definition: mainwindow.cpp:207
    +
    void removeSelectedGraph()
    Definition: mainwindow.cpp:281
    +
    void addRandomGraph()
    Definition: mainwindow.cpp:254
    +
    void axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part)
    Definition: mainwindow.cpp:123
    +
    void legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item)
    Definition: mainwindow.cpp:137
    +
    #define QT_MOC_LITERAL(idx, ofs, len)
    + + + +
    +
    + + + + diff --git a/docs/moc__predefs_8h.html b/docs/moc__predefs_8h.html new file mode 100644 index 0000000..f359a52 --- /dev/null +++ b/docs/moc__predefs_8h.html @@ -0,0 +1,8687 @@ + + + + + + + +DreamHacker: drmhk_autogen/moc_predefs.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    moc_predefs.h File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define __DBL_MIN_EXP__   (-1021)
     
    #define __HQ_FBIT__   15
     
    #define __FLT32X_MAX_EXP__   1024
     
    #define __cpp_attributes   200809
     
    #define __UINT_LEAST16_MAX__   0xffff
     
    #define __ARM_SIZEOF_WCHAR_T   4
     
    #define __ATOMIC_ACQUIRE   2
     
    #define __SFRACT_IBIT__   0
     
    #define __FLT_MIN__   1.1754943508222875e-38F
     
    #define __GCC_IEC_559_COMPLEX   2
     
    #define __cpp_aggregate_nsdmi   201304
     
    #define __UFRACT_MAX__   0XFFFFP-16UR
     
    #define __UINT_LEAST8_TYPE__   unsigned char
     
    #define __DQ_FBIT__   63
     
    #define __INTMAX_C(c)   c ## LL
     
    #define __ARM_FEATURE_SAT   1
     
    #define __ULFRACT_FBIT__   32
     
    #define __SACCUM_EPSILON__   0x1P-7HK
     
    #define __CHAR_BIT__   8
     
    #define __USQ_IBIT__   0
     
    #define __UINT8_MAX__   0xff
     
    #define __ACCUM_FBIT__   15
     
    #define __WINT_MAX__   0xffffffffU
     
    #define __FLT32_MIN_EXP__   (-125)
     
    #define __cpp_static_assert   200410
     
    #define __USFRACT_FBIT__   8
     
    #define QT_GUI_LIB   1
     
    #define __ORDER_LITTLE_ENDIAN__   1234
     
    #define __SIZE_MAX__   0xffffffffU
     
    #define __ARM_ARCH_ISA_ARM   1
     
    #define __WCHAR_MAX__   0xffffffffU
     
    #define __LACCUM_IBIT__   32
     
    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4   1
     
    #define __DBL_DENORM_MIN__   double(4.9406564584124654e-324L)
     
    #define __GCC_ATOMIC_CHAR_LOCK_FREE   1
     
    #define __GCC_IEC_559   2
     
    #define __FLT32X_DECIMAL_DIG__   17
     
    #define __FLT_EVAL_METHOD__   0
     
    #define __unix__   1
     
    #define __cpp_binary_literals   201304
     
    #define __LLACCUM_MAX__   0X7FFFFFFFFFFFFFFFP-31LLK
     
    #define __FLT64_DECIMAL_DIG__   17
     
    #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE   2
     
    #define __FRACT_FBIT__   15
     
    #define __cpp_variadic_templates   200704
     
    #define __UINT_FAST64_MAX__   0xffffffffffffffffULL
     
    #define __SIG_ATOMIC_TYPE__   int
     
    #define __UACCUM_FBIT__   16
     
    #define __DBL_MIN_10_EXP__   (-307)
     
    #define __FINITE_MATH_ONLY__   0
     
    #define __ARMEL__   1
     
    #define __cpp_variable_templates   201304
     
    #define __ARM_FEATURE_UNALIGNED   1
     
    #define __LFRACT_IBIT__   0
     
    #define SIZEOF_DPTR   (sizeof(void*))
     
    #define __GNUC_PATCHLEVEL__   0
     
    #define __FLT32_HAS_DENORM__   1
     
    #define __LFRACT_MAX__   0X7FFFFFFFP-31LR
     
    #define __UINT_FAST8_MAX__   0xff
     
    #define __has_include(STR)   __has_include__(STR)
     
    #define __DEC64_MAX_EXP__   385
     
    #define __INT8_C(c)   c
     
    #define __INT_LEAST8_WIDTH__   8
     
    #define __UINT_LEAST64_MAX__   0xffffffffffffffffULL
     
    #define __SA_FBIT__   15
     
    #define __SHRT_MAX__   0x7fff
     
    #define __LDBL_MAX__   1.7976931348623157e+308L
     
    #define __FRACT_MAX__   0X7FFFP-15R
     
    #define __UFRACT_FBIT__   16
     
    #define __ARM_FP   12
     
    #define QT_NO_DEBUG   1
     
    #define __UFRACT_MIN__   0.0UR
     
    #define __UINT_LEAST8_MAX__   0xff
     
    #define __GCC_ATOMIC_BOOL_LOCK_FREE   1
     
    #define __UINTMAX_TYPE__   long long unsigned int
     
    #define __LLFRACT_EPSILON__   0x1P-63LLR
     
    #define __linux   1
     
    #define __DEC32_EPSILON__   1E-6DF
     
    #define __FLT_EVAL_METHOD_TS_18661_3__   0
     
    #define __CHAR_UNSIGNED__   1
     
    #define __UINT32_MAX__   0xffffffffU
     
    #define __GXX_EXPERIMENTAL_CXX0X__   1
     
    #define __ULFRACT_MAX__   0XFFFFFFFFP-32ULR
     
    #define __TA_IBIT__   64
     
    #define __LDBL_MAX_EXP__   1024
     
    #define __WINT_MIN__   0U
     
    #define __linux__   1
     
    #define __INT_LEAST16_WIDTH__   16
     
    #define __ULLFRACT_MIN__   0.0ULLR
     
    #define __SCHAR_MAX__   0x7f
     
    #define __WCHAR_MIN__   0U
     
    #define __INT64_C(c)   c ## LL
     
    #define __DBL_DIG__   15
     
    #define __GCC_ATOMIC_POINTER_LOCK_FREE   2
     
    #define __LLACCUM_MIN__   (-0X1P31LLK-0X1P31LLK)
     
    #define __SIZEOF_INT__   4
     
    #define __SIZEOF_POINTER__   4
     
    #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE   1
     
    #define __USACCUM_IBIT__   8
     
    #define __USER_LABEL_PREFIX__
     
    #define __STDC_HOSTED__   1
     
    #define __LDBL_HAS_INFINITY__   1
     
    #define __LFRACT_MIN__   (-0.5LR-0.5LR)
     
    #define __HA_IBIT__   8
     
    #define __FLT32_DIG__   6
     
    #define __TQ_IBIT__   0
     
    #define __FLT_EPSILON__   1.1920928955078125e-7F
     
    #define __APCS_32__   1
     
    #define __GXX_WEAK__   1
     
    #define __SHRT_WIDTH__   16
     
    #define __USFRACT_IBIT__   0
     
    #define __LDBL_MIN__   2.2250738585072014e-308L
     
    #define __FRACT_MIN__   (-0.5R-0.5R)
     
    #define __DEC32_MAX__   9.999999E96DF
     
    #define __cpp_threadsafe_static_init   200806
     
    #define __DA_IBIT__   32
     
    #define __ARM_SIZEOF_MINIMAL_ENUM   4
     
    #define __FLT32X_HAS_INFINITY__   1
     
    #define __INT32_MAX__   0x7fffffff
     
    #define __UQQ_FBIT__   8
     
    #define __INT_WIDTH__   32
     
    #define __SIZEOF_LONG__   4
     
    #define __UACCUM_MAX__   0XFFFFFFFFP-16UK
     
    #define __STDC_IEC_559__   1
     
    #define __STDC_ISO_10646__   201706L
     
    #define __UINT16_C(c)   c
     
    #define __PTRDIFF_WIDTH__   32
     
    #define __DECIMAL_DIG__   17
     
    #define __LFRACT_EPSILON__   0x1P-31LR
     
    #define __FLT64_EPSILON__   2.2204460492503131e-16F64
     
    #define __ULFRACT_MIN__   0.0ULR
     
    #define __gnu_linux__   1
     
    #define __INTMAX_WIDTH__   64
     
    #define __FLT64_MIN_EXP__   (-1021)
     
    #define __has_include_next(STR)   __has_include_next__(STR)
     
    #define __ARM_PCS_VFP   1
     
    #define __LDBL_HAS_QUIET_NAN__   1
     
    #define __ULACCUM_IBIT__   32
     
    #define __FLT64_MANT_DIG__   53
     
    #define __UACCUM_EPSILON__   0x1P-16UK
     
    #define __GNUC__   8
     
    #define __ULLACCUM_MAX__   0XFFFFFFFFFFFFFFFFP-32ULLK
     
    #define __GXX_RTTI   1
     
    #define __cpp_delegating_constructors   200604
     
    #define __HQ_IBIT__   0
     
    #define __FLT_HAS_DENORM__   1
     
    #define __SIZEOF_LONG_DOUBLE__   8
     
    #define __BIGGEST_ALIGNMENT__   8
     
    #define __STDC_UTF_16__   1
     
    #define __FLT64_MAX_10_EXP__   308
     
    #define __GNUC_STDC_INLINE__   1
     
    #define __DQ_IBIT__   0
     
    #define __FLT32_HAS_INFINITY__   1
     
    #define __DBL_MAX__   double(1.7976931348623157e+308L)
     
    #define __ULFRACT_IBIT__   0
     
    #define __cpp_raw_strings   200710
     
    #define __INT_FAST32_MAX__   0x7fffffff
     
    #define __DBL_HAS_INFINITY__   1
     
    #define __ACCUM_IBIT__   16
     
    #define __DEC32_MIN_EXP__   (-94)
     
    #define __THUMB_INTERWORK__   1
     
    #define __INTPTR_WIDTH__   32
     
    #define __LACCUM_MAX__   0X7FFFFFFFFFFFFFFFP-31LK
     
    #define __FLT32X_HAS_DENORM__   1
     
    #define __INT_FAST16_TYPE__   int
     
    #define __LDBL_HAS_DENORM__   1
     
    #define QT_WIDGETS_LIB   1
     
    #define __ARM_FEATURE_LDREX   4
     
    #define __cplusplus   201402L
     
    #define __cpp_ref_qualifiers   200710
     
    #define __DEC128_MAX__   9.999999999999999999999999999999999E6144DL
     
    #define __INT_LEAST32_MAX__   0x7fffffff
     
    #define __DEC32_MIN__   1E-95DF
     
    #define __ACCUM_MAX__   0X7FFFFFFFP-15K
     
    #define __DEPRECATED   1
     
    #define __cpp_rvalue_references   200610
     
    #define __DBL_MAX_EXP__   1024
     
    #define __USACCUM_EPSILON__   0x1P-8UHK
     
    #define __WCHAR_WIDTH__   32
     
    #define __FLT32_MAX__   3.4028234663852886e+38F32
     
    #define __DEC128_EPSILON__   1E-33DL
     
    #define __SFRACT_MAX__   0X7FP-7HR
     
    #define __FRACT_IBIT__   0
     
    #define __PTRDIFF_MAX__   0x7fffffff
     
    #define __UACCUM_MIN__   0.0UK
     
    #define __UACCUM_IBIT__   16
     
    #define __FLT32_HAS_QUIET_NAN__   1
     
    #define __GNUG__   8
     
    #define __LONG_LONG_MAX__   0x7fffffffffffffffLL
     
    #define __SIZEOF_SIZE_T__   4
     
    #define __ULACCUM_MAX__   0XFFFFFFFFFFFFFFFFP-32ULK
     
    #define __cpp_rvalue_reference   200610
     
    #define __cpp_nsdmi   200809
     
    #define __SIZEOF_WINT_T__   4
     
    #define __LONG_LONG_WIDTH__   64
     
    #define __cpp_initializer_lists   200806
     
    #define __FLT32_MAX_EXP__   128
     
    #define ABI_ID   "ELF"
     
    #define __SA_IBIT__   16
     
    #define __ULLACCUM_MIN__   0.0ULLK
     
    #define __cpp_hex_float   201603
     
    #define __GXX_ABI_VERSION   1013
     
    #define __UTA_FBIT__   64
     
    #define __FLT_MIN_EXP__   (-125)
     
    #define __USFRACT_MAX__   0XFFP-8UHR
     
    #define __UFRACT_IBIT__   0
     
    #define __cpp_lambdas   200907
     
    #define __ARM_FEATURE_QBIT   1
     
    #define __INT_FAST64_TYPE__   long long int
     
    #define __FLT64_DENORM_MIN__   4.9406564584124654e-324F64
     
    #define __DBL_MIN__   double(2.2250738585072014e-308L)
     
    #define __FLT32X_EPSILON__   2.2204460492503131e-16F32x
     
    #define __LACCUM_MIN__   (-0X1P31LK-0X1P31LK)
     
    #define __ULLACCUM_FBIT__   32
     
    #define __GXX_TYPEINFO_EQUALITY_INLINE   0
     
    #define __FLT64_MIN_10_EXP__   (-307)
     
    #define __ULLFRACT_EPSILON__   0x1P-64ULLR
     
    #define __DEC128_MIN__   1E-6143DL
     
    #define __REGISTER_PREFIX__
     
    #define __UINT16_MAX__   0xffff
     
    #define __DBL_HAS_DENORM__   1
     
    #define __ACCUM_MIN__   (-0X1P15K-0X1P15K)
     
    #define __SQ_IBIT__   0
     
    #define __FLT32_MIN__   1.1754943508222875e-38F32
     
    #define __UINT8_TYPE__   unsigned char
     
    #define __UHA_FBIT__   8
     
    #define __NO_INLINE__   1
     
    #define __SFRACT_MIN__   (-0.5HR-0.5HR)
     
    #define __UTQ_FBIT__   128
     
    #define __FLT_MANT_DIG__   24
     
    #define __LDBL_DECIMAL_DIG__   17
     
    #define __VERSION__   "8.3.0"
     
    #define __UINT64_C(c)   c ## ULL
     
    #define __ULLFRACT_FBIT__   64
     
    #define __cpp_unicode_characters   200704
     
    #define __FRACT_EPSILON__   0x1P-15R
     
    #define __ULACCUM_MIN__   0.0ULK
     
    #define _STDC_PREDEF_H   1
     
    #define __UDA_FBIT__   32
     
    #define __cpp_decltype_auto   201304
     
    #define __LLACCUM_EPSILON__   0x1P-31LLK
     
    #define __GCC_ATOMIC_INT_LOCK_FREE   2
     
    #define __FLT32_MANT_DIG__   24
     
    #define __FLOAT_WORD_ORDER__   __ORDER_LITTLE_ENDIAN__
     
    #define __USFRACT_MIN__   0.0UHR
     
    #define __ULLACCUM_IBIT__   32
     
    #define __UQQ_IBIT__   0
     
    #define __STDC_IEC_559_COMPLEX__   1
     
    #define __SCHAR_WIDTH__   8
     
    #define __INT32_C(c)   c
     
    #define __DEC64_EPSILON__   1E-15DD
     
    #define __ORDER_PDP_ENDIAN__   3412
     
    #define __DEC128_MIN_EXP__   (-6142)
     
    #define __UHQ_FBIT__   16
     
    #define __LLACCUM_FBIT__   31
     
    #define __FLT32_MAX_10_EXP__   38
     
    #define __INT_FAST32_TYPE__   int
     
    #define __UINT_LEAST16_TYPE__   short unsigned int
     
    #define unix   1
     
    #define __INT16_MAX__   0x7fff
     
    #define __cpp_rtti   199711
     
    #define __SIZE_TYPE__   unsigned int
     
    #define __UINT64_MAX__   0xffffffffffffffffULL
     
    #define __UDQ_FBIT__   64
     
    #define __INT8_TYPE__   signed char
     
    #define __cpp_digit_separators   201309
     
    #define __ELF__   1
     
    #define __ULFRACT_EPSILON__   0x1P-32ULR
     
    #define __LLFRACT_FBIT__   63
     
    #define __FLT_RADIX__   2
     
    #define __INT_LEAST16_TYPE__   short int
     
    #define __LDBL_EPSILON__   2.2204460492503131e-16L
     
    #define __UINTMAX_C(c)   c ## ULL
     
    #define __SACCUM_MAX__   0X7FFFP-7HK
     
    #define __SIG_ATOMIC_MAX__   0x7fffffff
     
    #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE   2
     
    #define __VFP_FP__   1
     
    #define __SIZEOF_PTRDIFF_T__   4
     
    #define __FLT32X_MANT_DIG__   53
     
    #define __LACCUM_EPSILON__   0x1P-31LK
     
    #define __FLT32X_MIN_EXP__   (-1021)
     
    #define __DEC32_SUBNORMAL_MIN__   0.000001E-95DF
     
    #define __INT_FAST16_MAX__   0x7fffffff
     
    #define __ARM_ARCH_6__   1
     
    #define __FLT64_DIG__   15
     
    #define __UINT_FAST32_MAX__   0xffffffffU
     
    #define __UINT_LEAST64_TYPE__   long long unsigned int
     
    #define __USACCUM_MAX__   0XFFFFP-8UHK
     
    #define __SFRACT_EPSILON__   0x1P-7HR
     
    #define __FLT_HAS_QUIET_NAN__   1
     
    #define __FLT_MAX_10_EXP__   38
     
    #define __LONG_MAX__   0x7fffffffL
     
    #define __DEC128_SUBNORMAL_MIN__   0.000000000000000000000000000000001E-6143DL
     
    #define __FLT_HAS_INFINITY__   1
     
    #define __unix   1
     
    #define __cpp_unicode_literals   200710
     
    #define __USA_FBIT__   16
     
    #define __UINT_FAST16_TYPE__   unsigned int
     
    #define __DEC64_MAX__   9.999999999999999E384DD
     
    #define __ARM_32BIT_STATE   1
     
    #define __INT_FAST32_WIDTH__   32
     
    #define __CHAR16_TYPE__   short unsigned int
     
    #define __PRAGMA_REDEFINE_EXTNAME   1
     
    #define __SIZE_WIDTH__   32
     
    #define __INT_LEAST16_MAX__   0x7fff
     
    #define __DEC64_MANT_DIG__   16
     
    #define __INT64_MAX__   0x7fffffffffffffffLL
     
    #define __UINT_LEAST32_MAX__   0xffffffffU
     
    #define __SACCUM_FBIT__   7
     
    #define __FLT32_DENORM_MIN__   1.4012984643248171e-45F32
     
    #define __GCC_ATOMIC_LONG_LOCK_FREE   2
     
    #define __SIG_ATOMIC_WIDTH__   32
     
    #define __INT_LEAST64_TYPE__   long long int
     
    #define __ARM_FEATURE_CLZ   1
     
    #define __INT16_TYPE__   short int
     
    #define __INT_LEAST8_TYPE__   signed char
     
    #define __SQ_FBIT__   31
     
    #define __DEC32_MAX_EXP__   97
     
    #define __ARM_ARCH_ISA_THUMB   1
     
    #define __INT_FAST8_MAX__   0x7f
     
    #define __ARM_ARCH   6
     
    #define __INTPTR_MAX__   0x7fffffff
     
    #define __cpp_sized_deallocation   201309
     
    #define __QQ_FBIT__   7
     
    #define linux   1
     
    #define __cpp_range_based_for   200907
     
    #define __UTA_IBIT__   64
     
    #define __FLT64_HAS_QUIET_NAN__   1
     
    #define __FLT32_MIN_10_EXP__   (-37)
     
    #define __EXCEPTIONS   1
     
    #define __LDBL_MANT_DIG__   53
     
    #define __SFRACT_FBIT__   7
     
    #define __SACCUM_MIN__   (-0X1P7HK-0X1P7HK)
     
    #define __DBL_HAS_QUIET_NAN__   1
     
    #define __FLT64_HAS_INFINITY__   1
     
    #define __SIG_ATOMIC_MIN__   (-__SIG_ATOMIC_MAX__ - 1)
     
    #define __cpp_return_type_deduction   201304
     
    #define __INTPTR_TYPE__   int
     
    #define __UINT16_TYPE__   short unsigned int
     
    #define __WCHAR_TYPE__   unsigned int
     
    #define __SIZEOF_FLOAT__   4
     
    #define __USQ_FBIT__   32
     
    #define __UINTPTR_MAX__   0xffffffffU
     
    #define __INT_FAST64_WIDTH__   64
     
    #define __DEC64_MIN_EXP__   (-382)
     
    #define __cpp_decltype   200707
     
    #define __FLT32_DECIMAL_DIG__   9
     
    #define __INT_FAST64_MAX__   0x7fffffffffffffffLL
     
    #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL   1
     
    #define __FLT_DIG__   6
     
    #define __UINT_FAST64_TYPE__   long long unsigned int
     
    #define __INT_MAX__   0x7fffffff
     
    #define __LACCUM_FBIT__   31
     
    #define __USACCUM_MIN__   0.0UHK
     
    #define __UHA_IBIT__   8
     
    #define __INT64_TYPE__   long long int
     
    #define __FLT_MAX_EXP__   128
     
    #define __UTQ_IBIT__   0
     
    #define __DBL_MANT_DIG__   53
     
    #define __cpp_inheriting_constructors   201511
     
    #define QT_CORE_LIB   1
     
    #define __INT_LEAST64_MAX__   0x7fffffffffffffffLL
     
    #define __DEC64_MIN__   1E-383DD
     
    #define __WINT_TYPE__   unsigned int
     
    #define __UINT_LEAST32_TYPE__   unsigned int
     
    #define __SIZEOF_SHORT__   2
     
    #define __ULLFRACT_IBIT__   0
     
    #define __LDBL_MIN_EXP__   (-1021)
     
    #define __arm__   1
     
    #define __FLT64_MAX__   1.7976931348623157e+308F64
     
    #define __UDA_IBIT__   32
     
    #define __WINT_WIDTH__   32
     
    #define __INT_LEAST8_MAX__   0x7f
     
    #define __FLT32X_MAX_10_EXP__   308
     
    #define __LFRACT_FBIT__   31
     
    #define __WCHAR_UNSIGNED__   1
     
    #define __LDBL_MAX_10_EXP__   308
     
    #define __ATOMIC_RELAXED   0
     
    #define __DBL_EPSILON__   double(2.2204460492503131e-16L)
     
    #define __ARM_FEATURE_SIMD32   1
     
    #define __UINT8_C(c)   c
     
    #define __FLT64_MAX_EXP__   1024
     
    #define __INT_LEAST32_TYPE__   int
     
    #define __SIZEOF_WCHAR_T__   4
     
    #define __LLFRACT_MAX__   0X7FFFFFFFFFFFFFFFP-63LLR
     
    #define __TQ_FBIT__   127
     
    #define __INT_FAST8_TYPE__   signed char
     
    #define __ULLACCUM_EPSILON__   0x1P-32ULLK
     
    #define __UHQ_IBIT__   0
     
    #define __ARM_FEATURE_COPROC   15
     
    #define __LLACCUM_IBIT__   32
     
    #define __FLT64_HAS_DENORM__   1
     
    #define __FLT32_EPSILON__   1.1920928955078125e-7F32
     
    #define __DBL_DECIMAL_DIG__   17
     
    #define __STDC_UTF_32__   1
     
    #define __INT_FAST8_WIDTH__   8
     
    #define __DEC_EVAL_METHOD__   2
     
    #define __FLT32X_MAX__   1.7976931348623157e+308F32x
     
    #define __TA_FBIT__   63
     
    #define __UDQ_IBIT__   0
     
    #define __ORDER_BIG_ENDIAN__   4321
     
    #define __cpp_runtime_arrays   198712
     
    #define __UINT64_TYPE__   long long unsigned int
     
    #define __ACCUM_EPSILON__   0x1P-15K
     
    #define __UINT32_C(c)   c ## U
     
    #define __INTMAX_MAX__   0x7fffffffffffffffLL
     
    #define __cpp_alias_templates   200704
     
    #define __BYTE_ORDER__   __ORDER_LITTLE_ENDIAN__
     
    #define __FLT_DENORM_MIN__   1.4012984643248171e-45F
     
    #define __LLFRACT_IBIT__   0
     
    #define __INT8_MAX__   0x7f
     
    #define __LONG_WIDTH__   32
     
    #define __UINT_FAST32_TYPE__   unsigned int
     
    #define __CHAR32_TYPE__   unsigned int
     
    #define __FLT_MAX__   3.4028234663852886e+38F
     
    #define __cpp_constexpr   201304
     
    #define __USACCUM_FBIT__   8
     
    #define __INT32_TYPE__   int
     
    #define __SIZEOF_DOUBLE__   8
     
    #define __cpp_exceptions   199711
     
    #define __FLT_MIN_10_EXP__   (-37)
     
    #define __UFRACT_EPSILON__   0x1P-16UR
     
    #define __FLT64_MIN__   2.2250738585072014e-308F64
     
    #define __INT_LEAST32_WIDTH__   32
     
    #define __INTMAX_TYPE__   long long int
     
    #define __DEC128_MAX_EXP__   6145
     
    #define __FLT32X_HAS_QUIET_NAN__   1
     
    #define __ATOMIC_CONSUME   1
     
    #define __GNUC_MINOR__   3
     
    #define __INT_FAST16_WIDTH__   32
     
    #define __UINTMAX_MAX__   0xffffffffffffffffULL
     
    #define __DEC32_MANT_DIG__   7
     
    #define __FLT32X_DENORM_MIN__   4.9406564584124654e-324F32x
     
    #define __HA_FBIT__   7
     
    #define __DBL_MAX_10_EXP__   308
     
    #define __LDBL_DENORM_MIN__   4.9406564584124654e-324L
     
    #define __INT16_C(c)   c
     
    #define __cpp_generic_lambdas   201304
     
    #define __STDC__   1
     
    #define __FLT32X_DIG__   15
     
    #define __PTRDIFF_TYPE__   int
     
    #define __LLFRACT_MIN__   (-0.5LLR-0.5LLR)
     
    #define __ATOMIC_SEQ_CST   5
     
    #define __DA_FBIT__   31
     
    #define __UINT32_TYPE__   unsigned int
     
    #define __FLT32X_MIN_10_EXP__   (-307)
     
    #define __UINTPTR_TYPE__   unsigned int
     
    #define __USA_IBIT__   16
     
    #define __DEC64_SUBNORMAL_MIN__   0.000000000000001E-383DD
     
    #define __ARM_EABI__   1
     
    #define __DEC128_MANT_DIG__   34
     
    #define __LDBL_MIN_10_EXP__   (-307)
     
    #define __SIZEOF_LONG_LONG__   8
     
    #define __ULACCUM_EPSILON__   0x1P-32ULK
     
    #define __cpp_user_defined_literals   200809
     
    #define __SACCUM_IBIT__   8
     
    #define __GCC_ATOMIC_LLONG_LOCK_FREE   1
     
    #define __FLT32X_MIN__   2.2250738585072014e-308F32x
     
    #define __LDBL_DIG__   15
     
    #define __FLT_DECIMAL_DIG__   9
     
    #define __UINT_FAST16_MAX__   0xffffffffU
     
    #define __GCC_ATOMIC_SHORT_LOCK_FREE   1
     
    #define QT_PRINTSUPPORT_LIB   1
     
    #define __INT_LEAST64_WIDTH__   64
     
    #define __ULLFRACT_MAX__   0XFFFFFFFFFFFFFFFFP-64ULLR
     
    #define __UINT_FAST8_TYPE__   unsigned char
     
    #define _GNU_SOURCE   1
     
    #define __USFRACT_EPSILON__   0x1P-8UHR
     
    #define __ULACCUM_FBIT__   32
     
    #define __ARM_FEATURE_DSP   1
     
    #define __QQ_IBIT__   0
     
    #define __cpp_init_captures   201304
     
    #define __ATOMIC_ACQ_REL   4
     
    #define __ATOMIC_RELEASE   3
     
    +

    Macro Definition Documentation

    + +

    ◆ __ACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __ACCUM_EPSILON__   0x1P-15K
    +
    + +

    Definition at line 404 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ACCUM_FBIT__

    + +
    +
    + + + + +
    #define __ACCUM_FBIT__   15
    +
    + +

    Definition at line 22 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ACCUM_IBIT__

    + +
    +
    + + + + +
    #define __ACCUM_IBIT__   16
    +
    + +

    Definition at line 159 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ACCUM_MAX__

    + +
    +
    + + + + +
    #define __ACCUM_MAX__   0X7FFFFFFFP-15K
    +
    + +

    Definition at line 174 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ACCUM_MIN__

    + +
    +
    + + + + +
    #define __ACCUM_MIN__   (-0X1P15K-0X1P15K)
    +
    + +

    Definition at line 222 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __APCS_32__

    + +
    +
    + + + + +
    #define __APCS_32__   1
    +
    + +

    Definition at line 108 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_32BIT_STATE

    + +
    +
    + + + + +
    #define __ARM_32BIT_STATE   1
    +
    + +

    Definition at line 300 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __arm__

    + +
    +
    + + + + +
    #define __arm__   1
    +
    + +

    Definition at line 369 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_ARCH

    + +
    +
    + + + + +
    #define __ARM_ARCH   6
    +
    + +

    Definition at line 321 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_ARCH_6__

    + +
    +
    + + + + +
    #define __ARM_ARCH_6__   1
    +
    + +

    Definition at line 284 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_ARCH_ISA_ARM

    + +
    +
    + + + + +
    #define __ARM_ARCH_ISA_ARM   1
    +
    + +

    Definition at line 30 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_ARCH_ISA_THUMB

    + +
    +
    + + + + +
    #define __ARM_ARCH_ISA_THUMB   1
    +
    + +

    Definition at line 319 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_EABI__

    + +
    +
    + + + + +
    #define __ARM_EABI__   1
    +
    + +

    Definition at line 450 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_CLZ

    + +
    +
    + + + + +
    #define __ARM_FEATURE_CLZ   1
    +
    + +

    Definition at line 314 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_COPROC

    + +
    +
    + + + + +
    #define __ARM_FEATURE_COPROC   15
    +
    + +

    Definition at line 390 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_DSP

    + +
    +
    + + + + +
    #define __ARM_FEATURE_DSP   1
    +
    + +

    Definition at line 470 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_LDREX

    + +
    +
    + + + + +
    #define __ARM_FEATURE_LDREX   4
    +
    + +

    Definition at line 168 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_QBIT

    + +
    +
    + + + + +
    #define __ARM_FEATURE_QBIT   1
    +
    + +

    Definition at line 208 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_SAT

    + +
    +
    + + + + +
    #define __ARM_FEATURE_SAT   1
    +
    + +

    Definition at line 16 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_SIMD32

    + +
    +
    + + + + +
    #define __ARM_FEATURE_SIMD32   1
    +
    + +

    Definition at line 380 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FEATURE_UNALIGNED

    + +
    +
    + + + + +
    #define __ARM_FEATURE_UNALIGNED   1
    +
    + +

    Definition at line 53 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_FP

    + +
    +
    + + + + +
    #define __ARM_FP   12
    +
    + +

    Definition at line 70 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_PCS_VFP

    + +
    +
    + + + + +
    #define __ARM_PCS_VFP   1
    +
    + +

    Definition at line 136 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_SIZEOF_MINIMAL_ENUM

    + +
    +
    + + + + +
    #define __ARM_SIZEOF_MINIMAL_ENUM   4
    +
    + +

    Definition at line 117 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARM_SIZEOF_WCHAR_T

    + +
    +
    + + + + +
    #define __ARM_SIZEOF_WCHAR_T   4
    +
    + +

    Definition at line 6 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ARMEL__

    + +
    +
    + + + + +
    #define __ARMEL__   1
    +
    + +

    Definition at line 51 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_ACQ_REL

    + +
    +
    + + + + +
    #define __ATOMIC_ACQ_REL   4
    +
    + +

    Definition at line 473 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_ACQUIRE

    + +
    +
    + + + + +
    #define __ATOMIC_ACQUIRE   2
    +
    + +

    Definition at line 7 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_CONSUME

    + +
    +
    + + + + +
    #define __ATOMIC_CONSUME   1
    +
    + +

    Definition at line 428 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_RELAXED

    + +
    +
    + + + + +
    #define __ATOMIC_RELAXED   0
    +
    + +

    Definition at line 378 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_RELEASE

    + +
    +
    + + + + +
    #define __ATOMIC_RELEASE   3
    +
    + +

    Definition at line 474 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ATOMIC_SEQ_CST

    + +
    +
    + + + + +
    #define __ATOMIC_SEQ_CST   5
    +
    + +

    Definition at line 443 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __BIGGEST_ALIGNMENT__

    + +
    +
    + + + + +
    #define __BIGGEST_ALIGNMENT__   8
    +
    + +

    Definition at line 148 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __BYTE_ORDER__

    + +
    +
    + + + + +
    #define __BYTE_ORDER__   __ORDER_LITTLE_ENDIAN__
    +
    + +

    Definition at line 408 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __CHAR16_TYPE__

    + +
    +
    + + + + +
    #define __CHAR16_TYPE__   short unsigned int
    +
    + +

    Definition at line 302 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __CHAR32_TYPE__

    + +
    +
    + + + + +
    #define __CHAR32_TYPE__   unsigned int
    +
    + +

    Definition at line 414 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __CHAR_BIT__

    + +
    +
    + + + + +
    #define __CHAR_BIT__   8
    +
    + +

    Definition at line 19 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __CHAR_UNSIGNED__

    + +
    +
    + + + + +
    #define __CHAR_UNSIGNED__   1
    +
    + +

    Definition at line 80 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cplusplus

    + +
    +
    + + + + +
    #define __cplusplus   201402L
    +
    + +

    Definition at line 169 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_aggregate_nsdmi

    + +
    +
    + + + + +
    #define __cpp_aggregate_nsdmi   201304
    +
    + +

    Definition at line 11 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_alias_templates

    + +
    +
    + + + + +
    #define __cpp_alias_templates   200704
    +
    + +

    Definition at line 407 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_attributes

    + +
    +
    + + + + +
    #define __cpp_attributes   200809
    +
    + +

    Definition at line 4 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_binary_literals

    + +
    +
    + + + + +
    #define __cpp_binary_literals   201304
    +
    + +

    Definition at line 40 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_constexpr

    + +
    +
    + + + + +
    #define __cpp_constexpr   201304
    +
    + +

    Definition at line 416 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_decltype

    + +
    +
    + + + + +
    #define __cpp_decltype   200707
    +
    + +

    Definition at line 346 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_decltype_auto

    + +
    +
    + + + + +
    #define __cpp_decltype_auto   201304
    +
    + +

    Definition at line 240 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_delegating_constructors

    + +
    +
    + + + + +
    #define __cpp_delegating_constructors   200604
    +
    + +

    Definition at line 144 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_digit_separators

    + +
    +
    + + + + +
    #define __cpp_digit_separators   201309
    +
    + +

    Definition at line 266 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_exceptions

    + +
    +
    + + + + +
    #define __cpp_exceptions   199711
    +
    + +

    Definition at line 420 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_generic_lambdas

    + +
    +
    + + + + +
    #define __cpp_generic_lambdas   201304
    +
    + +

    Definition at line 438 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_hex_float

    + +
    +
    + + + + +
    #define __cpp_hex_float   201603
    +
    + +

    Definition at line 201 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_inheriting_constructors

    + +
    +
    + + + + +
    #define __cpp_inheriting_constructors   201511
    +
    + +

    Definition at line 360 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_init_captures

    + +
    +
    + + + + +
    #define __cpp_init_captures   201304
    +
    + +

    Definition at line 472 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_initializer_lists

    + +
    +
    + + + + +
    #define __cpp_initializer_lists   200806
    +
    + +

    Definition at line 196 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_lambdas

    + +
    +
    + + + + +
    #define __cpp_lambdas   200907
    +
    + +

    Definition at line 207 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_nsdmi

    + +
    +
    + + + + +
    #define __cpp_nsdmi   200809
    +
    + +

    Definition at line 193 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_range_based_for

    + +
    +
    + + + + +
    #define __cpp_range_based_for   200907
    +
    + +

    Definition at line 326 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_raw_strings

    + +
    +
    + + + + +
    #define __cpp_raw_strings   200710
    +
    + +

    Definition at line 156 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_ref_qualifiers

    + +
    +
    + + + + +
    #define __cpp_ref_qualifiers   200710
    +
    + +

    Definition at line 170 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_return_type_deduction

    + +
    +
    + + + + +
    #define __cpp_return_type_deduction   201304
    +
    + +

    Definition at line 337 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_rtti

    + +
    +
    + + + + +
    #define __cpp_rtti   199711
    +
    + +

    Definition at line 261 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_runtime_arrays

    + +
    +
    + + + + +
    #define __cpp_runtime_arrays   198712
    +
    + +

    Definition at line 402 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_rvalue_reference

    + +
    +
    + + + + +
    #define __cpp_rvalue_reference   200610
    +
    + +

    Definition at line 192 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_rvalue_references

    + +
    +
    + + + + +
    #define __cpp_rvalue_references   200610
    +
    + +

    Definition at line 176 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_sized_deallocation

    + +
    +
    + + + + +
    #define __cpp_sized_deallocation   201309
    +
    + +

    Definition at line 323 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_static_assert

    + +
    +
    + + + + +
    #define __cpp_static_assert   200410
    +
    + +

    Definition at line 25 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_threadsafe_static_init

    + +
    +
    + + + + +
    #define __cpp_threadsafe_static_init   200806
    +
    + +

    Definition at line 115 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_unicode_characters

    + +
    +
    + + + + +
    #define __cpp_unicode_characters   200704
    +
    + +

    Definition at line 235 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_unicode_literals

    + +
    +
    + + + + +
    #define __cpp_unicode_literals   200710
    +
    + +

    Definition at line 296 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_user_defined_literals

    + +
    +
    + + + + +
    #define __cpp_user_defined_literals   200809
    +
    + +

    Definition at line 455 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_variable_templates

    + +
    +
    + + + + +
    #define __cpp_variable_templates   201304
    +
    + +

    Definition at line 52 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __cpp_variadic_templates

    + +
    +
    + + + + +
    #define __cpp_variadic_templates   200704
    +
    + +

    Definition at line 45 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DA_FBIT__

    + +
    +
    + + + + +
    #define __DA_FBIT__   31
    +
    + +

    Definition at line 444 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DA_IBIT__

    + +
    +
    + + + + +
    #define __DA_IBIT__   32
    +
    + +

    Definition at line 116 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __DBL_DECIMAL_DIG__   17
    +
    + +

    Definition at line 394 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_DENORM_MIN__

    + +
    +
    + + + + +
    #define __DBL_DENORM_MIN__   double(4.9406564584124654e-324L)
    +
    + +

    Definition at line 34 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_DIG__

    + +
    +
    + + + + +
    #define __DBL_DIG__   15
    +
    + +

    Definition at line 93 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_EPSILON__

    + +
    +
    + + + + +
    #define __DBL_EPSILON__   double(2.2204460492503131e-16L)
    +
    + +

    Definition at line 379 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_HAS_DENORM__

    + +
    +
    + + + + +
    #define __DBL_HAS_DENORM__   1
    +
    + +

    Definition at line 221 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __DBL_HAS_INFINITY__   1
    +
    + +

    Definition at line 158 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __DBL_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 334 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MANT_DIG__

    + +
    +
    + + + + +
    #define __DBL_MANT_DIG__   53
    +
    + +

    Definition at line 359 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __DBL_MAX_10_EXP__   308
    +
    + +

    Definition at line 435 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MAX__

    + +
    +
    + + + + +
    #define __DBL_MAX__   double(1.7976931348623157e+308L)
    +
    + +

    Definition at line 154 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MAX_EXP__

    + +
    +
    + + + + +
    #define __DBL_MAX_EXP__   1024
    +
    + +

    Definition at line 177 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __DBL_MIN_10_EXP__   (-307)
    +
    + +

    Definition at line 49 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MIN__

    + +
    +
    + + + + +
    #define __DBL_MIN__   double(2.2250738585072014e-308L)
    +
    + +

    Definition at line 211 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DBL_MIN_EXP__

    + +
    +
    + + + + +
    #define __DBL_MIN_EXP__   (-1021)
    +
    + +

    Definition at line 1 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_EPSILON__

    + +
    +
    + + + + +
    #define __DEC128_EPSILON__   1E-33DL
    +
    + +

    Definition at line 181 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_MANT_DIG__

    + +
    +
    + + + + +
    #define __DEC128_MANT_DIG__   34
    +
    + +

    Definition at line 451 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_MAX__

    + +
    +
    + + + + +
    #define __DEC128_MAX__   9.999999999999999999999999999999999E6144DL
    +
    + +

    Definition at line 171 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_MAX_EXP__

    + +
    +
    + + + + +
    #define __DEC128_MAX_EXP__   6145
    +
    + +

    Definition at line 426 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_MIN__

    + +
    +
    + + + + +
    #define __DEC128_MIN__   1E-6143DL
    +
    + +

    Definition at line 218 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_MIN_EXP__

    + +
    +
    + + + + +
    #define __DEC128_MIN_EXP__   (-6142)
    +
    + +

    Definition at line 253 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC128_SUBNORMAL_MIN__

    + +
    +
    + + + + +
    #define __DEC128_SUBNORMAL_MIN__   0.000000000000000000000000000000001E-6143DL
    +
    + +

    Definition at line 293 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_EPSILON__

    + +
    +
    + + + + +
    #define __DEC32_EPSILON__   1E-6DF
    +
    + +

    Definition at line 78 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_MANT_DIG__

    + +
    +
    + + + + +
    #define __DEC32_MANT_DIG__   7
    +
    + +

    Definition at line 432 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_MAX__

    + +
    +
    + + + + +
    #define __DEC32_MAX__   9.999999E96DF
    +
    + +

    Definition at line 114 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_MAX_EXP__

    + +
    +
    + + + + +
    #define __DEC32_MAX_EXP__   97
    +
    + +

    Definition at line 318 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_MIN__

    + +
    +
    + + + + +
    #define __DEC32_MIN__   1E-95DF
    +
    + +

    Definition at line 173 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_MIN_EXP__

    + +
    +
    + + + + +
    #define __DEC32_MIN_EXP__   (-94)
    +
    + +

    Definition at line 160 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC32_SUBNORMAL_MIN__

    + +
    +
    + + + + +
    #define __DEC32_SUBNORMAL_MIN__   0.000001E-95DF
    +
    + +

    Definition at line 282 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_EPSILON__

    + +
    +
    + + + + +
    #define __DEC64_EPSILON__   1E-15DD
    +
    + +

    Definition at line 251 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_MANT_DIG__

    + +
    +
    + + + + +
    #define __DEC64_MANT_DIG__   16
    +
    + +

    Definition at line 306 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_MAX__

    + +
    +
    + + + + +
    #define __DEC64_MAX__   9.999999999999999E384DD
    +
    + +

    Definition at line 299 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_MAX_EXP__

    + +
    +
    + + + + +
    #define __DEC64_MAX_EXP__   385
    +
    + +

    Definition at line 61 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_MIN__

    + +
    +
    + + + + +
    #define __DEC64_MIN__   1E-383DD
    +
    + +

    Definition at line 363 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_MIN_EXP__

    + +
    +
    + + + + +
    #define __DEC64_MIN_EXP__   (-382)
    +
    + +

    Definition at line 345 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC64_SUBNORMAL_MIN__

    + +
    +
    + + + + +
    #define __DEC64_SUBNORMAL_MIN__   0.000000000000001E-383DD
    +
    + +

    Definition at line 449 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEC_EVAL_METHOD__

    + +
    +
    + + + + +
    #define __DEC_EVAL_METHOD__   2
    +
    + +

    Definition at line 397 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __DECIMAL_DIG__   17
    +
    + +

    Definition at line 128 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DEPRECATED

    + +
    +
    + + + + +
    #define __DEPRECATED   1
    +
    + +

    Definition at line 175 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DQ_FBIT__

    + +
    +
    + + + + +
    #define __DQ_FBIT__   63
    +
    + +

    Definition at line 14 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __DQ_IBIT__

    + +
    +
    + + + + +
    #define __DQ_IBIT__   0
    +
    + +

    Definition at line 152 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ELF__

    + +
    +
    + + + + +
    #define __ELF__   1
    +
    + +

    Definition at line 267 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __EXCEPTIONS

    + +
    +
    + + + + +
    #define __EXCEPTIONS   1
    +
    + +

    Definition at line 330 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FINITE_MATH_ONLY__

    + +
    +
    + + + + +
    #define __FINITE_MATH_ONLY__   0
    +
    + +

    Definition at line 50 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLOAT_WORD_ORDER__

    + +
    +
    + + + + +
    #define __FLOAT_WORD_ORDER__   __ORDER_LITTLE_ENDIAN__
    +
    + +

    Definition at line 244 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __FLT32_DECIMAL_DIG__   9
    +
    + +

    Definition at line 347 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_DENORM_MIN__

    + +
    +
    + + + + +
    #define __FLT32_DENORM_MIN__   1.4012984643248171e-45F32
    +
    + +

    Definition at line 310 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_DIG__

    + +
    +
    + + + + +
    #define __FLT32_DIG__   6
    +
    + +

    Definition at line 105 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_EPSILON__

    + +
    +
    + + + + +
    #define __FLT32_EPSILON__   1.1920928955078125e-7F32
    +
    + +

    Definition at line 393 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_HAS_DENORM__

    + +
    +
    + + + + +
    #define __FLT32_HAS_DENORM__   1
    +
    + +

    Definition at line 57 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __FLT32_HAS_INFINITY__   1
    +
    + +

    Definition at line 153 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __FLT32_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 187 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MANT_DIG__

    + +
    +
    + + + + +
    #define __FLT32_MANT_DIG__   24
    +
    + +

    Definition at line 243 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __FLT32_MAX_10_EXP__   38
    +
    + +

    Definition at line 256 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MAX__

    + +
    +
    + + + + +
    #define __FLT32_MAX__   3.4028234663852886e+38F32
    +
    + +

    Definition at line 180 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MAX_EXP__

    + +
    +
    + + + + +
    #define __FLT32_MAX_EXP__   128
    +
    + +

    Definition at line 197 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __FLT32_MIN_10_EXP__   (-37)
    +
    + +

    Definition at line 329 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MIN__

    + +
    +
    + + + + +
    #define __FLT32_MIN__   1.1754943508222875e-38F32
    +
    + +

    Definition at line 224 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32_MIN_EXP__

    + +
    +
    + + + + +
    #define __FLT32_MIN_EXP__   (-125)
    +
    + +

    Definition at line 24 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __FLT32X_DECIMAL_DIG__   17
    +
    + +

    Definition at line 37 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_DENORM_MIN__

    + +
    +
    + + + + +
    #define __FLT32X_DENORM_MIN__   4.9406564584124654e-324F32x
    +
    + +

    Definition at line 433 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_DIG__

    + +
    +
    + + + + +
    #define __FLT32X_DIG__   15
    +
    + +

    Definition at line 440 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_EPSILON__

    + +
    +
    + + + + +
    #define __FLT32X_EPSILON__   2.2204460492503131e-16F32x
    +
    + +

    Definition at line 212 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_HAS_DENORM__

    + +
    +
    + + + + +
    #define __FLT32X_HAS_DENORM__   1
    +
    + +

    Definition at line 164 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __FLT32X_HAS_INFINITY__   1
    +
    + +

    Definition at line 118 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __FLT32X_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 427 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MANT_DIG__

    + +
    +
    + + + + +
    #define __FLT32X_MANT_DIG__   53
    +
    + +

    Definition at line 279 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __FLT32X_MAX_10_EXP__   308
    +
    + +

    Definition at line 374 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MAX__

    + +
    +
    + + + + +
    #define __FLT32X_MAX__   1.7976931348623157e+308F32x
    +
    + +

    Definition at line 398 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MAX_EXP__

    + +
    +
    + + + + +
    #define __FLT32X_MAX_EXP__   1024
    +
    + +

    Definition at line 3 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __FLT32X_MIN_10_EXP__   (-307)
    +
    + +

    Definition at line 446 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MIN__

    + +
    +
    + + + + +
    #define __FLT32X_MIN__   2.2250738585072014e-308F32x
    +
    + +

    Definition at line 458 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT32X_MIN_EXP__

    + +
    +
    + + + + +
    #define __FLT32X_MIN_EXP__   (-1021)
    +
    + +

    Definition at line 281 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __FLT64_DECIMAL_DIG__   17
    +
    + +

    Definition at line 42 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_DENORM_MIN__

    + +
    +
    + + + + +
    #define __FLT64_DENORM_MIN__   4.9406564584124654e-324F64
    +
    + +

    Definition at line 210 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_DIG__

    + +
    +
    + + + + +
    #define __FLT64_DIG__   15
    +
    + +

    Definition at line 285 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_EPSILON__

    + +
    +
    + + + + +
    #define __FLT64_EPSILON__   2.2204460492503131e-16F64
    +
    + +

    Definition at line 130 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_HAS_DENORM__

    + +
    +
    + + + + +
    #define __FLT64_HAS_DENORM__   1
    +
    + +

    Definition at line 392 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __FLT64_HAS_INFINITY__   1
    +
    + +

    Definition at line 335 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __FLT64_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 328 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MANT_DIG__

    + +
    +
    + + + + +
    #define __FLT64_MANT_DIG__   53
    +
    + +

    Definition at line 139 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __FLT64_MAX_10_EXP__   308
    +
    + +

    Definition at line 150 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MAX__

    + +
    +
    + + + + +
    #define __FLT64_MAX__   1.7976931348623157e+308F64
    +
    + +

    Definition at line 370 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MAX_EXP__

    + +
    +
    + + + + +
    #define __FLT64_MAX_EXP__   1024
    +
    + +

    Definition at line 382 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __FLT64_MIN_10_EXP__   (-307)
    +
    + +

    Definition at line 216 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MIN__

    + +
    +
    + + + + +
    #define __FLT64_MIN__   2.2250738585072014e-308F64
    +
    + +

    Definition at line 423 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT64_MIN_EXP__

    + +
    +
    + + + + +
    #define __FLT64_MIN_EXP__   (-1021)
    +
    + +

    Definition at line 134 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __FLT_DECIMAL_DIG__   9
    +
    + +

    Definition at line 460 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_DENORM_MIN__

    + +
    +
    + + + + +
    #define __FLT_DENORM_MIN__   1.4012984643248171e-45F
    +
    + +

    Definition at line 409 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_DIG__

    + +
    +
    + + + + +
    #define __FLT_DIG__   6
    +
    + +

    Definition at line 350 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_EPSILON__

    + +
    +
    + + + + +
    #define __FLT_EPSILON__   1.1920928955078125e-7F
    +
    + +

    Definition at line 107 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_EVAL_METHOD__

    + +
    +
    + + + + +
    #define __FLT_EVAL_METHOD__   0
    +
    + +

    Definition at line 38 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_EVAL_METHOD_TS_18661_3__

    + +
    +
    + + + + +
    #define __FLT_EVAL_METHOD_TS_18661_3__   0
    +
    + +

    Definition at line 79 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_HAS_DENORM__

    + +
    +
    + + + + +
    #define __FLT_HAS_DENORM__   1
    +
    + +

    Definition at line 146 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __FLT_HAS_INFINITY__   1
    +
    + +

    Definition at line 294 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __FLT_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 290 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MANT_DIG__

    + +
    +
    + + + + +
    #define __FLT_MANT_DIG__   24
    +
    + +

    Definition at line 230 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __FLT_MAX_10_EXP__   38
    +
    + +

    Definition at line 291 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MAX__

    + +
    +
    + + + + +
    #define __FLT_MAX__   3.4028234663852886e+38F
    +
    + +

    Definition at line 415 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MAX_EXP__

    + +
    +
    + + + + +
    #define __FLT_MAX_EXP__   128
    +
    + +

    Definition at line 357 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __FLT_MIN_10_EXP__   (-37)
    +
    + +

    Definition at line 421 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MIN__

    + +
    +
    + + + + +
    #define __FLT_MIN__   1.1754943508222875e-38F
    +
    + +

    Definition at line 9 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_MIN_EXP__

    + +
    +
    + + + + +
    #define __FLT_MIN_EXP__   (-125)
    +
    + +

    Definition at line 204 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FLT_RADIX__

    + +
    +
    + + + + +
    #define __FLT_RADIX__   2
    +
    + +

    Definition at line 270 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FRACT_EPSILON__

    + +
    +
    + + + + +
    #define __FRACT_EPSILON__   0x1P-15R
    +
    + +

    Definition at line 236 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FRACT_FBIT__

    + +
    +
    + + + + +
    #define __FRACT_FBIT__   15
    +
    + +

    Definition at line 44 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FRACT_IBIT__

    + +
    +
    + + + + +
    #define __FRACT_IBIT__   0
    +
    + +

    Definition at line 183 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FRACT_MAX__

    + +
    +
    + + + + +
    #define __FRACT_MAX__   0X7FFFP-15R
    +
    + +

    Definition at line 68 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __FRACT_MIN__

    + +
    +
    + + + + +
    #define __FRACT_MIN__   (-0.5R-0.5R)
    +
    + +

    Definition at line 113 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_BOOL_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_BOOL_LOCK_FREE   1
    +
    + +

    Definition at line 74 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_CHAR16_T_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE   1
    +
    + +

    Definition at line 98 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_CHAR32_T_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE   2
    +
    + +

    Definition at line 43 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_CHAR_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_CHAR_LOCK_FREE   1
    +
    + +

    Definition at line 35 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_INT_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_INT_LOCK_FREE   2
    +
    + +

    Definition at line 242 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_LLONG_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_LLONG_LOCK_FREE   1
    +
    + +

    Definition at line 457 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_LONG_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_LONG_LOCK_FREE   2
    +
    + +

    Definition at line 311 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_POINTER_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_POINTER_LOCK_FREE   2
    +
    + +

    Definition at line 94 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_SHORT_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_SHORT_LOCK_FREE   1
    +
    + +

    Definition at line 462 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_TEST_AND_SET_TRUEVAL

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL   1
    +
    + +

    Definition at line 349 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_ATOMIC_WCHAR_T_LOCK_FREE

    + +
    +
    + + + + +
    #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE   2
    +
    + +

    Definition at line 276 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4

    + +
    +
    + + + + +
    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4   1
    +
    + +

    Definition at line 33 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_IEC_559

    + +
    +
    + + + + +
    #define __GCC_IEC_559   2
    +
    + +

    Definition at line 36 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GCC_IEC_559_COMPLEX

    + +
    +
    + + + + +
    #define __GCC_IEC_559_COMPLEX   2
    +
    + +

    Definition at line 10 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __gnu_linux__

    + +
    +
    + + + + +
    #define __gnu_linux__   1
    +
    + +

    Definition at line 132 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GNUC__

    + +
    +
    + + + + +
    #define __GNUC__   8
    +
    + +

    Definition at line 141 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GNUC_MINOR__

    + +
    +
    + + + + +
    #define __GNUC_MINOR__   3
    +
    + +

    Definition at line 429 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GNUC_PATCHLEVEL__

    + +
    +
    + + + + +
    #define __GNUC_PATCHLEVEL__   0
    +
    + +

    Definition at line 56 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GNUC_STDC_INLINE__

    + +
    +
    + + + + +
    #define __GNUC_STDC_INLINE__   1
    +
    + +

    Definition at line 151 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GNUG__

    + +
    +
    + + + + +
    #define __GNUG__   8
    +
    + +

    Definition at line 188 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GXX_ABI_VERSION

    + +
    +
    + + + + +
    #define __GXX_ABI_VERSION   1013
    +
    + +

    Definition at line 202 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GXX_EXPERIMENTAL_CXX0X__

    + +
    +
    + + + + +
    #define __GXX_EXPERIMENTAL_CXX0X__   1
    +
    + +

    Definition at line 82 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GXX_RTTI

    + +
    +
    + + + + +
    #define __GXX_RTTI   1
    +
    + +

    Definition at line 143 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GXX_TYPEINFO_EQUALITY_INLINE

    + +
    +
    + + + + +
    #define __GXX_TYPEINFO_EQUALITY_INLINE   0
    +
    + +

    Definition at line 215 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __GXX_WEAK__

    + +
    +
    + + + + +
    #define __GXX_WEAK__   1
    +
    + +

    Definition at line 109 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __HA_FBIT__

    + +
    +
    + + + + +
    #define __HA_FBIT__   7
    +
    + +

    Definition at line 434 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __HA_IBIT__

    + +
    +
    + + + + +
    #define __HA_IBIT__   8
    +
    + +

    Definition at line 104 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __has_include

    + +
    +
    + + + + + + + + +
    #define __has_include( STR)   __has_include__(STR)
    +
    + +

    Definition at line 60 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __has_include_next

    + +
    +
    + + + + + + + + +
    #define __has_include_next( STR)   __has_include_next__(STR)
    +
    + +

    Definition at line 135 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __HQ_FBIT__

    + +
    +
    + + + + +
    #define __HQ_FBIT__   15
    +
    + +

    Definition at line 2 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __HQ_IBIT__

    + +
    +
    + + + + +
    #define __HQ_IBIT__   0
    +
    + +

    Definition at line 145 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT16_C

    + +
    +
    + + + + + + + + +
    #define __INT16_C( c)   c
    +
    + +

    Definition at line 437 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT16_MAX__

    + +
    +
    + + + + +
    #define __INT16_MAX__   0x7fff
    +
    + +

    Definition at line 260 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT16_TYPE__

    + +
    +
    + + + + +
    #define __INT16_TYPE__   short int
    +
    + +

    Definition at line 315 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT32_C

    + +
    +
    + + + + + + + + +
    #define __INT32_C( c)   c
    +
    + +

    Definition at line 250 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT32_MAX__

    + +
    +
    + + + + +
    #define __INT32_MAX__   0x7fffffff
    +
    + +

    Definition at line 119 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT32_TYPE__

    + +
    +
    + + + + +
    #define __INT32_TYPE__   int
    +
    + +

    Definition at line 418 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT64_C

    + +
    +
    + + + + + + + + +
    #define __INT64_C( c)   c ## LL
    +
    + +

    Definition at line 92 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT64_MAX__

    + +
    +
    + + + + +
    #define __INT64_MAX__   0x7fffffffffffffffLL
    +
    + +

    Definition at line 307 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT64_TYPE__

    + +
    +
    + + + + +
    #define __INT64_TYPE__   long long int
    +
    + +

    Definition at line 356 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT8_C

    + +
    +
    + + + + + + + + +
    #define __INT8_C( c)   c
    +
    + +

    Definition at line 62 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT8_MAX__

    + +
    +
    + + + + +
    #define __INT8_MAX__   0x7f
    +
    + +

    Definition at line 411 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT8_TYPE__

    + +
    +
    + + + + +
    #define __INT8_TYPE__   signed char
    +
    + +

    Definition at line 265 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST16_MAX__

    + +
    +
    + + + + +
    #define __INT_FAST16_MAX__   0x7fffffff
    +
    + +

    Definition at line 283 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST16_TYPE__

    + +
    +
    + + + + +
    #define __INT_FAST16_TYPE__   int
    +
    + +

    Definition at line 165 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST16_WIDTH__

    + +
    +
    + + + + +
    #define __INT_FAST16_WIDTH__   32
    +
    + +

    Definition at line 430 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST32_MAX__

    + +
    +
    + + + + +
    #define __INT_FAST32_MAX__   0x7fffffff
    +
    + +

    Definition at line 157 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST32_TYPE__

    + +
    +
    + + + + +
    #define __INT_FAST32_TYPE__   int
    +
    + +

    Definition at line 257 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST32_WIDTH__

    + +
    +
    + + + + +
    #define __INT_FAST32_WIDTH__   32
    +
    + +

    Definition at line 301 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST64_MAX__

    + +
    +
    + + + + +
    #define __INT_FAST64_MAX__   0x7fffffffffffffffLL
    +
    + +

    Definition at line 348 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST64_TYPE__

    + +
    +
    + + + + +
    #define __INT_FAST64_TYPE__   long long int
    +
    + +

    Definition at line 209 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST64_WIDTH__

    + +
    +
    + + + + +
    #define __INT_FAST64_WIDTH__   64
    +
    + +

    Definition at line 344 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST8_MAX__

    + +
    +
    + + + + +
    #define __INT_FAST8_MAX__   0x7f
    +
    + +

    Definition at line 320 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST8_TYPE__

    + +
    +
    + + + + +
    #define __INT_FAST8_TYPE__   signed char
    +
    + +

    Definition at line 387 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_FAST8_WIDTH__

    + +
    +
    + + + + +
    #define __INT_FAST8_WIDTH__   8
    +
    + +

    Definition at line 396 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST16_MAX__

    + +
    +
    + + + + +
    #define __INT_LEAST16_MAX__   0x7fff
    +
    + +

    Definition at line 305 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST16_TYPE__

    + +
    +
    + + + + +
    #define __INT_LEAST16_TYPE__   short int
    +
    + +

    Definition at line 271 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST16_WIDTH__

    + +
    +
    + + + + +
    #define __INT_LEAST16_WIDTH__   16
    +
    + +

    Definition at line 88 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST32_MAX__

    + +
    +
    + + + + +
    #define __INT_LEAST32_MAX__   0x7fffffff
    +
    + +

    Definition at line 172 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST32_TYPE__

    + +
    +
    + + + + +
    #define __INT_LEAST32_TYPE__   int
    +
    + +

    Definition at line 383 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST32_WIDTH__

    + +
    +
    + + + + +
    #define __INT_LEAST32_WIDTH__   32
    +
    + +

    Definition at line 424 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST64_MAX__

    + +
    +
    + + + + +
    #define __INT_LEAST64_MAX__   0x7fffffffffffffffLL
    +
    + +

    Definition at line 362 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST64_TYPE__

    + +
    +
    + + + + +
    #define __INT_LEAST64_TYPE__   long long int
    +
    + +

    Definition at line 313 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST64_WIDTH__

    + +
    +
    + + + + +
    #define __INT_LEAST64_WIDTH__   64
    +
    + +

    Definition at line 464 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST8_MAX__

    + +
    +
    + + + + +
    #define __INT_LEAST8_MAX__   0x7f
    +
    + +

    Definition at line 373 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST8_TYPE__

    + +
    +
    + + + + +
    #define __INT_LEAST8_TYPE__   signed char
    +
    + +

    Definition at line 316 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_LEAST8_WIDTH__

    + +
    +
    + + + + +
    #define __INT_LEAST8_WIDTH__   8
    +
    + +

    Definition at line 63 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_MAX__

    + +
    +
    + + + + +
    #define __INT_MAX__   0x7fffffff
    +
    + +

    Definition at line 352 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INT_WIDTH__

    + +
    +
    + + + + +
    #define __INT_WIDTH__   32
    +
    + +

    Definition at line 121 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTMAX_C

    + +
    +
    + + + + + + + + +
    #define __INTMAX_C( c)   c ## LL
    +
    + +

    Definition at line 15 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTMAX_MAX__

    + +
    +
    + + + + +
    #define __INTMAX_MAX__   0x7fffffffffffffffLL
    +
    + +

    Definition at line 406 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTMAX_TYPE__

    + +
    +
    + + + + +
    #define __INTMAX_TYPE__   long long int
    +
    + +

    Definition at line 425 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTMAX_WIDTH__

    + +
    +
    + + + + +
    #define __INTMAX_WIDTH__   64
    +
    + +

    Definition at line 133 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTPTR_MAX__

    + +
    +
    + + + + +
    #define __INTPTR_MAX__   0x7fffffff
    +
    + +

    Definition at line 322 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTPTR_TYPE__

    + +
    +
    + + + + +
    #define __INTPTR_TYPE__   int
    +
    + +

    Definition at line 338 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __INTPTR_WIDTH__

    + +
    +
    + + + + +
    #define __INTPTR_WIDTH__   32
    +
    + +

    Definition at line 162 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __LACCUM_EPSILON__   0x1P-31LK
    +
    + +

    Definition at line 280 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LACCUM_FBIT__

    + +
    +
    + + + + +
    #define __LACCUM_FBIT__   31
    +
    + +

    Definition at line 353 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LACCUM_IBIT__

    + +
    +
    + + + + +
    #define __LACCUM_IBIT__   32
    +
    + +

    Definition at line 32 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LACCUM_MAX__

    + +
    +
    + + + + +
    #define __LACCUM_MAX__   0X7FFFFFFFFFFFFFFFP-31LK
    +
    + +

    Definition at line 163 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LACCUM_MIN__

    + +
    +
    + + + + +
    #define __LACCUM_MIN__   (-0X1P31LK-0X1P31LK)
    +
    + +

    Definition at line 213 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_DECIMAL_DIG__

    + +
    +
    + + + + +
    #define __LDBL_DECIMAL_DIG__   17
    +
    + +

    Definition at line 231 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_DENORM_MIN__

    + +
    +
    + + + + +
    #define __LDBL_DENORM_MIN__   4.9406564584124654e-324L
    +
    + +

    Definition at line 436 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_DIG__

    + +
    +
    + + + + +
    #define __LDBL_DIG__   15
    +
    + +

    Definition at line 459 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_EPSILON__

    + +
    +
    + + + + +
    #define __LDBL_EPSILON__   2.2204460492503131e-16L
    +
    + +

    Definition at line 272 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_HAS_DENORM__

    + +
    +
    + + + + +
    #define __LDBL_HAS_DENORM__   1
    +
    + +

    Definition at line 166 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_HAS_INFINITY__

    + +
    +
    + + + + +
    #define __LDBL_HAS_INFINITY__   1
    +
    + +

    Definition at line 102 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_HAS_QUIET_NAN__

    + +
    +
    + + + + +
    #define __LDBL_HAS_QUIET_NAN__   1
    +
    + +

    Definition at line 137 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MANT_DIG__

    + +
    +
    + + + + +
    #define __LDBL_MANT_DIG__   53
    +
    + +

    Definition at line 331 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MAX_10_EXP__

    + +
    +
    + + + + +
    #define __LDBL_MAX_10_EXP__   308
    +
    + +

    Definition at line 377 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MAX__

    + +
    +
    + + + + +
    #define __LDBL_MAX__   1.7976931348623157e+308L
    +
    + +

    Definition at line 67 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MAX_EXP__

    + +
    +
    + + + + +
    #define __LDBL_MAX_EXP__   1024
    +
    + +

    Definition at line 85 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MIN_10_EXP__

    + +
    +
    + + + + +
    #define __LDBL_MIN_10_EXP__   (-307)
    +
    + +

    Definition at line 452 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MIN__

    + +
    +
    + + + + +
    #define __LDBL_MIN__   2.2250738585072014e-308L
    +
    + +

    Definition at line 112 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LDBL_MIN_EXP__

    + +
    +
    + + + + +
    #define __LDBL_MIN_EXP__   (-1021)
    +
    + +

    Definition at line 368 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __LFRACT_EPSILON__   0x1P-31LR
    +
    + +

    Definition at line 129 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LFRACT_FBIT__

    + +
    +
    + + + + +
    #define __LFRACT_FBIT__   31
    +
    + +

    Definition at line 375 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LFRACT_IBIT__

    + +
    +
    + + + + +
    #define __LFRACT_IBIT__   0
    +
    + +

    Definition at line 54 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LFRACT_MAX__

    + +
    +
    + + + + +
    #define __LFRACT_MAX__   0X7FFFFFFFP-31LR
    +
    + +

    Definition at line 58 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LFRACT_MIN__

    + +
    +
    + + + + +
    #define __LFRACT_MIN__   (-0.5LR-0.5LR)
    +
    + +

    Definition at line 103 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __linux

    + +
    +
    + + + + +
    #define __linux   1
    +
    + +

    Definition at line 77 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __linux__

    + +
    +
    + + + + +
    #define __linux__   1
    +
    + +

    Definition at line 87 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __LLACCUM_EPSILON__   0x1P-31LLK
    +
    + +

    Definition at line 241 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLACCUM_FBIT__

    + +
    +
    + + + + +
    #define __LLACCUM_FBIT__   31
    +
    + +

    Definition at line 255 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLACCUM_IBIT__

    + +
    +
    + + + + +
    #define __LLACCUM_IBIT__   32
    +
    + +

    Definition at line 391 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLACCUM_MAX__

    + +
    +
    + + + + +
    #define __LLACCUM_MAX__   0X7FFFFFFFFFFFFFFFP-31LLK
    +
    + +

    Definition at line 41 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLACCUM_MIN__

    + +
    +
    + + + + +
    #define __LLACCUM_MIN__   (-0X1P31LLK-0X1P31LLK)
    +
    + +

    Definition at line 95 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __LLFRACT_EPSILON__   0x1P-63LLR
    +
    + +

    Definition at line 76 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLFRACT_FBIT__

    + +
    +
    + + + + +
    #define __LLFRACT_FBIT__   63
    +
    + +

    Definition at line 269 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLFRACT_IBIT__

    + +
    +
    + + + + +
    #define __LLFRACT_IBIT__   0
    +
    + +

    Definition at line 410 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLFRACT_MAX__

    + +
    +
    + + + + +
    #define __LLFRACT_MAX__   0X7FFFFFFFFFFFFFFFP-63LLR
    +
    + +

    Definition at line 385 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LLFRACT_MIN__

    + +
    +
    + + + + +
    #define __LLFRACT_MIN__   (-0.5LLR-0.5LLR)
    +
    + +

    Definition at line 442 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LONG_LONG_MAX__

    + +
    +
    + + + + +
    #define __LONG_LONG_MAX__   0x7fffffffffffffffLL
    +
    + +

    Definition at line 189 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LONG_LONG_WIDTH__

    + +
    +
    + + + + +
    #define __LONG_LONG_WIDTH__   64
    +
    + +

    Definition at line 195 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LONG_MAX__

    + +
    +
    + + + + +
    #define __LONG_MAX__   0x7fffffffL
    +
    + +

    Definition at line 292 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __LONG_WIDTH__

    + +
    +
    + + + + +
    #define __LONG_WIDTH__   32
    +
    + +

    Definition at line 412 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __NO_INLINE__

    + +
    +
    + + + + +
    #define __NO_INLINE__   1
    +
    + +

    Definition at line 227 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ORDER_BIG_ENDIAN__

    + +
    +
    + + + + +
    #define __ORDER_BIG_ENDIAN__   4321
    +
    + +

    Definition at line 401 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ORDER_LITTLE_ENDIAN__

    + +
    +
    + + + + +
    #define __ORDER_LITTLE_ENDIAN__   1234
    +
    + +

    Definition at line 28 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ORDER_PDP_ENDIAN__

    + +
    +
    + + + + +
    #define __ORDER_PDP_ENDIAN__   3412
    +
    + +

    Definition at line 252 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __PRAGMA_REDEFINE_EXTNAME

    + +
    +
    + + + + +
    #define __PRAGMA_REDEFINE_EXTNAME   1
    +
    + +

    Definition at line 303 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __PTRDIFF_MAX__

    + +
    +
    + + + + +
    #define __PTRDIFF_MAX__   0x7fffffff
    +
    + +

    Definition at line 184 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __PTRDIFF_TYPE__

    + +
    +
    + + + + +
    #define __PTRDIFF_TYPE__   int
    +
    + +

    Definition at line 441 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __PTRDIFF_WIDTH__

    + +
    +
    + + + + +
    #define __PTRDIFF_WIDTH__   32
    +
    + +

    Definition at line 127 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __QQ_FBIT__

    + +
    +
    + + + + +
    #define __QQ_FBIT__   7
    +
    + +

    Definition at line 324 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __QQ_IBIT__

    + +
    +
    + + + + +
    #define __QQ_IBIT__   0
    +
    + +

    Definition at line 471 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __REGISTER_PREFIX__

    + +
    +
    + + + + +
    #define __REGISTER_PREFIX__
    +
    + +

    Definition at line 219 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SA_FBIT__

    + +
    +
    + + + + +
    #define __SA_FBIT__   15
    +
    + +

    Definition at line 65 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SA_IBIT__

    + +
    +
    + + + + +
    #define __SA_IBIT__   16
    +
    + +

    Definition at line 199 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __SACCUM_EPSILON__   0x1P-7HK
    +
    + +

    Definition at line 18 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SACCUM_FBIT__

    + +
    +
    + + + + +
    #define __SACCUM_FBIT__   7
    +
    + +

    Definition at line 309 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SACCUM_IBIT__

    + +
    +
    + + + + +
    #define __SACCUM_IBIT__   8
    +
    + +

    Definition at line 456 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SACCUM_MAX__

    + +
    +
    + + + + +
    #define __SACCUM_MAX__   0X7FFFP-7HK
    +
    + +

    Definition at line 274 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SACCUM_MIN__

    + +
    +
    + + + + +
    #define __SACCUM_MIN__   (-0X1P7HK-0X1P7HK)
    +
    + +

    Definition at line 333 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SCHAR_MAX__

    + +
    +
    + + + + +
    #define __SCHAR_MAX__   0x7f
    +
    + +

    Definition at line 90 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SCHAR_WIDTH__

    + +
    +
    + + + + +
    #define __SCHAR_WIDTH__   8
    +
    + +

    Definition at line 249 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __SFRACT_EPSILON__   0x1P-7HR
    +
    + +

    Definition at line 289 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SFRACT_FBIT__

    + +
    +
    + + + + +
    #define __SFRACT_FBIT__   7
    +
    + +

    Definition at line 332 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SFRACT_IBIT__

    + +
    +
    + + + + +
    #define __SFRACT_IBIT__   0
    +
    + +

    Definition at line 8 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SFRACT_MAX__

    + +
    +
    + + + + +
    #define __SFRACT_MAX__   0X7FP-7HR
    +
    + +

    Definition at line 182 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SFRACT_MIN__

    + +
    +
    + + + + +
    #define __SFRACT_MIN__   (-0.5HR-0.5HR)
    +
    + +

    Definition at line 228 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SHRT_MAX__

    + +
    +
    + + + + +
    #define __SHRT_MAX__   0x7fff
    +
    + +

    Definition at line 66 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SHRT_WIDTH__

    + +
    +
    + + + + +
    #define __SHRT_WIDTH__   16
    +
    + +

    Definition at line 110 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIG_ATOMIC_MAX__

    + +
    +
    + + + + +
    #define __SIG_ATOMIC_MAX__   0x7fffffff
    +
    + +

    Definition at line 275 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIG_ATOMIC_MIN__

    + +
    +
    + + + + +
    #define __SIG_ATOMIC_MIN__   (-__SIG_ATOMIC_MAX__ - 1)
    +
    + +

    Definition at line 336 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIG_ATOMIC_TYPE__

    + +
    +
    + + + + +
    #define __SIG_ATOMIC_TYPE__   int
    +
    + +

    Definition at line 47 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIG_ATOMIC_WIDTH__

    + +
    +
    + + + + +
    #define __SIG_ATOMIC_WIDTH__   32
    +
    + +

    Definition at line 312 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZE_MAX__

    + +
    +
    + + + + +
    #define __SIZE_MAX__   0xffffffffU
    +
    + +

    Definition at line 29 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZE_TYPE__

    + +
    +
    + + + + +
    #define __SIZE_TYPE__   unsigned int
    +
    + +

    Definition at line 262 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZE_WIDTH__

    + +
    +
    + + + + +
    #define __SIZE_WIDTH__   32
    +
    + +

    Definition at line 304 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_DOUBLE__

    + +
    +
    + + + + +
    #define __SIZEOF_DOUBLE__   8
    +
    + +

    Definition at line 419 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_FLOAT__

    + +
    +
    + + + + +
    #define __SIZEOF_FLOAT__   4
    +
    + +

    Definition at line 341 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_INT__

    + +
    +
    + + + + +
    #define __SIZEOF_INT__   4
    +
    + +

    Definition at line 96 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_LONG__

    + +
    +
    + + + + +
    #define __SIZEOF_LONG__   4
    +
    + +

    Definition at line 122 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_LONG_DOUBLE__

    + +
    +
    + + + + +
    #define __SIZEOF_LONG_DOUBLE__   8
    +
    + +

    Definition at line 147 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_LONG_LONG__

    + +
    +
    + + + + +
    #define __SIZEOF_LONG_LONG__   8
    +
    + +

    Definition at line 453 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_POINTER__

    + +
    +
    + + + + +
    #define __SIZEOF_POINTER__   4
    +
    + +

    Definition at line 97 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_PTRDIFF_T__

    + +
    +
    + + + + +
    #define __SIZEOF_PTRDIFF_T__   4
    +
    + +

    Definition at line 278 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_SHORT__

    + +
    +
    + + + + +
    #define __SIZEOF_SHORT__   2
    +
    + +

    Definition at line 366 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_SIZE_T__

    + +
    +
    + + + + +
    #define __SIZEOF_SIZE_T__   4
    +
    + +

    Definition at line 190 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_WCHAR_T__

    + +
    +
    + + + + +
    #define __SIZEOF_WCHAR_T__   4
    +
    + +

    Definition at line 384 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SIZEOF_WINT_T__

    + +
    +
    + + + + +
    #define __SIZEOF_WINT_T__   4
    +
    + +

    Definition at line 194 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SQ_FBIT__

    + +
    +
    + + + + +
    #define __SQ_FBIT__   31
    +
    + +

    Definition at line 317 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __SQ_IBIT__

    + +
    +
    + + + + +
    #define __SQ_IBIT__   0
    +
    + +

    Definition at line 223 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC__

    + +
    +
    + + + + +
    #define __STDC__   1
    +
    + +

    Definition at line 439 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_HOSTED__

    + +
    +
    + + + + +
    #define __STDC_HOSTED__   1
    +
    + +

    Definition at line 101 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_IEC_559__

    + +
    +
    + + + + +
    #define __STDC_IEC_559__   1
    +
    + +

    Definition at line 124 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_IEC_559_COMPLEX__

    + +
    +
    + + + + +
    #define __STDC_IEC_559_COMPLEX__   1
    +
    + +

    Definition at line 248 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_ISO_10646__

    + +
    +
    + + + + +
    #define __STDC_ISO_10646__   201706L
    +
    + +

    Definition at line 125 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_UTF_16__

    + +
    +
    + + + + +
    #define __STDC_UTF_16__   1
    +
    + +

    Definition at line 149 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __STDC_UTF_32__

    + +
    +
    + + + + +
    #define __STDC_UTF_32__   1
    +
    + +

    Definition at line 395 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __TA_FBIT__

    + +
    +
    + + + + +
    #define __TA_FBIT__   63
    +
    + +

    Definition at line 399 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __TA_IBIT__

    + +
    +
    + + + + +
    #define __TA_IBIT__   64
    +
    + +

    Definition at line 84 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __THUMB_INTERWORK__

    + +
    +
    + + + + +
    #define __THUMB_INTERWORK__   1
    +
    + +

    Definition at line 161 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __TQ_FBIT__

    + +
    +
    + + + + +
    #define __TQ_FBIT__   127
    +
    + +

    Definition at line 386 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __TQ_IBIT__

    + +
    +
    + + + + +
    #define __TQ_IBIT__   0
    +
    + +

    Definition at line 106 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __UACCUM_EPSILON__   0x1P-16UK
    +
    + +

    Definition at line 140 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UACCUM_FBIT__

    + +
    +
    + + + + +
    #define __UACCUM_FBIT__   16
    +
    + +

    Definition at line 48 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UACCUM_IBIT__

    + +
    +
    + + + + +
    #define __UACCUM_IBIT__   16
    +
    + +

    Definition at line 186 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UACCUM_MAX__

    + +
    +
    + + + + +
    #define __UACCUM_MAX__   0XFFFFFFFFP-16UK
    +
    + +

    Definition at line 123 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UACCUM_MIN__

    + +
    +
    + + + + +
    #define __UACCUM_MIN__   0.0UK
    +
    + +

    Definition at line 185 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UDA_FBIT__

    + +
    +
    + + + + +
    #define __UDA_FBIT__   32
    +
    + +

    Definition at line 239 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UDA_IBIT__

    + +
    +
    + + + + +
    #define __UDA_IBIT__   32
    +
    + +

    Definition at line 371 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UDQ_FBIT__

    + +
    +
    + + + + +
    #define __UDQ_FBIT__   64
    +
    + +

    Definition at line 264 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UDQ_IBIT__

    + +
    +
    + + + + +
    #define __UDQ_IBIT__   0
    +
    + +

    Definition at line 400 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __UFRACT_EPSILON__   0x1P-16UR
    +
    + +

    Definition at line 422 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UFRACT_FBIT__

    + +
    +
    + + + + +
    #define __UFRACT_FBIT__   16
    +
    + +

    Definition at line 69 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UFRACT_IBIT__

    + +
    +
    + + + + +
    #define __UFRACT_IBIT__   0
    +
    + +

    Definition at line 206 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UFRACT_MAX__

    + +
    +
    + + + + +
    #define __UFRACT_MAX__   0XFFFFP-16UR
    +
    + +

    Definition at line 12 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UFRACT_MIN__

    + +
    +
    + + + + +
    #define __UFRACT_MIN__   0.0UR
    +
    + +

    Definition at line 72 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UHA_FBIT__

    + +
    +
    + + + + +
    #define __UHA_FBIT__   8
    +
    + +

    Definition at line 226 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UHA_IBIT__

    + +
    +
    + + + + +
    #define __UHA_IBIT__   8
    +
    + +

    Definition at line 355 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UHQ_FBIT__

    + +
    +
    + + + + +
    #define __UHQ_FBIT__   16
    +
    + +

    Definition at line 254 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UHQ_IBIT__

    + +
    +
    + + + + +
    #define __UHQ_IBIT__   0
    +
    + +

    Definition at line 389 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT16_C

    + +
    +
    + + + + + + + + +
    #define __UINT16_C( c)   c
    +
    + +

    Definition at line 126 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT16_MAX__

    + +
    +
    + + + + +
    #define __UINT16_MAX__   0xffff
    +
    + +

    Definition at line 220 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT16_TYPE__

    + +
    +
    + + + + +
    #define __UINT16_TYPE__   short unsigned int
    +
    + +

    Definition at line 339 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT32_C

    + +
    +
    + + + + + + + + +
    #define __UINT32_C( c)   c ## U
    +
    + +

    Definition at line 405 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT32_MAX__

    + +
    +
    + + + + +
    #define __UINT32_MAX__   0xffffffffU
    +
    + +

    Definition at line 81 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT32_TYPE__

    + +
    +
    + + + + +
    #define __UINT32_TYPE__   unsigned int
    +
    + +

    Definition at line 445 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT64_C

    + +
    +
    + + + + + + + + +
    #define __UINT64_C( c)   c ## ULL
    +
    + +

    Definition at line 233 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT64_MAX__

    + +
    +
    + + + + +
    #define __UINT64_MAX__   0xffffffffffffffffULL
    +
    + +

    Definition at line 263 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT64_TYPE__

    + +
    +
    + + + + +
    #define __UINT64_TYPE__   long long unsigned int
    +
    + +

    Definition at line 403 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT8_C

    + +
    +
    + + + + + + + + +
    #define __UINT8_C( c)   c
    +
    + +

    Definition at line 381 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT8_MAX__

    + +
    +
    + + + + +
    #define __UINT8_MAX__   0xff
    +
    + +

    Definition at line 21 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT8_TYPE__

    + +
    +
    + + + + +
    #define __UINT8_TYPE__   unsigned char
    +
    + +

    Definition at line 225 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST16_MAX__

    + +
    +
    + + + + +
    #define __UINT_FAST16_MAX__   0xffffffffU
    +
    + +

    Definition at line 461 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST16_TYPE__

    + +
    +
    + + + + +
    #define __UINT_FAST16_TYPE__   unsigned int
    +
    + +

    Definition at line 298 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST32_MAX__

    + +
    +
    + + + + +
    #define __UINT_FAST32_MAX__   0xffffffffU
    +
    + +

    Definition at line 286 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST32_TYPE__

    + +
    +
    + + + + +
    #define __UINT_FAST32_TYPE__   unsigned int
    +
    + +

    Definition at line 413 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST64_MAX__

    + +
    +
    + + + + +
    #define __UINT_FAST64_MAX__   0xffffffffffffffffULL
    +
    + +

    Definition at line 46 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST64_TYPE__

    + +
    +
    + + + + +
    #define __UINT_FAST64_TYPE__   long long unsigned int
    +
    + +

    Definition at line 351 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST8_MAX__

    + +
    +
    + + + + +
    #define __UINT_FAST8_MAX__   0xff
    +
    + +

    Definition at line 59 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_FAST8_TYPE__

    + +
    +
    + + + + +
    #define __UINT_FAST8_TYPE__   unsigned char
    +
    + +

    Definition at line 466 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST16_MAX__

    + +
    +
    + + + + +
    #define __UINT_LEAST16_MAX__   0xffff
    +
    + +

    Definition at line 5 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST16_TYPE__

    + +
    +
    + + + + +
    #define __UINT_LEAST16_TYPE__   short unsigned int
    +
    + +

    Definition at line 258 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST32_MAX__

    + +
    +
    + + + + +
    #define __UINT_LEAST32_MAX__   0xffffffffU
    +
    + +

    Definition at line 308 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST32_TYPE__

    + +
    +
    + + + + +
    #define __UINT_LEAST32_TYPE__   unsigned int
    +
    + +

    Definition at line 365 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST64_MAX__

    + +
    +
    + + + + +
    #define __UINT_LEAST64_MAX__   0xffffffffffffffffULL
    +
    + +

    Definition at line 64 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST64_TYPE__

    + +
    +
    + + + + +
    #define __UINT_LEAST64_TYPE__   long long unsigned int
    +
    + +

    Definition at line 287 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST8_MAX__

    + +
    +
    + + + + +
    #define __UINT_LEAST8_MAX__   0xff
    +
    + +

    Definition at line 73 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINT_LEAST8_TYPE__

    + +
    +
    + + + + +
    #define __UINT_LEAST8_TYPE__   unsigned char
    +
    + +

    Definition at line 13 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINTMAX_C

    + +
    +
    + + + + + + + + +
    #define __UINTMAX_C( c)   c ## ULL
    +
    + +

    Definition at line 273 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINTMAX_MAX__

    + +
    +
    + + + + +
    #define __UINTMAX_MAX__   0xffffffffffffffffULL
    +
    + +

    Definition at line 431 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINTMAX_TYPE__

    + +
    +
    + + + + +
    #define __UINTMAX_TYPE__   long long unsigned int
    +
    + +

    Definition at line 75 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINTPTR_MAX__

    + +
    +
    + + + + +
    #define __UINTPTR_MAX__   0xffffffffU
    +
    + +

    Definition at line 343 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UINTPTR_TYPE__

    + +
    +
    + + + + +
    #define __UINTPTR_TYPE__   unsigned int
    +
    + +

    Definition at line 447 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __ULACCUM_EPSILON__   0x1P-32ULK
    +
    + +

    Definition at line 454 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULACCUM_FBIT__

    + +
    +
    + + + + +
    #define __ULACCUM_FBIT__   32
    +
    + +

    Definition at line 469 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULACCUM_IBIT__

    + +
    +
    + + + + +
    #define __ULACCUM_IBIT__   32
    +
    + +

    Definition at line 138 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULACCUM_MAX__

    + +
    +
    + + + + +
    #define __ULACCUM_MAX__   0XFFFFFFFFFFFFFFFFP-32ULK
    +
    + +

    Definition at line 191 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULACCUM_MIN__

    + +
    +
    + + + + +
    #define __ULACCUM_MIN__   0.0ULK
    +
    + +

    Definition at line 237 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __ULFRACT_EPSILON__   0x1P-32ULR
    +
    + +

    Definition at line 268 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULFRACT_FBIT__

    + +
    +
    + + + + +
    #define __ULFRACT_FBIT__   32
    +
    + +

    Definition at line 17 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULFRACT_IBIT__

    + +
    +
    + + + + +
    #define __ULFRACT_IBIT__   0
    +
    + +

    Definition at line 155 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULFRACT_MAX__

    + +
    +
    + + + + +
    #define __ULFRACT_MAX__   0XFFFFFFFFP-32ULR
    +
    + +

    Definition at line 83 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULFRACT_MIN__

    + +
    +
    + + + + +
    #define __ULFRACT_MIN__   0.0ULR
    +
    + +

    Definition at line 131 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __ULLACCUM_EPSILON__   0x1P-32ULLK
    +
    + +

    Definition at line 388 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLACCUM_FBIT__

    + +
    +
    + + + + +
    #define __ULLACCUM_FBIT__   32
    +
    + +

    Definition at line 214 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLACCUM_IBIT__

    + +
    +
    + + + + +
    #define __ULLACCUM_IBIT__   32
    +
    + +

    Definition at line 246 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLACCUM_MAX__

    + +
    +
    + + + + +
    #define __ULLACCUM_MAX__   0XFFFFFFFFFFFFFFFFP-32ULLK
    +
    + +

    Definition at line 142 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLACCUM_MIN__

    + +
    +
    + + + + +
    #define __ULLACCUM_MIN__   0.0ULLK
    +
    + +

    Definition at line 200 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __ULLFRACT_EPSILON__   0x1P-64ULLR
    +
    + +

    Definition at line 217 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLFRACT_FBIT__

    + +
    +
    + + + + +
    #define __ULLFRACT_FBIT__   64
    +
    + +

    Definition at line 234 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLFRACT_IBIT__

    + +
    +
    + + + + +
    #define __ULLFRACT_IBIT__   0
    +
    + +

    Definition at line 367 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLFRACT_MAX__

    + +
    +
    + + + + +
    #define __ULLFRACT_MAX__   0XFFFFFFFFFFFFFFFFP-64ULLR
    +
    + +

    Definition at line 465 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __ULLFRACT_MIN__

    + +
    +
    + + + + +
    #define __ULLFRACT_MIN__   0.0ULLR
    +
    + +

    Definition at line 89 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __unix

    + +
    +
    + + + + +
    #define __unix   1
    +
    + +

    Definition at line 295 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __unix__

    + +
    +
    + + + + +
    #define __unix__   1
    +
    + +

    Definition at line 39 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UQQ_FBIT__

    + +
    +
    + + + + +
    #define __UQQ_FBIT__   8
    +
    + +

    Definition at line 120 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UQQ_IBIT__

    + +
    +
    + + + + +
    #define __UQQ_IBIT__   0
    +
    + +

    Definition at line 247 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USA_FBIT__

    + +
    +
    + + + + +
    #define __USA_FBIT__   16
    +
    + +

    Definition at line 297 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USA_IBIT__

    + +
    +
    + + + + +
    #define __USA_IBIT__   16
    +
    + +

    Definition at line 448 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USACCUM_EPSILON__

    + +
    +
    + + + + +
    #define __USACCUM_EPSILON__   0x1P-8UHK
    +
    + +

    Definition at line 178 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USACCUM_FBIT__

    + +
    +
    + + + + +
    #define __USACCUM_FBIT__   8
    +
    + +

    Definition at line 417 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USACCUM_IBIT__

    + +
    +
    + + + + +
    #define __USACCUM_IBIT__   8
    +
    + +

    Definition at line 99 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USACCUM_MAX__

    + +
    +
    + + + + +
    #define __USACCUM_MAX__   0XFFFFP-8UHK
    +
    + +

    Definition at line 288 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USACCUM_MIN__

    + +
    +
    + + + + +
    #define __USACCUM_MIN__   0.0UHK
    +
    + +

    Definition at line 354 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USER_LABEL_PREFIX__

    + +
    +
    + + + + +
    #define __USER_LABEL_PREFIX__
    +
    + +

    Definition at line 100 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USFRACT_EPSILON__

    + +
    +
    + + + + +
    #define __USFRACT_EPSILON__   0x1P-8UHR
    +
    + +

    Definition at line 468 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USFRACT_FBIT__

    + +
    +
    + + + + +
    #define __USFRACT_FBIT__   8
    +
    + +

    Definition at line 26 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USFRACT_IBIT__

    + +
    +
    + + + + +
    #define __USFRACT_IBIT__   0
    +
    + +

    Definition at line 111 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USFRACT_MAX__

    + +
    +
    + + + + +
    #define __USFRACT_MAX__   0XFFP-8UHR
    +
    + +

    Definition at line 205 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USFRACT_MIN__

    + +
    +
    + + + + +
    #define __USFRACT_MIN__   0.0UHR
    +
    + +

    Definition at line 245 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USQ_FBIT__

    + +
    +
    + + + + +
    #define __USQ_FBIT__   32
    +
    + +

    Definition at line 342 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __USQ_IBIT__

    + +
    +
    + + + + +
    #define __USQ_IBIT__   0
    +
    + +

    Definition at line 20 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UTA_FBIT__

    + +
    +
    + + + + +
    #define __UTA_FBIT__   64
    +
    + +

    Definition at line 203 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UTA_IBIT__

    + +
    +
    + + + + +
    #define __UTA_IBIT__   64
    +
    + +

    Definition at line 327 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UTQ_FBIT__

    + +
    +
    + + + + +
    #define __UTQ_FBIT__   128
    +
    + +

    Definition at line 229 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __UTQ_IBIT__

    + +
    +
    + + + + +
    #define __UTQ_IBIT__   0
    +
    + +

    Definition at line 358 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __VERSION__

    + +
    +
    + + + + +
    #define __VERSION__   "8.3.0"
    +
    + +

    Definition at line 232 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __VFP_FP__

    + +
    +
    + + + + +
    #define __VFP_FP__   1
    +
    + +

    Definition at line 277 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WCHAR_MAX__

    + +
    +
    + + + + +
    #define __WCHAR_MAX__   0xffffffffU
    +
    + +

    Definition at line 31 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WCHAR_MIN__

    + +
    +
    + + + + +
    #define __WCHAR_MIN__   0U
    +
    + +

    Definition at line 91 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WCHAR_TYPE__

    + +
    +
    + + + + +
    #define __WCHAR_TYPE__   unsigned int
    +
    + +

    Definition at line 340 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WCHAR_UNSIGNED__

    + +
    +
    + + + + +
    #define __WCHAR_UNSIGNED__   1
    +
    + +

    Definition at line 376 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WCHAR_WIDTH__

    + +
    +
    + + + + +
    #define __WCHAR_WIDTH__   32
    +
    + +

    Definition at line 179 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WINT_MAX__

    + +
    +
    + + + + +
    #define __WINT_MAX__   0xffffffffU
    +
    + +

    Definition at line 23 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WINT_MIN__

    + +
    +
    + + + + +
    #define __WINT_MIN__   0U
    +
    + +

    Definition at line 86 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WINT_TYPE__

    + +
    +
    + + + + +
    #define __WINT_TYPE__   unsigned int
    +
    + +

    Definition at line 364 of file moc_predefs.h.

    + +
    +
    + +

    ◆ __WINT_WIDTH__

    + +
    +
    + + + + +
    #define __WINT_WIDTH__   32
    +
    + +

    Definition at line 372 of file moc_predefs.h.

    + +
    +
    + +

    ◆ _GNU_SOURCE

    + +
    +
    + + + + +
    #define _GNU_SOURCE   1
    +
    + +

    Definition at line 467 of file moc_predefs.h.

    + +
    +
    + +

    ◆ _STDC_PREDEF_H

    + +
    +
    + + + + +
    #define _STDC_PREDEF_H   1
    +
    + +

    Definition at line 238 of file moc_predefs.h.

    + +
    +
    + +

    ◆ ABI_ID

    + +
    +
    + + + + +
    #define ABI_ID   "ELF"
    +
    + +

    Definition at line 198 of file moc_predefs.h.

    + +
    +
    + +

    ◆ linux

    + +
    +
    + + + + +
    #define linux   1
    +
    + +

    Definition at line 325 of file moc_predefs.h.

    + +
    +
    + +

    ◆ QT_CORE_LIB

    + +
    +
    + + + + +
    #define QT_CORE_LIB   1
    +
    + +

    Definition at line 361 of file moc_predefs.h.

    + +
    +
    + +

    ◆ QT_GUI_LIB

    + +
    +
    + + + + +
    #define QT_GUI_LIB   1
    +
    + +

    Definition at line 27 of file moc_predefs.h.

    + +
    +
    + +

    ◆ QT_NO_DEBUG

    + +
    +
    + + + + +
    #define QT_NO_DEBUG   1
    +
    + +

    Definition at line 71 of file moc_predefs.h.

    + +
    +
    + +

    ◆ QT_PRINTSUPPORT_LIB

    + +
    +
    + + + + +
    #define QT_PRINTSUPPORT_LIB   1
    +
    + +

    Definition at line 463 of file moc_predefs.h.

    + +
    +
    + +

    ◆ QT_WIDGETS_LIB

    + +
    +
    + + + + +
    #define QT_WIDGETS_LIB   1
    +
    + +

    Definition at line 167 of file moc_predefs.h.

    + +
    +
    + +

    ◆ SIZEOF_DPTR

    + +
    +
    + + + + +
    #define SIZEOF_DPTR   (sizeof(void*))
    +
    + +

    Definition at line 55 of file moc_predefs.h.

    + +
    +
    + +

    ◆ unix

    + +
    +
    + + + + +
    #define unix   1
    +
    + +

    Definition at line 259 of file moc_predefs.h.

    + +
    +
    +
    +
    + + + + diff --git a/docs/moc__predefs_8h.js b/docs/moc__predefs_8h.js new file mode 100644 index 0000000..dab99cc --- /dev/null +++ b/docs/moc__predefs_8h.js @@ -0,0 +1,477 @@ +var moc__predefs_8h = +[ + [ "__ACCUM_EPSILON__", "moc__predefs_8h.html#a0e3615b841cb0fd1049bb0a2aaac2096", null ], + [ "__ACCUM_FBIT__", "moc__predefs_8h.html#a5328bc8cdad22da7ce2eb594194a16a7", null ], + [ "__ACCUM_IBIT__", "moc__predefs_8h.html#a460a4ac8f082aeb8dfbd842efd5776a6", null ], + [ "__ACCUM_MAX__", "moc__predefs_8h.html#a5a17054b70390cdd56c412f1fa9bcce5", null ], + [ "__ACCUM_MIN__", "moc__predefs_8h.html#a9b9593a0ca3e3d1a3f7792f287451ead", null ], + [ "__APCS_32__", "moc__predefs_8h.html#af291fd206f4078237248a3d15ce8717c", null ], + [ "__ARM_32BIT_STATE", "moc__predefs_8h.html#aff9ef90200309ec00ffac764f93d3f01", null ], + [ "__arm__", "moc__predefs_8h.html#a5144286cd63b294154788dfb0730d9cf", null ], + [ "__ARM_ARCH", "moc__predefs_8h.html#ad62096dceb9fc55727c82df7ac9fc83f", null ], + [ "__ARM_ARCH_6__", "moc__predefs_8h.html#acc93c253f739f4447ca16ebf13b29959", null ], + [ "__ARM_ARCH_ISA_ARM", "moc__predefs_8h.html#a036c254077652f499bdf3e870c83320c", null ], + [ "__ARM_ARCH_ISA_THUMB", "moc__predefs_8h.html#abbbf9feda211d9f5bd5269cd17fc9355", null ], + [ "__ARM_EABI__", "moc__predefs_8h.html#aa7682d4c3e5ed9fca81cf37aee3ef19a", null ], + [ "__ARM_FEATURE_CLZ", "moc__predefs_8h.html#a98708440262c0e7482dea555d0f97289", null ], + [ "__ARM_FEATURE_COPROC", "moc__predefs_8h.html#ab7406b58b90e06608971dc2450931858", null ], + [ "__ARM_FEATURE_DSP", "moc__predefs_8h.html#a3b68223a25c19aec8b02a4ca73deedbe", null ], + [ "__ARM_FEATURE_LDREX", "moc__predefs_8h.html#a429021b24d3b356d0f5cbfc44588966c", null ], + [ "__ARM_FEATURE_QBIT", "moc__predefs_8h.html#aa4b8e94710cdb10a1bce40ca28f4f7db", null ], + [ "__ARM_FEATURE_SAT", "moc__predefs_8h.html#a8dc0e461cdc2e9d30acc1b94f1c18a5f", null ], + [ "__ARM_FEATURE_SIMD32", "moc__predefs_8h.html#abfa247cfbd725226b9239a8eb186101a", null ], + [ "__ARM_FEATURE_UNALIGNED", "moc__predefs_8h.html#a4d78dd41059205e8fd1a29af6dda266c", null ], + [ "__ARM_FP", "moc__predefs_8h.html#a771dcf9433ec3eae99c1124058d93e88", null ], + [ "__ARM_PCS_VFP", "moc__predefs_8h.html#ab2a758783977e00923fcc60926735ee2", null ], + [ "__ARM_SIZEOF_MINIMAL_ENUM", "moc__predefs_8h.html#a631b640abf43029deabba286d4e0dc41", null ], + [ "__ARM_SIZEOF_WCHAR_T", "moc__predefs_8h.html#a848818a4bc6cb18c25922ea8e7485cb7", null ], + [ "__ARMEL__", "moc__predefs_8h.html#a624566488a5633fb7518ebda59505eee", null ], + [ "__ATOMIC_ACQ_REL", "moc__predefs_8h.html#acdfdd67de0664b690c42bba327cf7da1", null ], + [ "__ATOMIC_ACQUIRE", "moc__predefs_8h.html#a72e3c30a05bd2bb63d76550e451a438e", null ], + [ "__ATOMIC_CONSUME", "moc__predefs_8h.html#a762c3361bcfeccc1f2742cc94b1ab65b", null ], + [ "__ATOMIC_RELAXED", "moc__predefs_8h.html#a8faf1f097f05558889df4c44d052d35e", null ], + [ "__ATOMIC_RELEASE", "moc__predefs_8h.html#a5822cf04414d99e0ee81e8bbe182226b", null ], + [ "__ATOMIC_SEQ_CST", "moc__predefs_8h.html#a0609dc2b702d5980de44c01bd373136a", null ], + [ "__BIGGEST_ALIGNMENT__", "moc__predefs_8h.html#a2c25ec0f0ae74f9d8a7c373288a28dd1", null ], + [ "__BYTE_ORDER__", "moc__predefs_8h.html#a02481ce2087724d8a2fb2322dbc549da", null ], + [ "__CHAR16_TYPE__", "moc__predefs_8h.html#a95b91b7560e936fdc4ce441d38b94b3e", null ], + [ "__CHAR32_TYPE__", "moc__predefs_8h.html#acd1e46c682808f15749b16266ade0c27", null ], + [ "__CHAR_BIT__", "moc__predefs_8h.html#ab35e271dce6e7e2190d60b5905375419", null ], + [ "__CHAR_UNSIGNED__", "moc__predefs_8h.html#a5324d68af227292ae61ae6e5fab5ef76", null ], + [ "__cplusplus", "moc__predefs_8h.html#a1b391bc7ed92f79666c4a5d840aa1edd", null ], + [ "__cpp_aggregate_nsdmi", "moc__predefs_8h.html#ab9bf5af329c2a3a3dc5874289dda6f82", null ], + [ "__cpp_alias_templates", "moc__predefs_8h.html#a771caa69aba7d7732ba184f9be109838", null ], + [ "__cpp_attributes", "moc__predefs_8h.html#ac47e77d27e7d30f01cde452a9cd218ed", null ], + [ "__cpp_binary_literals", "moc__predefs_8h.html#ade9dc15e022182eb0a62a0fd17d18b75", null ], + [ "__cpp_constexpr", "moc__predefs_8h.html#ae12b3591c41f3b52c31cd8b16773d5ae", null ], + [ "__cpp_decltype", "moc__predefs_8h.html#a5bc62cc317387328499b3ea753c5c4a3", null ], + [ "__cpp_decltype_auto", "moc__predefs_8h.html#a5922e567fc671cc2985da95b33544c16", null ], + [ "__cpp_delegating_constructors", "moc__predefs_8h.html#a9e077def8c310cdb5fef37666a92c5a5", null ], + [ "__cpp_digit_separators", "moc__predefs_8h.html#a3dda013c532cea311e9a22bf90dcec86", null ], + [ "__cpp_exceptions", "moc__predefs_8h.html#a42bcb9278fa2b4721fe04fc0627055ce", null ], + [ "__cpp_generic_lambdas", "moc__predefs_8h.html#a57e1156511d5ca1e45a5505f24518c87", null ], + [ "__cpp_hex_float", "moc__predefs_8h.html#a0958474253d23ca2c87e817c16f74eda", null ], + [ "__cpp_inheriting_constructors", "moc__predefs_8h.html#a42c04530cde3529000b65eab84d6ef6b", null ], + [ "__cpp_init_captures", "moc__predefs_8h.html#a5162baf69b085321c18fe6f0bdb537e9", null ], + [ "__cpp_initializer_lists", "moc__predefs_8h.html#a2b46de6050feed05210bef65feef9c42", null ], + [ "__cpp_lambdas", "moc__predefs_8h.html#a5eeda02831b3d7147a1a90f2d52a6228", null ], + [ "__cpp_nsdmi", "moc__predefs_8h.html#adeecd09fc579ff3f8222cf8ae581b936", null ], + [ "__cpp_range_based_for", "moc__predefs_8h.html#a84ca4631d4b617a6dcb94faa40235701", null ], + [ "__cpp_raw_strings", "moc__predefs_8h.html#a7377e1bc6bd2fd9bcfe98283ab0e9037", null ], + [ "__cpp_ref_qualifiers", "moc__predefs_8h.html#af73192acc2dd2095bd3524ca5ee9dca9", null ], + [ "__cpp_return_type_deduction", "moc__predefs_8h.html#ac634ecad75dc34e67d161df1d694d892", null ], + [ "__cpp_rtti", "moc__predefs_8h.html#ab53ade321286145b92622c3a79fc168f", null ], + [ "__cpp_runtime_arrays", "moc__predefs_8h.html#ac2dfcd39d29c1e34de6421b15b2cfde9", null ], + [ "__cpp_rvalue_reference", "moc__predefs_8h.html#a6e4065bb57fe77e1d8635f8108bf3c64", null ], + [ "__cpp_rvalue_references", "moc__predefs_8h.html#acfffb302850fa081bd63c30573077004", null ], + [ "__cpp_sized_deallocation", "moc__predefs_8h.html#a38782886ef0f9d68b695bcec1f396f38", null ], + [ "__cpp_static_assert", "moc__predefs_8h.html#a60c56e472a1144b03053a2c7a2abb7fb", null ], + [ "__cpp_threadsafe_static_init", "moc__predefs_8h.html#aaa322b38474911c60e45134194bd6e8f", null ], + [ "__cpp_unicode_characters", "moc__predefs_8h.html#a7cb6a2aeb6e528ac59bedb98ebeac198", null ], + [ "__cpp_unicode_literals", "moc__predefs_8h.html#af550aeee74ffd7428490fe73f1023076", null ], + [ "__cpp_user_defined_literals", "moc__predefs_8h.html#a05f3b9f6f2309a16af9d6fd939d97493", null ], + [ "__cpp_variable_templates", "moc__predefs_8h.html#a5f5ce266e768d95b9fd04856e5826aff", null ], + [ "__cpp_variadic_templates", "moc__predefs_8h.html#a559dd2b0792fc2b0b30ba1dd66ca7cdc", null ], + [ "__DA_FBIT__", "moc__predefs_8h.html#a63a7f12eb75939fdf2701f1a5f5af754", null ], + [ "__DA_IBIT__", "moc__predefs_8h.html#a002117cb1926b8d6e19255b983101d67", null ], + [ "__DBL_DECIMAL_DIG__", "moc__predefs_8h.html#a6b5dca178c4ffe879cd624f9b17b9bd1", null ], + [ "__DBL_DENORM_MIN__", "moc__predefs_8h.html#aca2a716d3e84ccffe000390bb2e2fb38", null ], + [ "__DBL_DIG__", "moc__predefs_8h.html#a61969667ef3b668024a20df9bc34c991", null ], + [ "__DBL_EPSILON__", "moc__predefs_8h.html#a54983bc256dc296a42fe88b9be24f268", null ], + [ "__DBL_HAS_DENORM__", "moc__predefs_8h.html#ace59605d6645350a7c5cced76ffb27fa", null ], + [ "__DBL_HAS_INFINITY__", "moc__predefs_8h.html#a3dd03066dbb351dfa51353c80a7902a2", null ], + [ "__DBL_HAS_QUIET_NAN__", "moc__predefs_8h.html#a5e816b71154141be2784accabcdc0ead", null ], + [ "__DBL_MANT_DIG__", "moc__predefs_8h.html#ae8f0035094061d550323c738b8d67601", null ], + [ "__DBL_MAX_10_EXP__", "moc__predefs_8h.html#a280f0a9058cc03c2dac890a19881b1fb", null ], + [ "__DBL_MAX__", "moc__predefs_8h.html#a711d7b7f27671b10b11a74c37f653ad7", null ], + [ "__DBL_MAX_EXP__", "moc__predefs_8h.html#a9a8a7cd9484baf4b72ab15682745d119", null ], + [ "__DBL_MIN_10_EXP__", "moc__predefs_8h.html#a1abd7cf346a460459d7fe1a9d4b5dde9", null ], + [ "__DBL_MIN__", "moc__predefs_8h.html#a3b29a64a7b1529c08f87d256d20aade1", null ], + [ "__DBL_MIN_EXP__", "moc__predefs_8h.html#a63d6f5d1c3371192fe03b3fb06e82400", null ], + [ "__DEC128_EPSILON__", "moc__predefs_8h.html#abd2230e0e187a5bae549a0ba786b311b", null ], + [ "__DEC128_MANT_DIG__", "moc__predefs_8h.html#adeff56b51aead6443852cacac294d464", null ], + [ "__DEC128_MAX__", "moc__predefs_8h.html#aaab7817ee2e4bb88b5178e101e7ab2a6", null ], + [ "__DEC128_MAX_EXP__", "moc__predefs_8h.html#aab1edcef0b79684e5d2f12a2696e260f", null ], + [ "__DEC128_MIN__", "moc__predefs_8h.html#afa4fe1921202e3770143345532136860", null ], + [ "__DEC128_MIN_EXP__", "moc__predefs_8h.html#a748143fe17201c420b868b8f30c57d59", null ], + [ "__DEC128_SUBNORMAL_MIN__", "moc__predefs_8h.html#a63678ee519e34f99b61f3aeb5ff2cd75", null ], + [ "__DEC32_EPSILON__", "moc__predefs_8h.html#a13526b223391d4982c4c172c29bfdc1e", null ], + [ "__DEC32_MANT_DIG__", "moc__predefs_8h.html#a144dfa169f604d99b46658c15338338e", null ], + [ "__DEC32_MAX__", "moc__predefs_8h.html#ad3165a97a460b88ccdea80967918f250", null ], + [ "__DEC32_MAX_EXP__", "moc__predefs_8h.html#aabb9dbf55546af708a50831a7c48d9b9", null ], + [ "__DEC32_MIN__", "moc__predefs_8h.html#a1f993b902b5b1dba7d5b043d0abc347b", null ], + [ "__DEC32_MIN_EXP__", "moc__predefs_8h.html#a79e289c54a8c9851b2b118d442bbc26c", null ], + [ "__DEC32_SUBNORMAL_MIN__", "moc__predefs_8h.html#a1b8832b164a1e36ed6756895a71c7e54", null ], + [ "__DEC64_EPSILON__", "moc__predefs_8h.html#a189bb13aac101f45c8ac7f6e52daccfa", null ], + [ "__DEC64_MANT_DIG__", "moc__predefs_8h.html#a61c258ffad919b338b83e1401265f671", null ], + [ "__DEC64_MAX__", "moc__predefs_8h.html#a06608084919123d90621d715daf1f456", null ], + [ "__DEC64_MAX_EXP__", "moc__predefs_8h.html#a3d4fe0f0b2e3ae12569d4a663dee8a0c", null ], + [ "__DEC64_MIN__", "moc__predefs_8h.html#abd66733cff0ce1656bb7e744aa151bea", null ], + [ "__DEC64_MIN_EXP__", "moc__predefs_8h.html#ade7aebdae6e8389a450aac653544c33f", null ], + [ "__DEC64_SUBNORMAL_MIN__", "moc__predefs_8h.html#a6d3e36bb5d7e7ce3eda28fb174e404c6", null ], + [ "__DEC_EVAL_METHOD__", "moc__predefs_8h.html#a53186c3d05006947fb8bd09bcdb0d60c", null ], + [ "__DECIMAL_DIG__", "moc__predefs_8h.html#aeb56455e98000942147dfd63ec1c2fa6", null ], + [ "__DEPRECATED", "moc__predefs_8h.html#aa806e8f7ce2a8db3bf676735fca2ac51", null ], + [ "__DQ_FBIT__", "moc__predefs_8h.html#a6a00585a981c3e3be5d3794afdf2bc67", null ], + [ "__DQ_IBIT__", "moc__predefs_8h.html#aec70387710b2a1fbad3b8a9be7dcfeb4", null ], + [ "__ELF__", "moc__predefs_8h.html#a4012402899bd689646e39a043ccb6047", null ], + [ "__EXCEPTIONS", "moc__predefs_8h.html#a260281f3f3cd1c287fce0d5bb737febb", null ], + [ "__FINITE_MATH_ONLY__", "moc__predefs_8h.html#a611d40c375b1972669292fd27bc4afb7", null ], + [ "__FLOAT_WORD_ORDER__", "moc__predefs_8h.html#a2db444477ad8f9aa0759310d46694339", null ], + [ "__FLT32_DECIMAL_DIG__", "moc__predefs_8h.html#a24d259c69bea7fb471668df7190c71c6", null ], + [ "__FLT32_DENORM_MIN__", "moc__predefs_8h.html#ae9559701fd39a0fbd0dc1a30a4cda0dd", null ], + [ "__FLT32_DIG__", "moc__predefs_8h.html#aa021702c3b7627dccaa51c33a2c5a8d1", null ], + [ "__FLT32_EPSILON__", "moc__predefs_8h.html#af9e0be24f061961e062774ce018a8d3a", null ], + [ "__FLT32_HAS_DENORM__", "moc__predefs_8h.html#ac1175c9478c586edee06d1f788a03b83", null ], + [ "__FLT32_HAS_INFINITY__", "moc__predefs_8h.html#a170219070ed7bdfea9f88121c9abbaea", null ], + [ "__FLT32_HAS_QUIET_NAN__", "moc__predefs_8h.html#a22791bdfea523b20c18eff848609fa9d", null ], + [ "__FLT32_MANT_DIG__", "moc__predefs_8h.html#a4d4e419b93a42fbd34e0f4ae3640c4a9", null ], + [ "__FLT32_MAX_10_EXP__", "moc__predefs_8h.html#a935ebe200313334107dd681186ee586e", null ], + [ "__FLT32_MAX__", "moc__predefs_8h.html#a8d44614ef6d7f2bbbd9224d416d867b9", null ], + [ "__FLT32_MAX_EXP__", "moc__predefs_8h.html#a731bd57ce12918b6118b6a3e37c20d8e", null ], + [ "__FLT32_MIN_10_EXP__", "moc__predefs_8h.html#a1f4c572c6b5b4fe3e7c81bc48272e56b", null ], + [ "__FLT32_MIN__", "moc__predefs_8h.html#a5ed9c6693683a4d844cb05e49cef8337", null ], + [ "__FLT32_MIN_EXP__", "moc__predefs_8h.html#a300c6970bb64b04e45a9c2ed139ecce8", null ], + [ "__FLT32X_DECIMAL_DIG__", "moc__predefs_8h.html#a00a9f6ceb42fbe18b789b4c1949c49f2", null ], + [ "__FLT32X_DENORM_MIN__", "moc__predefs_8h.html#ab557192dd4e486a262d4495e29fe356d", null ], + [ "__FLT32X_DIG__", "moc__predefs_8h.html#a9875b8f50cd7d288819635ebf494cf3d", null ], + [ "__FLT32X_EPSILON__", "moc__predefs_8h.html#a0d5ee390eabd4483e834007b5824373b", null ], + [ "__FLT32X_HAS_DENORM__", "moc__predefs_8h.html#a97163404b3b71f857e35be74607f88f7", null ], + [ "__FLT32X_HAS_INFINITY__", "moc__predefs_8h.html#a8f246ad899706f78b8dfcd33daff7b07", null ], + [ "__FLT32X_HAS_QUIET_NAN__", "moc__predefs_8h.html#a158b9e85a96f0cf9698a6202071e8061", null ], + [ "__FLT32X_MANT_DIG__", "moc__predefs_8h.html#a63419ad12ec3f4e18746a0a64fcfc136", null ], + [ "__FLT32X_MAX_10_EXP__", "moc__predefs_8h.html#ae540090d44c675c8d75037333a21ae3d", null ], + [ "__FLT32X_MAX__", "moc__predefs_8h.html#aa2fbfcb03f8deb89dc6122923d47bc76", null ], + [ "__FLT32X_MAX_EXP__", "moc__predefs_8h.html#a6605c8368985e3b1885a84d1d44ff798", null ], + [ "__FLT32X_MIN_10_EXP__", "moc__predefs_8h.html#a29e106a0e6600792357f526e30ca98b1", null ], + [ "__FLT32X_MIN__", "moc__predefs_8h.html#a3b9ca6d1bbc15a54595e781e4f24b045", null ], + [ "__FLT32X_MIN_EXP__", "moc__predefs_8h.html#a87baa4e50d6b00b4be6c3173a4280f2f", null ], + [ "__FLT64_DECIMAL_DIG__", "moc__predefs_8h.html#a8ef55ba782e9d01cb22911f97168d06a", null ], + [ "__FLT64_DENORM_MIN__", "moc__predefs_8h.html#a9b18cde45e680760b3a997b0b1884408", null ], + [ "__FLT64_DIG__", "moc__predefs_8h.html#a6a7f83363cddf6ce9c8548224f012180", null ], + [ "__FLT64_EPSILON__", "moc__predefs_8h.html#ad293ff29c0ac9a6b4187d366d6de3772", null ], + [ "__FLT64_HAS_DENORM__", "moc__predefs_8h.html#a9e0564ada348dff0b4436b156412f430", null ], + [ "__FLT64_HAS_INFINITY__", "moc__predefs_8h.html#ac67712f8d687485a4bd1c0b0e2741771", null ], + [ "__FLT64_HAS_QUIET_NAN__", "moc__predefs_8h.html#a868c5b1405b26bc9592fa9f3248e99aa", null ], + [ "__FLT64_MANT_DIG__", "moc__predefs_8h.html#a6c163c6e58545740cbae55ad8ffa027f", null ], + [ "__FLT64_MAX_10_EXP__", "moc__predefs_8h.html#aeb14f5cf7cca3a01c2f6a0015e981eb1", null ], + [ "__FLT64_MAX__", "moc__predefs_8h.html#a01d0061df498c537ecd56d53f1130082", null ], + [ "__FLT64_MAX_EXP__", "moc__predefs_8h.html#ad0c5a78bb2815c2ca02963343d1751a8", null ], + [ "__FLT64_MIN_10_EXP__", "moc__predefs_8h.html#a7a06acb3945879bcc985dde7bf0bcbdc", null ], + [ "__FLT64_MIN__", "moc__predefs_8h.html#a56e81e5fec09084ed0e8ed0cccddf3a0", null ], + [ "__FLT64_MIN_EXP__", "moc__predefs_8h.html#aceda5e62622b9783846d26610d038f71", null ], + [ "__FLT_DECIMAL_DIG__", "moc__predefs_8h.html#ad666d9aaf02b587abdeffff5ce3545e2", null ], + [ "__FLT_DENORM_MIN__", "moc__predefs_8h.html#a20b8951342fd8b8af91e2bc9b34eb929", null ], + [ "__FLT_DIG__", "moc__predefs_8h.html#a03e66bc6e427f0c968a7a0daec280729", null ], + [ "__FLT_EPSILON__", "moc__predefs_8h.html#a7ac5a3b1dc00b508a391f8c6c37e2165", null ], + [ "__FLT_EVAL_METHOD__", "moc__predefs_8h.html#a737828904768e0ab49acbdb3371d8445", null ], + [ "__FLT_EVAL_METHOD_TS_18661_3__", "moc__predefs_8h.html#af635b5d104ef9858a68ab2c56677fd2d", null ], + [ "__FLT_HAS_DENORM__", "moc__predefs_8h.html#a82a2c3ff271d1685b450975ffa68544a", null ], + [ "__FLT_HAS_INFINITY__", "moc__predefs_8h.html#a658d9ba84d429e748ce5f1905732c962", null ], + [ "__FLT_HAS_QUIET_NAN__", "moc__predefs_8h.html#acb3a3a30075a9589b520df3b329df29e", null ], + [ "__FLT_MANT_DIG__", "moc__predefs_8h.html#aeacc238625932b11e6cda685357dd678", null ], + [ "__FLT_MAX_10_EXP__", "moc__predefs_8h.html#a3641a65e329884d817848ba5d6163f07", null ], + [ "__FLT_MAX__", "moc__predefs_8h.html#aa26975016847959a13829cb568b126b3", null ], + [ "__FLT_MAX_EXP__", "moc__predefs_8h.html#abd1effb8f681ce210223aceb08d8ed33", null ], + [ "__FLT_MIN_10_EXP__", "moc__predefs_8h.html#a442f6e00169e1726f7b9a05eb3c617d8", null ], + [ "__FLT_MIN__", "moc__predefs_8h.html#a6e947aa0a2cb4808d560339fef0d4793", null ], + [ "__FLT_MIN_EXP__", "moc__predefs_8h.html#acd7b9de9b6bd817027cb37ec6c82cba9", null ], + [ "__FLT_RADIX__", "moc__predefs_8h.html#ae9ed936cc90c092e15526478bdbbefe0", null ], + [ "__FRACT_EPSILON__", "moc__predefs_8h.html#a4e81652d864b9ad956e02419453eafae", null ], + [ "__FRACT_FBIT__", "moc__predefs_8h.html#af9c44b8aaa84323a8f918a5e34224b77", null ], + [ "__FRACT_IBIT__", "moc__predefs_8h.html#a608f71df249414d1993b7e4a0a706175", null ], + [ "__FRACT_MAX__", "moc__predefs_8h.html#aebbf4016ca45751c7f0777bba3d3caf9", null ], + [ "__FRACT_MIN__", "moc__predefs_8h.html#a9d8856f35bfb1b05fc386e1a964b491e", null ], + [ "__GCC_ATOMIC_BOOL_LOCK_FREE", "moc__predefs_8h.html#a9685ff8e617f3c5892c2a6fe3484f3b7", null ], + [ "__GCC_ATOMIC_CHAR16_T_LOCK_FREE", "moc__predefs_8h.html#a7f18358ae5a65523140cb561bbeaa3a9", null ], + [ "__GCC_ATOMIC_CHAR32_T_LOCK_FREE", "moc__predefs_8h.html#a98e298953067135caf4bc0b8e8e7cd01", null ], + [ "__GCC_ATOMIC_CHAR_LOCK_FREE", "moc__predefs_8h.html#a403ff8d656461ff5a083fb47f73c7da3", null ], + [ "__GCC_ATOMIC_INT_LOCK_FREE", "moc__predefs_8h.html#ab6ba7de2838beb20b1eaca71c062c8e2", null ], + [ "__GCC_ATOMIC_LLONG_LOCK_FREE", "moc__predefs_8h.html#afb3458ec122d5fb5304b68bc48184e4e", null ], + [ "__GCC_ATOMIC_LONG_LOCK_FREE", "moc__predefs_8h.html#af6547beba0a34ed6bd6453f1220a97ca", null ], + [ "__GCC_ATOMIC_POINTER_LOCK_FREE", "moc__predefs_8h.html#aa808bc3159395526ac0c07d36b87dec1", null ], + [ "__GCC_ATOMIC_SHORT_LOCK_FREE", "moc__predefs_8h.html#a889943b266851fe7e9cdac86795507aa", null ], + [ "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL", "moc__predefs_8h.html#a035c056d72e677daa49cc2c7dbeed083", null ], + [ "__GCC_ATOMIC_WCHAR_T_LOCK_FREE", "moc__predefs_8h.html#a775d1a831fa88d8c38c76d31947a8ebf", null ], + [ "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4", "moc__predefs_8h.html#a6310789290c9c5717826b56443ce69ec", null ], + [ "__GCC_IEC_559", "moc__predefs_8h.html#a0a3bd26d0b040f0781a238e4aedd3dbe", null ], + [ "__GCC_IEC_559_COMPLEX", "moc__predefs_8h.html#a779a207685ad2b8ca4cdab02ece517eb", null ], + [ "__gnu_linux__", "moc__predefs_8h.html#a51b087854dc3c2f76946efb432745639", null ], + [ "__GNUC__", "moc__predefs_8h.html#aa51016843ec55a0a9df7ce9f85767ee7", null ], + [ "__GNUC_MINOR__", "moc__predefs_8h.html#a0b8ad52bece225cdae9c1b46c91c62a5", null ], + [ "__GNUC_PATCHLEVEL__", "moc__predefs_8h.html#ad149c0565fcf669b23f483e5b7f80dbd", null ], + [ "__GNUC_STDC_INLINE__", "moc__predefs_8h.html#ad22737f11009b4bf60ba233eee7420dd", null ], + [ "__GNUG__", "moc__predefs_8h.html#ae7afb460abc6122c6a5f206d78bcae4e", null ], + [ "__GXX_ABI_VERSION", "moc__predefs_8h.html#aee5d0901405056d87e3bd47fee83128d", null ], + [ "__GXX_EXPERIMENTAL_CXX0X__", "moc__predefs_8h.html#a213133a8dca206becf88c2e3523b124a", null ], + [ "__GXX_RTTI", "moc__predefs_8h.html#af607715c8c9a98aa72c81c6629554b0d", null ], + [ "__GXX_TYPEINFO_EQUALITY_INLINE", "moc__predefs_8h.html#a2ae3844702146748bf36d5bd47bad430", null ], + [ "__GXX_WEAK__", "moc__predefs_8h.html#afb5a2a4891df4551832357e97c6c3c59", null ], + [ "__HA_FBIT__", "moc__predefs_8h.html#ab28d96afaf0737e4f3a51adac109fb36", null ], + [ "__HA_IBIT__", "moc__predefs_8h.html#a907d418d5ddc748993dbba5c01a0f5ec", null ], + [ "__has_include", "moc__predefs_8h.html#a1c6886956b05c16006d924f77a868410", null ], + [ "__has_include_next", "moc__predefs_8h.html#a370369ba2463363de726ff9394861a2b", null ], + [ "__HQ_FBIT__", "moc__predefs_8h.html#a2e0aea8ca4d93daf04d3a96b3c53e93a", null ], + [ "__HQ_IBIT__", "moc__predefs_8h.html#a517db8faae01669f8cef916eae3ac205", null ], + [ "__INT16_C", "moc__predefs_8h.html#acefa39ff476ff22ce343809fff1e8bc1", null ], + [ "__INT16_MAX__", "moc__predefs_8h.html#afc45bfe4241907d615bb96ed6f4fd142", null ], + [ "__INT16_TYPE__", "moc__predefs_8h.html#a6770e92cfa87964cfcf358a6358f5347", null ], + [ "__INT32_C", "moc__predefs_8h.html#a3ef70e13cfbe3264fe0b212f8f46d76c", null ], + [ "__INT32_MAX__", "moc__predefs_8h.html#abf681096fa9e21512a3fe83f0dcfdb36", null ], + [ "__INT32_TYPE__", "moc__predefs_8h.html#a72f76585ea7d1131d4e9be0110fb0ec3", null ], + [ "__INT64_C", "moc__predefs_8h.html#a4b8971e411b88166747d2a3c2425eaee", null ], + [ "__INT64_MAX__", "moc__predefs_8h.html#aa3f186f612efe5edfcc371c95617f06f", null ], + [ "__INT64_TYPE__", "moc__predefs_8h.html#a690dd4c0c7711687e30418f5e988d842", null ], + [ "__INT8_C", "moc__predefs_8h.html#ad36bc14a0433c9f88496bed4ccbd65a3", null ], + [ "__INT8_MAX__", "moc__predefs_8h.html#a326c37ba86474b37dd0ae9100e005fac", null ], + [ "__INT8_TYPE__", "moc__predefs_8h.html#ae9a1914a564951612704f3f6630663f3", null ], + [ "__INT_FAST16_MAX__", "moc__predefs_8h.html#ad4f33e46b6c0be1a2bbd83f3efe19165", null ], + [ "__INT_FAST16_TYPE__", "moc__predefs_8h.html#a6a4d11835d03027f3929b84fe7b55bf6", null ], + [ "__INT_FAST16_WIDTH__", "moc__predefs_8h.html#a65ff7d0e95dab0167cbd46d117cfa74a", null ], + [ "__INT_FAST32_MAX__", "moc__predefs_8h.html#a84479d2bbe1d7286f406fcc302f41376", null ], + [ "__INT_FAST32_TYPE__", "moc__predefs_8h.html#a4e1f76417ed810f038c277a5aba691fa", null ], + [ "__INT_FAST32_WIDTH__", "moc__predefs_8h.html#a7df1cb434b3b8baae4bf6053cb2a3a4a", null ], + [ "__INT_FAST64_MAX__", "moc__predefs_8h.html#af456a5199e68c3ff20996a5bdf9b4691", null ], + [ "__INT_FAST64_TYPE__", "moc__predefs_8h.html#a65967d857259eb36c9546a512f2ab4b5", null ], + [ "__INT_FAST64_WIDTH__", "moc__predefs_8h.html#ad4fca572f500aba76348d0942a2c5827", null ], + [ "__INT_FAST8_MAX__", "moc__predefs_8h.html#ab11d0b7a18b7d57dff361c0848f28e09", null ], + [ "__INT_FAST8_TYPE__", "moc__predefs_8h.html#a3783fd947621ab5304708e78da5bd6d3", null ], + [ "__INT_FAST8_WIDTH__", "moc__predefs_8h.html#afb1605528772a5b37f1235cb1b7cf5ca", null ], + [ "__INT_LEAST16_MAX__", "moc__predefs_8h.html#a4f3694eafdad4edb2bfe114a06553dec", null ], + [ "__INT_LEAST16_TYPE__", "moc__predefs_8h.html#a6f2032bd7e6248b526a2c13e37c7b972", null ], + [ "__INT_LEAST16_WIDTH__", "moc__predefs_8h.html#a6091ba87f9a538a9685b7997a64a64db", null ], + [ "__INT_LEAST32_MAX__", "moc__predefs_8h.html#a97e13c059a63d2d547cc4a9f386641d2", null ], + [ "__INT_LEAST32_TYPE__", "moc__predefs_8h.html#a401f5f43b9e96d82152bf7cec0be6dfd", null ], + [ "__INT_LEAST32_WIDTH__", "moc__predefs_8h.html#a0a54ad5275069482576a8e26197c01db", null ], + [ "__INT_LEAST64_MAX__", "moc__predefs_8h.html#ac8ff7f5492853e7e2fa19ebb2b98c9bc", null ], + [ "__INT_LEAST64_TYPE__", "moc__predefs_8h.html#aadf1477c4b8076c939fb4fdeca6f4b8e", null ], + [ "__INT_LEAST64_WIDTH__", "moc__predefs_8h.html#a83a4ddd79aaf0dd95eaa234e59cec667", null ], + [ "__INT_LEAST8_MAX__", "moc__predefs_8h.html#adc1ccadf1d98117e586324ccb189c09f", null ], + [ "__INT_LEAST8_TYPE__", "moc__predefs_8h.html#a1801bfbb7ab3b0ff09a48c3d78bd97e2", null ], + [ "__INT_LEAST8_WIDTH__", "moc__predefs_8h.html#a967b4ada96d28b97bc07e26e1def8e66", null ], + [ "__INT_MAX__", "moc__predefs_8h.html#a20fcee7a683d69340d8c3d126e5a7f12", null ], + [ "__INT_WIDTH__", "moc__predefs_8h.html#ad3907b8d9bb2265255e6e0d66d91d165", null ], + [ "__INTMAX_C", "moc__predefs_8h.html#adb0d09cff489746c5456407aa832fced", null ], + [ "__INTMAX_MAX__", "moc__predefs_8h.html#a6977858c9aa6bb2c67f524a948fc8062", null ], + [ "__INTMAX_TYPE__", "moc__predefs_8h.html#ad3062ff83239e8dd2b8969a2f368d608", null ], + [ "__INTMAX_WIDTH__", "moc__predefs_8h.html#a4e8a5398566f8b2666a8a71b2dbcf3ca", null ], + [ "__INTPTR_MAX__", "moc__predefs_8h.html#ae19860f43757eb1fc151b38cb3bbc278", null ], + [ "__INTPTR_TYPE__", "moc__predefs_8h.html#a4ca36196b9f45fa67a0b23c43c658aa1", null ], + [ "__INTPTR_WIDTH__", "moc__predefs_8h.html#a8394afe92148ddbdf0e0697978cd1382", null ], + [ "__LACCUM_EPSILON__", "moc__predefs_8h.html#a85eba162e856268c269aac352454431f", null ], + [ "__LACCUM_FBIT__", "moc__predefs_8h.html#a6b035b68b018afe25e07f3cb23a8f921", null ], + [ "__LACCUM_IBIT__", "moc__predefs_8h.html#aad3d364f6a93a9d5848f06f5172561c1", null ], + [ "__LACCUM_MAX__", "moc__predefs_8h.html#a2436bf06d7aad40fa2c53025c1010bf0", null ], + [ "__LACCUM_MIN__", "moc__predefs_8h.html#a3996b66e851f8b7d95267629346f3e8b", null ], + [ "__LDBL_DECIMAL_DIG__", "moc__predefs_8h.html#acff705a6de0de8303f2394603bbcdb90", null ], + [ "__LDBL_DENORM_MIN__", "moc__predefs_8h.html#a5436993e3c0ddb7caee4b9b01021cde4", null ], + [ "__LDBL_DIG__", "moc__predefs_8h.html#a3aa761811887b1634bfca566fa671424", null ], + [ "__LDBL_EPSILON__", "moc__predefs_8h.html#ad7a5615aea1516ee885112456cf695e8", null ], + [ "__LDBL_HAS_DENORM__", "moc__predefs_8h.html#a3c7f3130e367d47bcc27a0a41278155e", null ], + [ "__LDBL_HAS_INFINITY__", "moc__predefs_8h.html#a87140cc80075e8907e7bbfd910c5642a", null ], + [ "__LDBL_HAS_QUIET_NAN__", "moc__predefs_8h.html#a10a15ae17c3b791fe9b9721965ebfee4", null ], + [ "__LDBL_MANT_DIG__", "moc__predefs_8h.html#a3c8df97b7413f417379377b604d060f5", null ], + [ "__LDBL_MAX_10_EXP__", "moc__predefs_8h.html#afc6ac46966747a9423f4a6bb3af94b55", null ], + [ "__LDBL_MAX__", "moc__predefs_8h.html#a06fd91f0507a4f364e469c8055f4265a", null ], + [ "__LDBL_MAX_EXP__", "moc__predefs_8h.html#ae221a8e373285cf10c22926762f477f5", null ], + [ "__LDBL_MIN_10_EXP__", "moc__predefs_8h.html#aa0d249d82751bd4ee0280990bc510371", null ], + [ "__LDBL_MIN__", "moc__predefs_8h.html#ab572f59c4b0c5a1f4c2953f38a76d7b3", null ], + [ "__LDBL_MIN_EXP__", "moc__predefs_8h.html#ac3707c00cdbb574b68fd6263ac4d0407", null ], + [ "__LFRACT_EPSILON__", "moc__predefs_8h.html#a78b7e10394762d719fec9a3e07b33ee2", null ], + [ "__LFRACT_FBIT__", "moc__predefs_8h.html#ab743789ae83a7a7f61c5b96506f48ca9", null ], + [ "__LFRACT_IBIT__", "moc__predefs_8h.html#ac5a018e839dcea88e74e3b8eeac9487c", null ], + [ "__LFRACT_MAX__", "moc__predefs_8h.html#abb5859eb17652f35bc56f2ca26b3089b", null ], + [ "__LFRACT_MIN__", "moc__predefs_8h.html#aa7d8d0b2cda49359adbabb6e843e8700", null ], + [ "__linux", "moc__predefs_8h.html#a6c6342c53a7213211680dc5caae14491", null ], + [ "__linux__", "moc__predefs_8h.html#a1b27e3508a4c1e97875297882a95f503", null ], + [ "__LLACCUM_EPSILON__", "moc__predefs_8h.html#ae837c7430442b5c7c3a0c70d0c611473", null ], + [ "__LLACCUM_FBIT__", "moc__predefs_8h.html#afbcfe5556dc1a9bc0394277eb8e73e2c", null ], + [ "__LLACCUM_IBIT__", "moc__predefs_8h.html#a0405f081746b177320ab17d332a0c938", null ], + [ "__LLACCUM_MAX__", "moc__predefs_8h.html#af3bb5b9901f76155066c0d6806faef29", null ], + [ "__LLACCUM_MIN__", "moc__predefs_8h.html#aa37bd83c4330ad1020cf1bbdc89070b6", null ], + [ "__LLFRACT_EPSILON__", "moc__predefs_8h.html#a17d5e6eddd99e8cd1695d187ad4f0d56", null ], + [ "__LLFRACT_FBIT__", "moc__predefs_8h.html#aacea0bba92648df736365a17a1110106", null ], + [ "__LLFRACT_IBIT__", "moc__predefs_8h.html#ad3547f2b474d73b357d9b760b3e7f34c", null ], + [ "__LLFRACT_MAX__", "moc__predefs_8h.html#ab2242f19b1253ebe1f471fc61c5359c5", null ], + [ "__LLFRACT_MIN__", "moc__predefs_8h.html#aab9c2d1e67d0bd49261c9b5b0d20ce20", null ], + [ "__LONG_LONG_MAX__", "moc__predefs_8h.html#a9bed0d0b1893211f857ad76d6728ea7e", null ], + [ "__LONG_LONG_WIDTH__", "moc__predefs_8h.html#a895181efde95bdfb3489ba3018c48582", null ], + [ "__LONG_MAX__", "moc__predefs_8h.html#af16678d7537c7a5463c807639fe2f635", null ], + [ "__LONG_WIDTH__", "moc__predefs_8h.html#a136189a915ba49e719dcffbeba8412fd", null ], + [ "__NO_INLINE__", "moc__predefs_8h.html#a7a76473a66d022aee2c9f661405d8fbb", null ], + [ "__ORDER_BIG_ENDIAN__", "moc__predefs_8h.html#a190d0219caabccc0e05909f39bcb00d6", null ], + [ "__ORDER_LITTLE_ENDIAN__", "moc__predefs_8h.html#a2b695357ce4b46971d54e8e9dfe5724f", null ], + [ "__ORDER_PDP_ENDIAN__", "moc__predefs_8h.html#a94ead674b2441dc29dbd5d6aba467197", null ], + [ "__PRAGMA_REDEFINE_EXTNAME", "moc__predefs_8h.html#a165bf2f00e518485a1bb58c1918205b0", null ], + [ "__PTRDIFF_MAX__", "moc__predefs_8h.html#ac29c76a6702808cfc4a5f661d0d33c2c", null ], + [ "__PTRDIFF_TYPE__", "moc__predefs_8h.html#a726a020189392103a9404da070536e07", null ], + [ "__PTRDIFF_WIDTH__", "moc__predefs_8h.html#a96b511bfa61e4203ec3668fb39063309", null ], + [ "__QQ_FBIT__", "moc__predefs_8h.html#add9f144f6de9798bb441768f7cee1072", null ], + [ "__QQ_IBIT__", "moc__predefs_8h.html#a7fd10bda3bcfa8ce29c11ee095b31d36", null ], + [ "__REGISTER_PREFIX__", "moc__predefs_8h.html#a08d4062230ffc8494f4be4f6447497e4", null ], + [ "__SA_FBIT__", "moc__predefs_8h.html#a5e3e28499ef95cba518ac1a961dc2a76", null ], + [ "__SA_IBIT__", "moc__predefs_8h.html#a750a955b52ac9b7534167fac1d661347", null ], + [ "__SACCUM_EPSILON__", "moc__predefs_8h.html#af6f23847c608c91b62a3f7107a0015fe", null ], + [ "__SACCUM_FBIT__", "moc__predefs_8h.html#a513fb8de806bb8fa1da2271c2872baad", null ], + [ "__SACCUM_IBIT__", "moc__predefs_8h.html#a89ba5dc332ccdea517a33b5e81488f2e", null ], + [ "__SACCUM_MAX__", "moc__predefs_8h.html#a6690459ee522ac8463747b0ba7008596", null ], + [ "__SACCUM_MIN__", "moc__predefs_8h.html#a9c0d95d87e68f1037aeb6c38a3660712", null ], + [ "__SCHAR_MAX__", "moc__predefs_8h.html#a87b7ceac2198cab045e40c9a64b11679", null ], + [ "__SCHAR_WIDTH__", "moc__predefs_8h.html#a5a949d2ee22a649377e5bec02e3e5855", null ], + [ "__SFRACT_EPSILON__", "moc__predefs_8h.html#ab6f53c3751a12ac217f61873403a18bb", null ], + [ "__SFRACT_FBIT__", "moc__predefs_8h.html#a859ac49b336ef5ee25b734a48f911a15", null ], + [ "__SFRACT_IBIT__", "moc__predefs_8h.html#a6e46fffd230d19a658f6235169cc4bd5", null ], + [ "__SFRACT_MAX__", "moc__predefs_8h.html#abe904f812f7ddc9a264214f2ba613304", null ], + [ "__SFRACT_MIN__", "moc__predefs_8h.html#ab6d1db3f1e2c31e9952384f079b110b1", null ], + [ "__SHRT_MAX__", "moc__predefs_8h.html#a4f69990d03f9fb0c390a6fbad28a737b", null ], + [ "__SHRT_WIDTH__", "moc__predefs_8h.html#aeb2d8312284d49b1e44c7d003bd8b54b", null ], + [ "__SIG_ATOMIC_MAX__", "moc__predefs_8h.html#a9e75b72378b039587e4fc4006776826d", null ], + [ "__SIG_ATOMIC_MIN__", "moc__predefs_8h.html#aa39266a3f430ebcd4a4374e7a815e23f", null ], + [ "__SIG_ATOMIC_TYPE__", "moc__predefs_8h.html#ac60fe3845f87fdaf6365a733ede87cfe", null ], + [ "__SIG_ATOMIC_WIDTH__", "moc__predefs_8h.html#a768834e55cd5d1c30d24b0dbc83563cc", null ], + [ "__SIZE_MAX__", "moc__predefs_8h.html#a66fbb70a69c9f66830f95a20e46091a6", null ], + [ "__SIZE_TYPE__", "moc__predefs_8h.html#ab8d03bfd9e9120480015fc51dc8b8e65", null ], + [ "__SIZE_WIDTH__", "moc__predefs_8h.html#a9eb6044e34be0d38146a2dadec14ecb2", null ], + [ "__SIZEOF_DOUBLE__", "moc__predefs_8h.html#a6a0b73b50b59fa18dbcea5b6dee0899f", null ], + [ "__SIZEOF_FLOAT__", "moc__predefs_8h.html#a4bd7bc94412d84b84388c574770b4549", null ], + [ "__SIZEOF_INT__", "moc__predefs_8h.html#a4b2be09502f3fe1cd13838c6761803b3", null ], + [ "__SIZEOF_LONG__", "moc__predefs_8h.html#aaa8084a56e3732008acafea8fd15eb2f", null ], + [ "__SIZEOF_LONG_DOUBLE__", "moc__predefs_8h.html#aae92712264b830cd7d24d4b81d502ffb", null ], + [ "__SIZEOF_LONG_LONG__", "moc__predefs_8h.html#a68e0683c8f359f7d7e013706fbcc2040", null ], + [ "__SIZEOF_POINTER__", "moc__predefs_8h.html#a8bd657ce95940b7c6087cf5aa54d5280", null ], + [ "__SIZEOF_PTRDIFF_T__", "moc__predefs_8h.html#a2c1c95a99789b8c9721e896c48257f53", null ], + [ "__SIZEOF_SHORT__", "moc__predefs_8h.html#ae9ea889821e3c2486a7435a83a309e80", null ], + [ "__SIZEOF_SIZE_T__", "moc__predefs_8h.html#ab6eb3d66486ef05ac7f1d489bfc675b4", null ], + [ "__SIZEOF_WCHAR_T__", "moc__predefs_8h.html#a5cc6a3e1680136db2b5e60c2fb703d99", null ], + [ "__SIZEOF_WINT_T__", "moc__predefs_8h.html#a808f04c28bb0ef2d6b77dd66564ad351", null ], + [ "__SQ_FBIT__", "moc__predefs_8h.html#aee50c1cb4fcde0770a78626b34c060b3", null ], + [ "__SQ_IBIT__", "moc__predefs_8h.html#aba0020f767139d4cafb9f52eb252e247", null ], + [ "__STDC__", "moc__predefs_8h.html#a8bdd19cad331a646ae8375be00e34cb3", null ], + [ "__STDC_HOSTED__", "moc__predefs_8h.html#a309fa84aefd09132258bbe21c20ef7d4", null ], + [ "__STDC_IEC_559__", "moc__predefs_8h.html#ab7d84ba8d87b8bb40aa752334bb51b23", null ], + [ "__STDC_IEC_559_COMPLEX__", "moc__predefs_8h.html#a7b5b9dc07de6dd5c39c59b0ac260f943", null ], + [ "__STDC_ISO_10646__", "moc__predefs_8h.html#acb6063ed9d8841cf71c93f2bf34832e0", null ], + [ "__STDC_UTF_16__", "moc__predefs_8h.html#a93a5a9d251e5bff3c2a130627f20e782", null ], + [ "__STDC_UTF_32__", "moc__predefs_8h.html#a78e2494c8fce0c7ec9f62865340d6abf", null ], + [ "__TA_FBIT__", "moc__predefs_8h.html#ab355da8484a60237cfbe45d368b6bc40", null ], + [ "__TA_IBIT__", "moc__predefs_8h.html#affe15bf30b6d0b0f6f5c9875def650cc", null ], + [ "__THUMB_INTERWORK__", "moc__predefs_8h.html#a5aa890f05b3876c70af76a6e5a8e910a", null ], + [ "__TQ_FBIT__", "moc__predefs_8h.html#af9e75bdb453ccee520f6605d9987d439", null ], + [ "__TQ_IBIT__", "moc__predefs_8h.html#af20ff0bde5be8363438497453b001032", null ], + [ "__UACCUM_EPSILON__", "moc__predefs_8h.html#a4d7a4d071e8a85bb41ca9c2bc7f9a5a5", null ], + [ "__UACCUM_FBIT__", "moc__predefs_8h.html#acb7bbc60a8f2b4dbcff77f7c75fd6acc", null ], + [ "__UACCUM_IBIT__", "moc__predefs_8h.html#a789bbc3047d2fcfc083a9c51a1e8686d", null ], + [ "__UACCUM_MAX__", "moc__predefs_8h.html#a4aa9e67eb1c2cdfe7fa3321583b16e41", null ], + [ "__UACCUM_MIN__", "moc__predefs_8h.html#aa521e9309218b6b61261318bd5feeb81", null ], + [ "__UDA_FBIT__", "moc__predefs_8h.html#a631e7073725dcc54f650b72c617f36ed", null ], + [ "__UDA_IBIT__", "moc__predefs_8h.html#ad31fa73585e8346393917225871cbc0b", null ], + [ "__UDQ_FBIT__", "moc__predefs_8h.html#a77d82789abb2c1a3dccc47afd5b2edb9", null ], + [ "__UDQ_IBIT__", "moc__predefs_8h.html#a0e2a62089d7d3423f98b5b4fb687e6ce", null ], + [ "__UFRACT_EPSILON__", "moc__predefs_8h.html#a30abb5bd7d89e9e8c19677795db387c8", null ], + [ "__UFRACT_FBIT__", "moc__predefs_8h.html#a7756c51be09258757005877d08688a05", null ], + [ "__UFRACT_IBIT__", "moc__predefs_8h.html#af2d4c34845fa216caacce1a7a9b8738f", null ], + [ "__UFRACT_MAX__", "moc__predefs_8h.html#a856de0bd8deb7e6ddd55e6e961cae874", null ], + [ "__UFRACT_MIN__", "moc__predefs_8h.html#af7d6c71ef780b40ddc515c776df7715b", null ], + [ "__UHA_FBIT__", "moc__predefs_8h.html#a6b0e96965a1a25948b8e0e555a459032", null ], + [ "__UHA_IBIT__", "moc__predefs_8h.html#a9097ba1748883030bc82602933e6be1d", null ], + [ "__UHQ_FBIT__", "moc__predefs_8h.html#a45bfb898fee6977940d398ec0cd0d570", null ], + [ "__UHQ_IBIT__", "moc__predefs_8h.html#a7102286d09cb4948865f4effecc55941", null ], + [ "__UINT16_C", "moc__predefs_8h.html#aa860a111dcff819d3502dda14f8ac778", null ], + [ "__UINT16_MAX__", "moc__predefs_8h.html#a17f94731962876cdac979ae093f52605", null ], + [ "__UINT16_TYPE__", "moc__predefs_8h.html#a4c0e7daf2ae663a4f96693468bbb279f", null ], + [ "__UINT32_C", "moc__predefs_8h.html#a8cc5a4a43af8f7568a450cad0e7d5bd8", null ], + [ "__UINT32_MAX__", "moc__predefs_8h.html#ab4425dccbcddb2363a2a8a67367a5b42", null ], + [ "__UINT32_TYPE__", "moc__predefs_8h.html#af4eb6c3c4da52a7fe202626ac4dc360e", null ], + [ "__UINT64_C", "moc__predefs_8h.html#a405cee4934ed56c9a4aa4e7dc4380bd2", null ], + [ "__UINT64_MAX__", "moc__predefs_8h.html#a9f8e418d5a6f916ffe36f250fb99d7bc", null ], + [ "__UINT64_TYPE__", "moc__predefs_8h.html#aef86f5642c3dce887635c9fc632baf34", null ], + [ "__UINT8_C", "moc__predefs_8h.html#a23cc29e487b9acd9261adc6c71c1ff0e", null ], + [ "__UINT8_MAX__", "moc__predefs_8h.html#afd12ac7489bdbbed7fa3cc51023b8f73", null ], + [ "__UINT8_TYPE__", "moc__predefs_8h.html#a0f22edb92c4da8029783c424962ac30d", null ], + [ "__UINT_FAST16_MAX__", "moc__predefs_8h.html#a5db559b8fe7a2135f05686e92ce64d9d", null ], + [ "__UINT_FAST16_TYPE__", "moc__predefs_8h.html#a5aed2c2843dad661012dac2d465f89e1", null ], + [ "__UINT_FAST32_MAX__", "moc__predefs_8h.html#a61e63cea5ac78bcf0d282b70d63668e1", null ], + [ "__UINT_FAST32_TYPE__", "moc__predefs_8h.html#a0746bdc61f4500f26c2b7408814ebfcf", null ], + [ "__UINT_FAST64_MAX__", "moc__predefs_8h.html#a17a1ff08595cf7e0c9d1f162b727ccb6", null ], + [ "__UINT_FAST64_TYPE__", "moc__predefs_8h.html#a3877156c4b30153ae764b0dad8d8130a", null ], + [ "__UINT_FAST8_MAX__", "moc__predefs_8h.html#a27b5eb7cfda61c7f1baeb4d95f3052bb", null ], + [ "__UINT_FAST8_TYPE__", "moc__predefs_8h.html#a8cf0f2397b96d2a198ff932dbfa50344", null ], + [ "__UINT_LEAST16_MAX__", "moc__predefs_8h.html#a6a762b969d5eea9e6a8db715a5f5a1a9", null ], + [ "__UINT_LEAST16_TYPE__", "moc__predefs_8h.html#a64a27148d4e67c4ae167442c7dc92a0a", null ], + [ "__UINT_LEAST32_MAX__", "moc__predefs_8h.html#a281ab632befbb2d5567ff114e2fa18f9", null ], + [ "__UINT_LEAST32_TYPE__", "moc__predefs_8h.html#a76363f8817bf3df4542ebbcce172df53", null ], + [ "__UINT_LEAST64_MAX__", "moc__predefs_8h.html#a4bf843ffcadf9b162b74c1b7e546e8e9", null ], + [ "__UINT_LEAST64_TYPE__", "moc__predefs_8h.html#a306a0b7c6f110b24a77083abaf3acc7a", null ], + [ "__UINT_LEAST8_MAX__", "moc__predefs_8h.html#aaf06a1464d33431377a2ee5293ec70d2", null ], + [ "__UINT_LEAST8_TYPE__", "moc__predefs_8h.html#a5a8c0a31337df765b55c6260ef58e51e", null ], + [ "__UINTMAX_C", "moc__predefs_8h.html#aee4eb3a89493f1c9251a5a52f700f21d", null ], + [ "__UINTMAX_MAX__", "moc__predefs_8h.html#a36b3a5bf25feeef4fbdca37900522f3c", null ], + [ "__UINTMAX_TYPE__", "moc__predefs_8h.html#ab86380373ae9fa385c8a2464023774a8", null ], + [ "__UINTPTR_MAX__", "moc__predefs_8h.html#a1a2ed956349884193c07233d3cc40560", null ], + [ "__UINTPTR_TYPE__", "moc__predefs_8h.html#a1c54273d3f148c51ad48fd738d1e6cbe", null ], + [ "__ULACCUM_EPSILON__", "moc__predefs_8h.html#adfa534bdf20d21aed237e9d5644b9e1f", null ], + [ "__ULACCUM_FBIT__", "moc__predefs_8h.html#a7a8061fb04ad84cbc82738ee7fbff629", null ], + [ "__ULACCUM_IBIT__", "moc__predefs_8h.html#a892f356bce3091ffb2e87dfb778683d3", null ], + [ "__ULACCUM_MAX__", "moc__predefs_8h.html#a7415922e4243d2508114a0379bce6374", null ], + [ "__ULACCUM_MIN__", "moc__predefs_8h.html#a568e1d447594c30f8cc3c33d62f1cb1e", null ], + [ "__ULFRACT_EPSILON__", "moc__predefs_8h.html#a33713305051e7cb497b5e2c924bae95e", null ], + [ "__ULFRACT_FBIT__", "moc__predefs_8h.html#a6f68e07fad7d8b624f820fc49e241dc2", null ], + [ "__ULFRACT_IBIT__", "moc__predefs_8h.html#af8e59e7de3edb4ca738679e044cc2b81", null ], + [ "__ULFRACT_MAX__", "moc__predefs_8h.html#aa54b83195a30e6beb98ad62a6a89e075", null ], + [ "__ULFRACT_MIN__", "moc__predefs_8h.html#abfd50dcd2ef551246269f303d99fd662", null ], + [ "__ULLACCUM_EPSILON__", "moc__predefs_8h.html#a91c02999719803565cefadb731a2a668", null ], + [ "__ULLACCUM_FBIT__", "moc__predefs_8h.html#aa476e815f1590ede136d92b09f760581", null ], + [ "__ULLACCUM_IBIT__", "moc__predefs_8h.html#a01c49eec2e7d5b02de85da36904eac4e", null ], + [ "__ULLACCUM_MAX__", "moc__predefs_8h.html#a0b6b145385f61e8dc93f0df6933aa489", null ], + [ "__ULLACCUM_MIN__", "moc__predefs_8h.html#a186ffad79fee26491fa5b4ac6124cd6f", null ], + [ "__ULLFRACT_EPSILON__", "moc__predefs_8h.html#a8755bcd8eb888d4c837999718b8e0b18", null ], + [ "__ULLFRACT_FBIT__", "moc__predefs_8h.html#ac987d32df85aebd4b7c6b0b0cc7fac15", null ], + [ "__ULLFRACT_IBIT__", "moc__predefs_8h.html#a2f23cce03c4b945e41cdf7fc2df8aca4", null ], + [ "__ULLFRACT_MAX__", "moc__predefs_8h.html#a2a69c1193c6d41bff15b920fbfa5a867", null ], + [ "__ULLFRACT_MIN__", "moc__predefs_8h.html#ae29642406cfa11e91a88203861adc92c", null ], + [ "__unix", "moc__predefs_8h.html#ac3cd8b035cfb8a68f6d1119ace36f1cc", null ], + [ "__unix__", "moc__predefs_8h.html#aa5be39d362c571d48d6236f0bd58f1fc", null ], + [ "__UQQ_FBIT__", "moc__predefs_8h.html#ae769d68160432410a4d6700acb5051de", null ], + [ "__UQQ_IBIT__", "moc__predefs_8h.html#ac8770dbc2da017dd63e1a44fc07d248f", null ], + [ "__USA_FBIT__", "moc__predefs_8h.html#acdef6e7c9f7d4096d19aa387abc0a045", null ], + [ "__USA_IBIT__", "moc__predefs_8h.html#a5b7b699f70c2278374328a3933389c8b", null ], + [ "__USACCUM_EPSILON__", "moc__predefs_8h.html#afcdca48368232fed3dceacc5716f007c", null ], + [ "__USACCUM_FBIT__", "moc__predefs_8h.html#a30b5a905003a2c748fdb277e1eb61134", null ], + [ "__USACCUM_IBIT__", "moc__predefs_8h.html#aaf5d84a69adea71f50f8007fabde7ffb", null ], + [ "__USACCUM_MAX__", "moc__predefs_8h.html#a2bff327f9a0dd209c33e89161cfa75db", null ], + [ "__USACCUM_MIN__", "moc__predefs_8h.html#a48177288d9ba19526ddfa87071d2c735", null ], + [ "__USER_LABEL_PREFIX__", "moc__predefs_8h.html#aff6bf0ff0fa3b5cbd23a8ae1131c87a9", null ], + [ "__USFRACT_EPSILON__", "moc__predefs_8h.html#a0bb1e0beafad50453605ea11eb49e0e9", null ], + [ "__USFRACT_FBIT__", "moc__predefs_8h.html#ab97fb376186e27dd069f91fdb8944c45", null ], + [ "__USFRACT_IBIT__", "moc__predefs_8h.html#aff6e8fba11120740e9b9905d908e5810", null ], + [ "__USFRACT_MAX__", "moc__predefs_8h.html#a12a7c3c43c7075b2524bcff787860afd", null ], + [ "__USFRACT_MIN__", "moc__predefs_8h.html#a18722e43595ceec21ac010aac3cdd70f", null ], + [ "__USQ_FBIT__", "moc__predefs_8h.html#aa4c8d3109d01e6ec62924594f73ffbf4", null ], + [ "__USQ_IBIT__", "moc__predefs_8h.html#a81eca8959b61c7e2abc29a2c24af02bc", null ], + [ "__UTA_FBIT__", "moc__predefs_8h.html#ad739d1e4f2c7c3928ac586e8d37da3d2", null ], + [ "__UTA_IBIT__", "moc__predefs_8h.html#af63dc9fba4fe0505ab0807df57e51020", null ], + [ "__UTQ_FBIT__", "moc__predefs_8h.html#ad61e6ae874c4687f0c2d31ae1095a110", null ], + [ "__UTQ_IBIT__", "moc__predefs_8h.html#acc7db708461d0efef423bc9c3aa645c4", null ], + [ "__VERSION__", "moc__predefs_8h.html#a5b753f1dbbed79a7126b24ca512246d5", null ], + [ "__VFP_FP__", "moc__predefs_8h.html#a430c761265b6ca716c3686bad5c43f45", null ], + [ "__WCHAR_MAX__", "moc__predefs_8h.html#a65ac8cd0434319a3a31dc031409c218a", null ], + [ "__WCHAR_MIN__", "moc__predefs_8h.html#a01b915d3ec5439de746f1d5e9f76dc3d", null ], + [ "__WCHAR_TYPE__", "moc__predefs_8h.html#a4f41dbe213ea9662c1fb0f5af562e363", null ], + [ "__WCHAR_UNSIGNED__", "moc__predefs_8h.html#ac4ca588ceb885c4ec2579b162934241d", null ], + [ "__WCHAR_WIDTH__", "moc__predefs_8h.html#aba008af276ac0e3f85d1479af98f62b0", null ], + [ "__WINT_MAX__", "moc__predefs_8h.html#a8925e15bce319fa2f42c659f6a3e0199", null ], + [ "__WINT_MIN__", "moc__predefs_8h.html#a135696718aa5b38e58be73aaece6654f", null ], + [ "__WINT_TYPE__", "moc__predefs_8h.html#a1304d54dba90274495e0b09c9820927b", null ], + [ "__WINT_WIDTH__", "moc__predefs_8h.html#a5fa28f9bc424c535269b607039836f19", null ], + [ "_GNU_SOURCE", "moc__predefs_8h.html#a369266c24eacffb87046522897a570d5", null ], + [ "_STDC_PREDEF_H", "moc__predefs_8h.html#a198efb9bd9b8de1c44f470b6c6ddf69d", null ], + [ "ABI_ID", "moc__predefs_8h.html#a12ae39ceaadaa474ba09d20fba083f68", null ], + [ "linux", "moc__predefs_8h.html#aa092b0d4c1d4d4407b97024f6cb2820c", null ], + [ "QT_CORE_LIB", "moc__predefs_8h.html#a3fdaeff4a929898125f060b951479a85", null ], + [ "QT_GUI_LIB", "moc__predefs_8h.html#a20aa38ff6d76d6980b3c6365892110f1", null ], + [ "QT_NO_DEBUG", "moc__predefs_8h.html#adf4502fefc73baefd4000330c54a52fa", null ], + [ "QT_PRINTSUPPORT_LIB", "moc__predefs_8h.html#ab0162c88021716c1e0de68c71b5b5c9c", null ], + [ "QT_WIDGETS_LIB", "moc__predefs_8h.html#a3764f041b8bf4c5ebd0bf19c071f416c", null ], + [ "SIZEOF_DPTR", "moc__predefs_8h.html#addad5b57ed33bc5c79361574d9e03c06", null ], + [ "unix", "moc__predefs_8h.html#a4e65214f450ef6326b96b52e6dd5714b", null ] +]; \ No newline at end of file diff --git a/docs/moc__predefs_8h_source.html b/docs/moc__predefs_8h_source.html new file mode 100644 index 0000000..7a36d2e --- /dev/null +++ b/docs/moc__predefs_8h_source.html @@ -0,0 +1,572 @@ + + + + + + + +DreamHacker: drmhk_autogen/moc_predefs.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    moc_predefs.h
    +
    +
    +Go to the documentation of this file.
    1 #define __DBL_MIN_EXP__ (-1021)
    +
    2 #define __HQ_FBIT__ 15
    +
    3 #define __FLT32X_MAX_EXP__ 1024
    +
    4 #define __cpp_attributes 200809
    +
    5 #define __UINT_LEAST16_MAX__ 0xffff
    +
    6 #define __ARM_SIZEOF_WCHAR_T 4
    +
    7 #define __ATOMIC_ACQUIRE 2
    +
    8 #define __SFRACT_IBIT__ 0
    +
    9 #define __FLT_MIN__ 1.1754943508222875e-38F
    +
    10 #define __GCC_IEC_559_COMPLEX 2
    +
    11 #define __cpp_aggregate_nsdmi 201304
    +
    12 #define __UFRACT_MAX__ 0XFFFFP-16UR
    +
    13 #define __UINT_LEAST8_TYPE__ unsigned char
    +
    14 #define __DQ_FBIT__ 63
    +
    15 #define __INTMAX_C(c) c ## LL
    +
    16 #define __ARM_FEATURE_SAT 1
    +
    17 #define __ULFRACT_FBIT__ 32
    +
    18 #define __SACCUM_EPSILON__ 0x1P-7HK
    +
    19 #define __CHAR_BIT__ 8
    +
    20 #define __USQ_IBIT__ 0
    +
    21 #define __UINT8_MAX__ 0xff
    +
    22 #define __ACCUM_FBIT__ 15
    +
    23 #define __WINT_MAX__ 0xffffffffU
    +
    24 #define __FLT32_MIN_EXP__ (-125)
    +
    25 #define __cpp_static_assert 200410
    +
    26 #define __USFRACT_FBIT__ 8
    +
    27 #define QT_GUI_LIB 1
    +
    28 #define __ORDER_LITTLE_ENDIAN__ 1234
    +
    29 #define __SIZE_MAX__ 0xffffffffU
    +
    30 #define __ARM_ARCH_ISA_ARM 1
    +
    31 #define __WCHAR_MAX__ 0xffffffffU
    +
    32 #define __LACCUM_IBIT__ 32
    +
    33 #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
    +
    34 #define __DBL_DENORM_MIN__ double(4.9406564584124654e-324L)
    +
    35 #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
    +
    36 #define __GCC_IEC_559 2
    +
    37 #define __FLT32X_DECIMAL_DIG__ 17
    +
    38 #define __FLT_EVAL_METHOD__ 0
    +
    39 #define __unix__ 1
    +
    40 #define __cpp_binary_literals 201304
    +
    41 #define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK
    +
    42 #define __FLT64_DECIMAL_DIG__ 17
    +
    43 #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
    +
    44 #define __FRACT_FBIT__ 15
    +
    45 #define __cpp_variadic_templates 200704
    +
    46 #define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
    +
    47 #define __SIG_ATOMIC_TYPE__ int
    +
    48 #define __UACCUM_FBIT__ 16
    +
    49 #define __DBL_MIN_10_EXP__ (-307)
    +
    50 #define __FINITE_MATH_ONLY__ 0
    +
    51 #define __ARMEL__ 1
    +
    52 #define __cpp_variable_templates 201304
    +
    53 #define __ARM_FEATURE_UNALIGNED 1
    +
    54 #define __LFRACT_IBIT__ 0
    +
    55 #define SIZEOF_DPTR (sizeof(void*))
    +
    56 #define __GNUC_PATCHLEVEL__ 0
    +
    57 #define __FLT32_HAS_DENORM__ 1
    +
    58 #define __LFRACT_MAX__ 0X7FFFFFFFP-31LR
    +
    59 #define __UINT_FAST8_MAX__ 0xff
    +
    60 #define __has_include(STR) __has_include__(STR)
    +
    61 #define __DEC64_MAX_EXP__ 385
    +
    62 #define __INT8_C(c) c
    +
    63 #define __INT_LEAST8_WIDTH__ 8
    +
    64 #define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
    +
    65 #define __SA_FBIT__ 15
    +
    66 #define __SHRT_MAX__ 0x7fff
    +
    67 #define __LDBL_MAX__ 1.7976931348623157e+308L
    +
    68 #define __FRACT_MAX__ 0X7FFFP-15R
    +
    69 #define __UFRACT_FBIT__ 16
    +
    70 #define __ARM_FP 12
    +
    71 #define QT_NO_DEBUG 1
    +
    72 #define __UFRACT_MIN__ 0.0UR
    +
    73 #define __UINT_LEAST8_MAX__ 0xff
    +
    74 #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
    +
    75 #define __UINTMAX_TYPE__ long long unsigned int
    +
    76 #define __LLFRACT_EPSILON__ 0x1P-63LLR
    +
    77 #define __linux 1
    +
    78 #define __DEC32_EPSILON__ 1E-6DF
    +
    79 #define __FLT_EVAL_METHOD_TS_18661_3__ 0
    +
    80 #define __CHAR_UNSIGNED__ 1
    +
    81 #define __UINT32_MAX__ 0xffffffffU
    +
    82 #define __GXX_EXPERIMENTAL_CXX0X__ 1
    +
    83 #define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR
    +
    84 #define __TA_IBIT__ 64
    +
    85 #define __LDBL_MAX_EXP__ 1024
    +
    86 #define __WINT_MIN__ 0U
    +
    87 #define __linux__ 1
    +
    88 #define __INT_LEAST16_WIDTH__ 16
    +
    89 #define __ULLFRACT_MIN__ 0.0ULLR
    +
    90 #define __SCHAR_MAX__ 0x7f
    +
    91 #define __WCHAR_MIN__ 0U
    +
    92 #define __INT64_C(c) c ## LL
    +
    93 #define __DBL_DIG__ 15
    +
    94 #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
    +
    95 #define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)
    +
    96 #define __SIZEOF_INT__ 4
    +
    97 #define __SIZEOF_POINTER__ 4
    +
    98 #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
    +
    99 #define __USACCUM_IBIT__ 8
    +
    100 #define __USER_LABEL_PREFIX__
    +
    101 #define __STDC_HOSTED__ 1
    +
    102 #define __LDBL_HAS_INFINITY__ 1
    +
    103 #define __LFRACT_MIN__ (-0.5LR-0.5LR)
    +
    104 #define __HA_IBIT__ 8
    +
    105 #define __FLT32_DIG__ 6
    +
    106 #define __TQ_IBIT__ 0
    +
    107 #define __FLT_EPSILON__ 1.1920928955078125e-7F
    +
    108 #define __APCS_32__ 1
    +
    109 #define __GXX_WEAK__ 1
    +
    110 #define __SHRT_WIDTH__ 16
    +
    111 #define __USFRACT_IBIT__ 0
    +
    112 #define __LDBL_MIN__ 2.2250738585072014e-308L
    +
    113 #define __FRACT_MIN__ (-0.5R-0.5R)
    +
    114 #define __DEC32_MAX__ 9.999999E96DF
    +
    115 #define __cpp_threadsafe_static_init 200806
    +
    116 #define __DA_IBIT__ 32
    +
    117 #define __ARM_SIZEOF_MINIMAL_ENUM 4
    +
    118 #define __FLT32X_HAS_INFINITY__ 1
    +
    119 #define __INT32_MAX__ 0x7fffffff
    +
    120 #define __UQQ_FBIT__ 8
    +
    121 #define __INT_WIDTH__ 32
    +
    122 #define __SIZEOF_LONG__ 4
    +
    123 #define __UACCUM_MAX__ 0XFFFFFFFFP-16UK
    +
    124 #define __STDC_IEC_559__ 1
    +
    125 #define __STDC_ISO_10646__ 201706L
    +
    126 #define __UINT16_C(c) c
    +
    127 #define __PTRDIFF_WIDTH__ 32
    +
    128 #define __DECIMAL_DIG__ 17
    +
    129 #define __LFRACT_EPSILON__ 0x1P-31LR
    +
    130 #define __FLT64_EPSILON__ 2.2204460492503131e-16F64
    +
    131 #define __ULFRACT_MIN__ 0.0ULR
    +
    132 #define __gnu_linux__ 1
    +
    133 #define __INTMAX_WIDTH__ 64
    +
    134 #define __FLT64_MIN_EXP__ (-1021)
    +
    135 #define __has_include_next(STR) __has_include_next__(STR)
    +
    136 #define __ARM_PCS_VFP 1
    +
    137 #define __LDBL_HAS_QUIET_NAN__ 1
    +
    138 #define __ULACCUM_IBIT__ 32
    +
    139 #define __FLT64_MANT_DIG__ 53
    +
    140 #define __UACCUM_EPSILON__ 0x1P-16UK
    +
    141 #define __GNUC__ 8
    +
    142 #define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK
    +
    143 #define __GXX_RTTI 1
    +
    144 #define __cpp_delegating_constructors 200604
    +
    145 #define __HQ_IBIT__ 0
    +
    146 #define __FLT_HAS_DENORM__ 1
    +
    147 #define __SIZEOF_LONG_DOUBLE__ 8
    +
    148 #define __BIGGEST_ALIGNMENT__ 8
    +
    149 #define __STDC_UTF_16__ 1
    +
    150 #define __FLT64_MAX_10_EXP__ 308
    +
    151 #define __GNUC_STDC_INLINE__ 1
    +
    152 #define __DQ_IBIT__ 0
    +
    153 #define __FLT32_HAS_INFINITY__ 1
    +
    154 #define __DBL_MAX__ double(1.7976931348623157e+308L)
    +
    155 #define __ULFRACT_IBIT__ 0
    +
    156 #define __cpp_raw_strings 200710
    +
    157 #define __INT_FAST32_MAX__ 0x7fffffff
    +
    158 #define __DBL_HAS_INFINITY__ 1
    +
    159 #define __ACCUM_IBIT__ 16
    +
    160 #define __DEC32_MIN_EXP__ (-94)
    +
    161 #define __THUMB_INTERWORK__ 1
    +
    162 #define __INTPTR_WIDTH__ 32
    +
    163 #define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK
    +
    164 #define __FLT32X_HAS_DENORM__ 1
    +
    165 #define __INT_FAST16_TYPE__ int
    +
    166 #define __LDBL_HAS_DENORM__ 1
    +
    167 #define QT_WIDGETS_LIB 1
    +
    168 #define __ARM_FEATURE_LDREX 4
    +
    169 #define __cplusplus 201402L
    +
    170 #define __cpp_ref_qualifiers 200710
    +
    171 #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
    +
    172 #define __INT_LEAST32_MAX__ 0x7fffffff
    +
    173 #define __DEC32_MIN__ 1E-95DF
    +
    174 #define __ACCUM_MAX__ 0X7FFFFFFFP-15K
    +
    175 #define __DEPRECATED 1
    +
    176 #define __cpp_rvalue_references 200610
    +
    177 #define __DBL_MAX_EXP__ 1024
    +
    178 #define __USACCUM_EPSILON__ 0x1P-8UHK
    +
    179 #define __WCHAR_WIDTH__ 32
    +
    180 #define __FLT32_MAX__ 3.4028234663852886e+38F32
    +
    181 #define __DEC128_EPSILON__ 1E-33DL
    +
    182 #define __SFRACT_MAX__ 0X7FP-7HR
    +
    183 #define __FRACT_IBIT__ 0
    +
    184 #define __PTRDIFF_MAX__ 0x7fffffff
    +
    185 #define __UACCUM_MIN__ 0.0UK
    +
    186 #define __UACCUM_IBIT__ 16
    +
    187 #define __FLT32_HAS_QUIET_NAN__ 1
    +
    188 #define __GNUG__ 8
    +
    189 #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
    +
    190 #define __SIZEOF_SIZE_T__ 4
    +
    191 #define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK
    +
    192 #define __cpp_rvalue_reference 200610
    +
    193 #define __cpp_nsdmi 200809
    +
    194 #define __SIZEOF_WINT_T__ 4
    +
    195 #define __LONG_LONG_WIDTH__ 64
    +
    196 #define __cpp_initializer_lists 200806
    +
    197 #define __FLT32_MAX_EXP__ 128
    +
    198 #define ABI_ID "ELF"
    +
    199 #define __SA_IBIT__ 16
    +
    200 #define __ULLACCUM_MIN__ 0.0ULLK
    +
    201 #define __cpp_hex_float 201603
    +
    202 #define __GXX_ABI_VERSION 1013
    +
    203 #define __UTA_FBIT__ 64
    +
    204 #define __FLT_MIN_EXP__ (-125)
    +
    205 #define __USFRACT_MAX__ 0XFFP-8UHR
    +
    206 #define __UFRACT_IBIT__ 0
    +
    207 #define __cpp_lambdas 200907
    +
    208 #define __ARM_FEATURE_QBIT 1
    +
    209 #define __INT_FAST64_TYPE__ long long int
    +
    210 #define __FLT64_DENORM_MIN__ 4.9406564584124654e-324F64
    +
    211 #define __DBL_MIN__ double(2.2250738585072014e-308L)
    +
    212 #define __FLT32X_EPSILON__ 2.2204460492503131e-16F32x
    +
    213 #define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK)
    +
    214 #define __ULLACCUM_FBIT__ 32
    +
    215 #define __GXX_TYPEINFO_EQUALITY_INLINE 0
    +
    216 #define __FLT64_MIN_10_EXP__ (-307)
    +
    217 #define __ULLFRACT_EPSILON__ 0x1P-64ULLR
    +
    218 #define __DEC128_MIN__ 1E-6143DL
    +
    219 #define __REGISTER_PREFIX__
    +
    220 #define __UINT16_MAX__ 0xffff
    +
    221 #define __DBL_HAS_DENORM__ 1
    +
    222 #define __ACCUM_MIN__ (-0X1P15K-0X1P15K)
    +
    223 #define __SQ_IBIT__ 0
    +
    224 #define __FLT32_MIN__ 1.1754943508222875e-38F32
    +
    225 #define __UINT8_TYPE__ unsigned char
    +
    226 #define __UHA_FBIT__ 8
    +
    227 #define __NO_INLINE__ 1
    +
    228 #define __SFRACT_MIN__ (-0.5HR-0.5HR)
    +
    229 #define __UTQ_FBIT__ 128
    +
    230 #define __FLT_MANT_DIG__ 24
    +
    231 #define __LDBL_DECIMAL_DIG__ 17
    +
    232 #define __VERSION__ "8.3.0"
    +
    233 #define __UINT64_C(c) c ## ULL
    +
    234 #define __ULLFRACT_FBIT__ 64
    +
    235 #define __cpp_unicode_characters 200704
    +
    236 #define __FRACT_EPSILON__ 0x1P-15R
    +
    237 #define __ULACCUM_MIN__ 0.0ULK
    +
    238 #define _STDC_PREDEF_H 1
    +
    239 #define __UDA_FBIT__ 32
    +
    240 #define __cpp_decltype_auto 201304
    +
    241 #define __LLACCUM_EPSILON__ 0x1P-31LLK
    +
    242 #define __GCC_ATOMIC_INT_LOCK_FREE 2
    +
    243 #define __FLT32_MANT_DIG__ 24
    +
    244 #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
    +
    245 #define __USFRACT_MIN__ 0.0UHR
    +
    246 #define __ULLACCUM_IBIT__ 32
    +
    247 #define __UQQ_IBIT__ 0
    +
    248 #define __STDC_IEC_559_COMPLEX__ 1
    +
    249 #define __SCHAR_WIDTH__ 8
    +
    250 #define __INT32_C(c) c
    +
    251 #define __DEC64_EPSILON__ 1E-15DD
    +
    252 #define __ORDER_PDP_ENDIAN__ 3412
    +
    253 #define __DEC128_MIN_EXP__ (-6142)
    +
    254 #define __UHQ_FBIT__ 16
    +
    255 #define __LLACCUM_FBIT__ 31
    +
    256 #define __FLT32_MAX_10_EXP__ 38
    +
    257 #define __INT_FAST32_TYPE__ int
    +
    258 #define __UINT_LEAST16_TYPE__ short unsigned int
    +
    259 #define unix 1
    +
    260 #define __INT16_MAX__ 0x7fff
    +
    261 #define __cpp_rtti 199711
    +
    262 #define __SIZE_TYPE__ unsigned int
    +
    263 #define __UINT64_MAX__ 0xffffffffffffffffULL
    +
    264 #define __UDQ_FBIT__ 64
    +
    265 #define __INT8_TYPE__ signed char
    +
    266 #define __cpp_digit_separators 201309
    +
    267 #define __ELF__ 1
    +
    268 #define __ULFRACT_EPSILON__ 0x1P-32ULR
    +
    269 #define __LLFRACT_FBIT__ 63
    +
    270 #define __FLT_RADIX__ 2
    +
    271 #define __INT_LEAST16_TYPE__ short int
    +
    272 #define __LDBL_EPSILON__ 2.2204460492503131e-16L
    +
    273 #define __UINTMAX_C(c) c ## ULL
    +
    274 #define __SACCUM_MAX__ 0X7FFFP-7HK
    +
    275 #define __SIG_ATOMIC_MAX__ 0x7fffffff
    +
    276 #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
    +
    277 #define __VFP_FP__ 1
    +
    278 #define __SIZEOF_PTRDIFF_T__ 4
    +
    279 #define __FLT32X_MANT_DIG__ 53
    +
    280 #define __LACCUM_EPSILON__ 0x1P-31LK
    +
    281 #define __FLT32X_MIN_EXP__ (-1021)
    +
    282 #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
    +
    283 #define __INT_FAST16_MAX__ 0x7fffffff
    +
    284 #define __ARM_ARCH_6__ 1
    +
    285 #define __FLT64_DIG__ 15
    +
    286 #define __UINT_FAST32_MAX__ 0xffffffffU
    +
    287 #define __UINT_LEAST64_TYPE__ long long unsigned int
    +
    288 #define __USACCUM_MAX__ 0XFFFFP-8UHK
    +
    289 #define __SFRACT_EPSILON__ 0x1P-7HR
    +
    290 #define __FLT_HAS_QUIET_NAN__ 1
    +
    291 #define __FLT_MAX_10_EXP__ 38
    +
    292 #define __LONG_MAX__ 0x7fffffffL
    +
    293 #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
    +
    294 #define __FLT_HAS_INFINITY__ 1
    +
    295 #define __unix 1
    +
    296 #define __cpp_unicode_literals 200710
    +
    297 #define __USA_FBIT__ 16
    +
    298 #define __UINT_FAST16_TYPE__ unsigned int
    +
    299 #define __DEC64_MAX__ 9.999999999999999E384DD
    +
    300 #define __ARM_32BIT_STATE 1
    +
    301 #define __INT_FAST32_WIDTH__ 32
    +
    302 #define __CHAR16_TYPE__ short unsigned int
    +
    303 #define __PRAGMA_REDEFINE_EXTNAME 1
    +
    304 #define __SIZE_WIDTH__ 32
    +
    305 #define __INT_LEAST16_MAX__ 0x7fff
    +
    306 #define __DEC64_MANT_DIG__ 16
    +
    307 #define __INT64_MAX__ 0x7fffffffffffffffLL
    +
    308 #define __UINT_LEAST32_MAX__ 0xffffffffU
    +
    309 #define __SACCUM_FBIT__ 7
    +
    310 #define __FLT32_DENORM_MIN__ 1.4012984643248171e-45F32
    +
    311 #define __GCC_ATOMIC_LONG_LOCK_FREE 2
    +
    312 #define __SIG_ATOMIC_WIDTH__ 32
    +
    313 #define __INT_LEAST64_TYPE__ long long int
    +
    314 #define __ARM_FEATURE_CLZ 1
    +
    315 #define __INT16_TYPE__ short int
    +
    316 #define __INT_LEAST8_TYPE__ signed char
    +
    317 #define __SQ_FBIT__ 31
    +
    318 #define __DEC32_MAX_EXP__ 97
    +
    319 #define __ARM_ARCH_ISA_THUMB 1
    +
    320 #define __INT_FAST8_MAX__ 0x7f
    +
    321 #define __ARM_ARCH 6
    +
    322 #define __INTPTR_MAX__ 0x7fffffff
    +
    323 #define __cpp_sized_deallocation 201309
    +
    324 #define __QQ_FBIT__ 7
    +
    325 #define linux 1
    +
    326 #define __cpp_range_based_for 200907
    +
    327 #define __UTA_IBIT__ 64
    +
    328 #define __FLT64_HAS_QUIET_NAN__ 1
    +
    329 #define __FLT32_MIN_10_EXP__ (-37)
    +
    330 #define __EXCEPTIONS 1
    +
    331 #define __LDBL_MANT_DIG__ 53
    +
    332 #define __SFRACT_FBIT__ 7
    +
    333 #define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK)
    +
    334 #define __DBL_HAS_QUIET_NAN__ 1
    +
    335 #define __FLT64_HAS_INFINITY__ 1
    +
    336 #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
    +
    337 #define __cpp_return_type_deduction 201304
    +
    338 #define __INTPTR_TYPE__ int
    +
    339 #define __UINT16_TYPE__ short unsigned int
    +
    340 #define __WCHAR_TYPE__ unsigned int
    +
    341 #define __SIZEOF_FLOAT__ 4
    +
    342 #define __USQ_FBIT__ 32
    +
    343 #define __UINTPTR_MAX__ 0xffffffffU
    +
    344 #define __INT_FAST64_WIDTH__ 64
    +
    345 #define __DEC64_MIN_EXP__ (-382)
    +
    346 #define __cpp_decltype 200707
    +
    347 #define __FLT32_DECIMAL_DIG__ 9
    +
    348 #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
    +
    349 #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
    +
    350 #define __FLT_DIG__ 6
    +
    351 #define __UINT_FAST64_TYPE__ long long unsigned int
    +
    352 #define __INT_MAX__ 0x7fffffff
    +
    353 #define __LACCUM_FBIT__ 31
    +
    354 #define __USACCUM_MIN__ 0.0UHK
    +
    355 #define __UHA_IBIT__ 8
    +
    356 #define __INT64_TYPE__ long long int
    +
    357 #define __FLT_MAX_EXP__ 128
    +
    358 #define __UTQ_IBIT__ 0
    +
    359 #define __DBL_MANT_DIG__ 53
    +
    360 #define __cpp_inheriting_constructors 201511
    +
    361 #define QT_CORE_LIB 1
    +
    362 #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
    +
    363 #define __DEC64_MIN__ 1E-383DD
    +
    364 #define __WINT_TYPE__ unsigned int
    +
    365 #define __UINT_LEAST32_TYPE__ unsigned int
    +
    366 #define __SIZEOF_SHORT__ 2
    +
    367 #define __ULLFRACT_IBIT__ 0
    +
    368 #define __LDBL_MIN_EXP__ (-1021)
    +
    369 #define __arm__ 1
    +
    370 #define __FLT64_MAX__ 1.7976931348623157e+308F64
    +
    371 #define __UDA_IBIT__ 32
    +
    372 #define __WINT_WIDTH__ 32
    +
    373 #define __INT_LEAST8_MAX__ 0x7f
    +
    374 #define __FLT32X_MAX_10_EXP__ 308
    +
    375 #define __LFRACT_FBIT__ 31
    +
    376 #define __WCHAR_UNSIGNED__ 1
    +
    377 #define __LDBL_MAX_10_EXP__ 308
    +
    378 #define __ATOMIC_RELAXED 0
    +
    379 #define __DBL_EPSILON__ double(2.2204460492503131e-16L)
    +
    380 #define __ARM_FEATURE_SIMD32 1
    +
    381 #define __UINT8_C(c) c
    +
    382 #define __FLT64_MAX_EXP__ 1024
    +
    383 #define __INT_LEAST32_TYPE__ int
    +
    384 #define __SIZEOF_WCHAR_T__ 4
    +
    385 #define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR
    +
    386 #define __TQ_FBIT__ 127
    +
    387 #define __INT_FAST8_TYPE__ signed char
    +
    388 #define __ULLACCUM_EPSILON__ 0x1P-32ULLK
    +
    389 #define __UHQ_IBIT__ 0
    +
    390 #define __ARM_FEATURE_COPROC 15
    +
    391 #define __LLACCUM_IBIT__ 32
    +
    392 #define __FLT64_HAS_DENORM__ 1
    +
    393 #define __FLT32_EPSILON__ 1.1920928955078125e-7F32
    +
    394 #define __DBL_DECIMAL_DIG__ 17
    +
    395 #define __STDC_UTF_32__ 1
    +
    396 #define __INT_FAST8_WIDTH__ 8
    +
    397 #define __DEC_EVAL_METHOD__ 2
    +
    398 #define __FLT32X_MAX__ 1.7976931348623157e+308F32x
    +
    399 #define __TA_FBIT__ 63
    +
    400 #define __UDQ_IBIT__ 0
    +
    401 #define __ORDER_BIG_ENDIAN__ 4321
    +
    402 #define __cpp_runtime_arrays 198712
    +
    403 #define __UINT64_TYPE__ long long unsigned int
    +
    404 #define __ACCUM_EPSILON__ 0x1P-15K
    +
    405 #define __UINT32_C(c) c ## U
    +
    406 #define __INTMAX_MAX__ 0x7fffffffffffffffLL
    +
    407 #define __cpp_alias_templates 200704
    +
    408 #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
    +
    409 #define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
    +
    410 #define __LLFRACT_IBIT__ 0
    +
    411 #define __INT8_MAX__ 0x7f
    +
    412 #define __LONG_WIDTH__ 32
    +
    413 #define __UINT_FAST32_TYPE__ unsigned int
    +
    414 #define __CHAR32_TYPE__ unsigned int
    +
    415 #define __FLT_MAX__ 3.4028234663852886e+38F
    +
    416 #define __cpp_constexpr 201304
    +
    417 #define __USACCUM_FBIT__ 8
    +
    418 #define __INT32_TYPE__ int
    +
    419 #define __SIZEOF_DOUBLE__ 8
    +
    420 #define __cpp_exceptions 199711
    +
    421 #define __FLT_MIN_10_EXP__ (-37)
    +
    422 #define __UFRACT_EPSILON__ 0x1P-16UR
    +
    423 #define __FLT64_MIN__ 2.2250738585072014e-308F64
    +
    424 #define __INT_LEAST32_WIDTH__ 32
    +
    425 #define __INTMAX_TYPE__ long long int
    +
    426 #define __DEC128_MAX_EXP__ 6145
    +
    427 #define __FLT32X_HAS_QUIET_NAN__ 1
    +
    428 #define __ATOMIC_CONSUME 1
    +
    429 #define __GNUC_MINOR__ 3
    +
    430 #define __INT_FAST16_WIDTH__ 32
    +
    431 #define __UINTMAX_MAX__ 0xffffffffffffffffULL
    +
    432 #define __DEC32_MANT_DIG__ 7
    +
    433 #define __FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x
    +
    434 #define __HA_FBIT__ 7
    +
    435 #define __DBL_MAX_10_EXP__ 308
    +
    436 #define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
    +
    437 #define __INT16_C(c) c
    +
    438 #define __cpp_generic_lambdas 201304
    +
    439 #define __STDC__ 1
    +
    440 #define __FLT32X_DIG__ 15
    +
    441 #define __PTRDIFF_TYPE__ int
    +
    442 #define __LLFRACT_MIN__ (-0.5LLR-0.5LLR)
    +
    443 #define __ATOMIC_SEQ_CST 5
    +
    444 #define __DA_FBIT__ 31
    +
    445 #define __UINT32_TYPE__ unsigned int
    +
    446 #define __FLT32X_MIN_10_EXP__ (-307)
    +
    447 #define __UINTPTR_TYPE__ unsigned int
    +
    448 #define __USA_IBIT__ 16
    +
    449 #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
    +
    450 #define __ARM_EABI__ 1
    +
    451 #define __DEC128_MANT_DIG__ 34
    +
    452 #define __LDBL_MIN_10_EXP__ (-307)
    +
    453 #define __SIZEOF_LONG_LONG__ 8
    +
    454 #define __ULACCUM_EPSILON__ 0x1P-32ULK
    +
    455 #define __cpp_user_defined_literals 200809
    +
    456 #define __SACCUM_IBIT__ 8
    +
    457 #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
    +
    458 #define __FLT32X_MIN__ 2.2250738585072014e-308F32x
    +
    459 #define __LDBL_DIG__ 15
    +
    460 #define __FLT_DECIMAL_DIG__ 9
    +
    461 #define __UINT_FAST16_MAX__ 0xffffffffU
    +
    462 #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
    +
    463 #define QT_PRINTSUPPORT_LIB 1
    +
    464 #define __INT_LEAST64_WIDTH__ 64
    +
    465 #define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR
    +
    466 #define __UINT_FAST8_TYPE__ unsigned char
    +
    467 #define _GNU_SOURCE 1
    +
    468 #define __USFRACT_EPSILON__ 0x1P-8UHR
    +
    469 #define __ULACCUM_FBIT__ 32
    +
    470 #define __ARM_FEATURE_DSP 1
    +
    471 #define __QQ_IBIT__ 0
    +
    472 #define __cpp_init_captures 201304
    +
    473 #define __ATOMIC_ACQ_REL 4
    +
    474 #define __ATOMIC_RELEASE 3
    +
    +
    + + + + diff --git a/docs/mocs__compilation_8cpp.html b/docs/mocs__compilation_8cpp.html new file mode 100644 index 0000000..8099641 --- /dev/null +++ b/docs/mocs__compilation_8cpp.html @@ -0,0 +1,124 @@ + + + + + + + +DreamHacker: drmhk_autogen/mocs_compilation.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    mocs_compilation.cpp File Reference
    +
    +
    +
    +Include dependency graph for mocs_compilation.cpp:
    +
    +
    + + + + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    +
    +
    + + + + diff --git a/docs/mocs__compilation_8cpp__incl.map b/docs/mocs__compilation_8cpp__incl.map new file mode 100644 index 0000000..6ae1b91 --- /dev/null +++ b/docs/mocs__compilation_8cpp__incl.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/mocs__compilation_8cpp__incl.md5 b/docs/mocs__compilation_8cpp__incl.md5 new file mode 100644 index 0000000..809de85 --- /dev/null +++ b/docs/mocs__compilation_8cpp__incl.md5 @@ -0,0 +1 @@ +3f13899fd4a63c89e42aa217e86552c6 \ No newline at end of file diff --git a/docs/mocs__compilation_8cpp__incl.png b/docs/mocs__compilation_8cpp__incl.png new file mode 100644 index 0000000..18db236 Binary files /dev/null and b/docs/mocs__compilation_8cpp__incl.png differ diff --git a/docs/mocs__compilation_8cpp_source.html b/docs/mocs__compilation_8cpp_source.html new file mode 100644 index 0000000..97a881e --- /dev/null +++ b/docs/mocs__compilation_8cpp_source.html @@ -0,0 +1,101 @@ + + + + + + + +DreamHacker: drmhk_autogen/mocs_compilation.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    mocs_compilation.cpp
    +
    +
    +Go to the documentation of this file.
    1 // This file is autogenerated. Changes will be overwritten.
    + + +
    +
    + + + + diff --git a/docs/nav_f.png b/docs/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/docs/nav_f.png differ diff --git a/docs/nav_g.png b/docs/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/docs/nav_g.png differ diff --git a/docs/nav_h.png b/docs/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/docs/nav_h.png differ diff --git a/docs/navtree.css b/docs/navtree.css new file mode 100644 index 0000000..33341a6 --- /dev/null +++ b/docs/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/docs/navtree.js b/docs/navtree.js new file mode 100644 index 0000000..1e272d3 --- /dev/null +++ b/docs/navtree.js @@ -0,0 +1,546 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/./drmhk_autogen", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md15", null ], + [ "./frontend", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md16", null ], + [ "./include", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md17", null ], + [ "./main", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md18", null ], + [ "./src", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md19", null ], + [ "./test", "md__s_t_r_u_c_t_u_r_e.html#autotoc_md20", null ] + ] ] + ] ], + [ "Data Structures", "annotated.html", [ + [ "Data Structures", "annotated.html", "annotated_dup" ], + [ "Data Structure Index", "classes.html", null ], + [ "Class Hierarchy", "hierarchy.html", "hierarchy" ], + [ "Data Fields", "functions.html", [ + [ "All", "functions.html", null ], + [ "Functions", "functions_func.html", null ], + [ "Variables", "functions_vars.html", null ] + ] ] + ] ], + [ "Files", "files.html", [ + [ "File List", "files.html", "files_dup" ], + [ "Globals", "globals.html", [ + [ "All", "globals.html", "globals_dup" ], + [ "Functions", "globals_func.html", null ], + [ "Variables", "globals_vars.html", null ], + [ "Enumerations", "globals_enum.html", null ], + [ "Enumerator", "globals_eval.html", null ], + [ "Macros", "globals_defs.html", "globals_defs" ] + ] ] + ] ] + ] ] +]; + +var NAVTREEINDEX = +[ +"_cpp_timer_8cpp.html", +"moc__predefs_8h.html#a01d0061df498c537ecd56d53f1130082", +"moc__predefs_8h.html#a87140cc80075e8907e7bbfd910c5642a" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; \ No newline at end of file diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js new file mode 100644 index 0000000..302be2d --- /dev/null +++ b/docs/navtreeindex0.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX0 = +{ +"_cpp_timer_8cpp.html":[2,0,3,0], +"_cpp_timer_8cpp_source.html":[2,0,3,0], +"_cpp_timer_8h.html":[2,0,1,0], +"_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790a":[2,0,1,0,2], +"_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aa2724fa87f252403cd2c93f7437f34fd5":[2,0,1,0,2,1], +"_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aae4379d044711537d9ce3b3b58c575c58":[2,0,1,0,2,0], +"_cpp_timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7":[2,0,1,0,1], +"_cpp_timer_8h_source.html":[2,0,1,0], +"_cpp_timer_callback_8h.html":[2,0,1,1], +"_cpp_timer_callback_8h_source.html":[2,0,1,1], +"_pulse_sensor_8h.html":[2,0,1,5], +"_pulse_sensor_8h.html#a79bcfb6bde984f42d1124b068a509af7":[2,0,1,5,3], +"_pulse_sensor_8h.html#ae915de38397fbdc90276fa44e148c686":[2,0,1,5,4], +"_pulse_sensor_8h_source.html":[2,0,1,5], +"annotated.html":[1,0], +"class_cpp_timer.html":[1,0,0], +"class_cpp_timer.html#a1fec3e463138ab01f640aec9aafc14d0":[1,0,0,2], +"class_cpp_timer.html#a300c3075e777cb4abdc09c9704ae6f87":[1,0,0,0], +"class_cpp_timer.html#a4bb95ddee98a536d0818b8f6096bf7e7":[1,0,0,4], +"class_cpp_timer.html#a692a200df6d2c43b72ff1db76458f09f":[1,0,0,7], +"class_cpp_timer.html#a6c8df87a608c7722bb9900cf925f571b":[1,0,0,3], +"class_cpp_timer.html#a8774fb5ba9af8f276874c1234741f106":[1,0,0,6], +"class_cpp_timer.html#a90ff764263fdde5a0f6e53429c8cf734":[1,0,0,9], +"class_cpp_timer.html#a91779a93fce7383a8d832ed481399342":[1,0,0,1], +"class_cpp_timer.html#a9860d3d723ad55982db50c9cde8d725a":[1,0,0,8], +"class_cpp_timer.html#ac2665403595b6aee5f581d0ebfeb886c":[1,0,0,5], +"class_cpp_timer_callback.html":[1,0,1], +"class_cpp_timer_callback.html#a29d8d5a426a3d15bca8a42c2c897f50f":[1,0,1,3], +"class_cpp_timer_callback.html#a578cc701cee7be10f3afab2859eac74f":[1,0,1,4], +"class_cpp_timer_callback.html#ae6e815f1c3b65ea4f10fe0332e13acb9":[1,0,1,1], +"class_cpp_timer_callback.html#af6b39f5eb8e98bfc1b301ac3f25276e9":[1,0,1,2], +"class_cpp_timer_callback_1_1_runnable.html":[1,0,1,0], +"class_cpp_timer_callback_1_1_runnable.html#af8d11a3b580e76431151e76ac1886e6e":[1,0,1,0,0], +"class_j_s_o_n_c_g_i_a_d_c_callback.html":[1,0,2], +"class_j_s_o_n_c_g_i_a_d_c_callback.html#a105866e87ab653c7cddfedba74149d42":[1,0,2,2], +"class_j_s_o_n_c_g_i_a_d_c_callback.html#a763ae66809e399f49e712a1ad68289bb":[1,0,2,1], +"class_j_s_o_n_c_g_i_a_d_c_callback.html#a9b02dfb7eadb7e9c8004f90bdc474e29":[1,0,2,0], +"class_j_s_o_n_c_g_i_handler.html":[1,0,3], +"class_j_s_o_n_c_g_i_handler.html#a09ee0f555db808d07c9ee9a575780553":[1,0,3,7], +"class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30":[1,0,3,4], +"class_j_s_o_n_c_g_i_handler.html#a69dba19ef64e913fc7e969854be997c9":[1,0,3,8], +"class_j_s_o_n_c_g_i_handler.html#a6f696ff6856f32b3ba75a130fcbb8987":[1,0,3,10], +"class_j_s_o_n_c_g_i_handler.html#a7c8b4a44e15ac57fe93b382e86899fa7":[1,0,3,5], +"class_j_s_o_n_c_g_i_handler.html#a9bf5a96d13949d363225561ba6ac3b56":[1,0,3,3], +"class_j_s_o_n_c_g_i_handler.html#aca513f708ae4dc76ba70196ff25da695":[1,0,3,6], +"class_j_s_o_n_c_g_i_handler.html#aefa19cd01b387693ef99c5aa0c5fc093":[1,0,3,9], +"class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html":[1,0,3,0], +"class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a2367bf5a5912e9e5599ee464e0846255":[1,0,3,0,1], +"class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a4e1fee495ddeb4e24eaa5b8e767ea838":[1,0,3,0,0], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html":[1,0,3,1], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a191efd00967cbace0d9ddfedea39cd9b":[1,0,3,1,4], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a2192849b22341653a138bb63da6c6c9a":[1,0,3,1,1], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a5a9fd42e7b9030c6a0a4bee923a2e416":[1,0,3,1,7], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a87fe5c75b46f9822255535a61f15ad4b":[1,0,3,1,2], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a9d14c80af92fa9f3a3406d826acd2cc0":[1,0,3,1,6], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#aa25099deb2442335298ab1c021f36910":[1,0,3,1,0], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afc3e9374b0e49ca1f701bd22bbd4cd92":[1,0,3,1,3], +"class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afec28cd80e562955e2cd8cdb92d86205":[1,0,3,1,5], +"class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html":[1,0,3,2], +"class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html#a6cddb384a3fd9242b323cea3d82a6bb7":[1,0,3,2,0], +"class_main_window.html":[1,0,4], +"class_main_window.html#a1c0b4ea19f6a3fa99e1b2b5aaced3316":[1,0,4,21], +"class_main_window.html#a1c7877c1ca466bd8034d88762ce2af9f":[1,0,4,15], +"class_main_window.html#a249c355d9682742f0b2f0c4df3a889ba":[1,0,4,3], +"class_main_window.html#a27112d7db9fb5d46fe348f82ec04575c":[1,0,4,28], +"class_main_window.html#a285395aec8fd01bec6bedcad73b86a55":[1,0,4,24], +"class_main_window.html#a2922276b16afd8adc961e2feb0295aa7":[1,0,4,22], +"class_main_window.html#a37fafd4b956df2afe979320e886e08b9":[1,0,4,5], +"class_main_window.html#a4a04910f3193303a44506b44521b61b0":[1,0,4,26], +"class_main_window.html#a4a67c261262269dbbdf62c5acecd0f45":[1,0,4,27], +"class_main_window.html#a5017c8d0c6c5a1dc9276ee000d417ab9":[1,0,4,30], +"class_main_window.html#a569f6854621f0b737fe75c3f4a85be5e":[1,0,4,2], +"class_main_window.html#a5b48e4b5e6ca0e866f09c2e7abf39468":[1,0,4,9], +"class_main_window.html#a617d177003ed61dba284913af30de1e5":[1,0,4,11], +"class_main_window.html#a7a08729acae2d66f3a961aedc2843201":[1,0,4,16], +"class_main_window.html#a7af3696afc3e0996f54803bc9e8a88de":[1,0,4,12], +"class_main_window.html#a8051aaa7fb3d933b24edfc2b3313fb9d":[1,0,4,7], +"class_main_window.html#a89e281849b9cf7d03662402c6bc6012c":[1,0,4,23], +"class_main_window.html#a8a03063815634f96c67efff679eec7f1":[1,0,4,17], +"class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db":[1,0,4,0], +"class_main_window.html#a91379bd45a0f0ed052dd43f976820874":[1,0,4,14], +"class_main_window.html#a9877316405a63e4d97dcc23973b57883":[1,0,4,20], +"class_main_window.html#a9aa96a47567bb4c129c3c0ec88fff3a8":[1,0,4,6], +"class_main_window.html#aa832835ecf184b522debbaca68b1e93d":[1,0,4,29], +"class_main_window.html#abce189c4c57b052878c91f1f6428bba3":[1,0,4,10], +"class_main_window.html#ac3b757adfb6eff08e50a5017d12a48df":[1,0,4,25], +"class_main_window.html#ad3bde47a75b6c59146d6aff1752d077f":[1,0,4,18], +"class_main_window.html#addd0ecbc66696a8427539ea464a56c7d":[1,0,4,13], +"class_main_window.html#adf20eb4e3d56f3697d3668cda8219e56":[1,0,4,19], +"class_main_window.html#adf836fa5cd0d1a80544f272fac06867f":[1,0,4,1], +"class_main_window.html#af5c159a4d57c57c6014b6892d14eb816":[1,0,4,4], +"class_main_window.html#afb15e4bd4206b7c4049ebf297f8c02bd":[1,0,4,8], +"class_q_main_window.html":[1,0,5], +"class_s_e_n_s_o_rfastcgicallback.html":[1,0,9], +"class_s_e_n_s_o_rfastcgicallback.html#a554ef360acfa9d3659742697b2946f3a":[1,0,9,0], +"class_s_e_n_s_o_rfastcgicallback.html#a6b4105c78aed0f6d71feccb84dc1ffd6":[1,0,9,1], +"class_s_e_n_s_o_rfastcgicallback.html#aa667ff1226feb85d2684cc355ca6e644":[1,0,9,2], +"class_s_e_n_s_o_rfastcgicallback.html#aaa260a6ca2f81d83f769b4c3ca6acc73":[1,0,9,3], +"class_s_e_n_s_o_rfastcgicallback.html#ad48620809e828f35a6e6c0e7065f13aa":[1,0,9,4], +"class_sense_window.html":[1,0,7], +"class_sense_window.html#a43602e0dfc68a2ad1b46562e5af17fd7":[1,0,7,1], +"class_sense_window.html#ad97aff95e489210aaa4dec6fc03dd741":[1,0,7,2], +"class_sense_window.html#afb0c22b15152f699fcb1a4e1fd254f4b":[1,0,7,0], +"class_sensor_callback.html":[1,0,8], +"class_sensor_callback.html#a89069694af2123270caf56839ed22cdd":[1,0,8,0], +"class_sensor_timer.html":[1,0,10], +"class_sensor_timer.html#a03ec27b4291d6a2bdd84822415efe680":[1,0,10,8], +"class_sensor_timer.html#a03ed20714879814e22e5641940e1c764":[1,0,10,32], +"class_sensor_timer.html#a042706c0c1ec146beb95e8f3947211fd":[1,0,10,5], +"class_sensor_timer.html#a05ab0c30d7e40d9045c21b0b115c392d":[1,0,10,37], +"class_sensor_timer.html#a0ee1760c265760a66758a9845f179f53":[1,0,10,20], +"class_sensor_timer.html#a1353e51d3e3db2f14a18afb14419c905":[1,0,10,23], +"class_sensor_timer.html#a1bf0ef8c1667be0f111419322d196077":[1,0,10,48], +"class_sensor_timer.html#a23904c4f9bc7b0ef8f39e9158da989a3":[1,0,10,24], +"class_sensor_timer.html#a26f5ab50413256c6b9523b8cbe5f6a84":[1,0,10,7], +"class_sensor_timer.html#a285de7aa2794270cbcf59144afd4746a":[1,0,10,26], +"class_sensor_timer.html#a29b97782575a74a0d4bf7af50bad66cc":[1,0,10,27], +"class_sensor_timer.html#a2b87e348b476be96d88ee70be98bef11":[1,0,10,9], +"class_sensor_timer.html#a36233c0d18fe087bbfcf3a37bdf6dcec":[1,0,10,1], +"class_sensor_timer.html#a4d29fdf6804a4777668d957a8333f9c6":[1,0,10,35], +"class_sensor_timer.html#a4db914e2d73ffb3202aeb4fb3ffb3073":[1,0,10,19], +"class_sensor_timer.html#a4eeaf71d9a5f96e322b35081cf33f6e9":[1,0,10,31], +"class_sensor_timer.html#a54c96b55f91d091b3f11d9f4f5aaa34a":[1,0,10,18], +"class_sensor_timer.html#a54d4119db865d1fd2bbff0fc8da67482":[1,0,10,4], +"class_sensor_timer.html#a571f7dcc621738e57607586cea71d302":[1,0,10,10], +"class_sensor_timer.html#a5b5f30f0afd6eb4a9df8f7b6b6869a6a":[1,0,10,49], +"class_sensor_timer.html#a5e04d19d42170c73243dbcbbdedfdbc5":[1,0,10,22], +"class_sensor_timer.html#a69302d73a34d1ac10dbbd4d17e46493c":[1,0,10,15], +"class_sensor_timer.html#a6aaa261915f03ad857544fd629607ea6":[1,0,10,34], +"class_sensor_timer.html#a6bb2773d68210a8d70742b118b84139f":[1,0,10,21], +"class_sensor_timer.html#a6d15ff3f37f39e6baa43cf22a48263f2":[1,0,10,14], +"class_sensor_timer.html#a6e26abccf69140ef3749f95dccbb60aa":[1,0,10,55], +"class_sensor_timer.html#a73b3600a3b439a889ec2aefb6e9d406e":[1,0,10,46], +"class_sensor_timer.html#a753287351e0381ca5d0d85df3078f762":[1,0,10,16], +"class_sensor_timer.html#a7ba22ffafc2b42ae3cdff31d47525fcb":[1,0,10,42], +"class_sensor_timer.html#a820b614d51dc988ae64219c133406f47":[1,0,10,40], +"class_sensor_timer.html#a84505975df90206876681d89975faa52":[1,0,10,51], +"class_sensor_timer.html#a86849a9ab4dc5443cc93f96f00c29f6c":[1,0,10,6], +"class_sensor_timer.html#a884380525acb68dcbe88e55a48a37496":[1,0,10,56], +"class_sensor_timer.html#a888dc3b1bf9bfb452c679bccb018a387":[1,0,10,54], +"class_sensor_timer.html#a93f19ee800ea1f8b53d2bd9ca40374ab":[1,0,10,43], +"class_sensor_timer.html#a9bf478f0366940dab46992b626eb6614":[1,0,10,36], +"class_sensor_timer.html#a9edffcd5c781e8942f8570f2bfe8232d":[1,0,10,57], +"class_sensor_timer.html#aaa0853dc77e341fcaf2f19bf968b4b4c":[1,0,10,39], +"class_sensor_timer.html#aaeec2579eba748d10fa8532311b20e99":[1,0,10,17], +"class_sensor_timer.html#ab27fde0c17025181e3008d3246077bbc":[1,0,10,13], +"class_sensor_timer.html#ab410d5296b53f11c14037a0639d905ae":[1,0,10,25], +"class_sensor_timer.html#ab74c86309da203b069a991f8ca09ae0a":[1,0,10,41], +"class_sensor_timer.html#ab8ae36c7b7cb90c0b0d119e890489338":[1,0,10,53], +"class_sensor_timer.html#ab8ae50b1ee64129594c15f056856c35f":[1,0,10,38], +"class_sensor_timer.html#ab9ea2c04c2ed4e36f2983ad441fa06d7":[1,0,10,29], +"class_sensor_timer.html#abc1f4e1db59f4aa0dae5793c90740a84":[1,0,10,28], +"class_sensor_timer.html#ac2688bda3961332bcb0a80a63be6c0f5":[1,0,10,33], +"class_sensor_timer.html#ac2de8ccb0d70b801574f962baae0a5cb":[1,0,10,44], +"class_sensor_timer.html#ace1263828012e5e2c0011ca5ee2d4ad8":[1,0,10,30], +"class_sensor_timer.html#ad2a424f227d18421cf94c86d7eb031be":[1,0,10,50], +"class_sensor_timer.html#ad58597d91c359dc772a970ee46ef2b8c":[1,0,10,45], +"class_sensor_timer.html#ad78b1837ae8402db8111c1125d62c39a":[1,0,10,52], +"class_sensor_timer.html#ad8d148ba672bccb72ca45fea9b98fb38":[1,0,10,12], +"class_sensor_timer.html#adb180c4dab8ccaa5eae6870aa851f76a":[1,0,10,2], +"class_sensor_timer.html#ae70a0da132083a8135a17903baa68059":[1,0,10,3], +"class_sensor_timer.html#af524226ec78b66a274851119f7b00a2f":[1,0,10,47], +"class_sensor_timer.html#afa77fed86caa66cbff25f6f1599e6012":[1,0,10,11], +"class_sensor_timer.html#afbfb91d0dc35bf217cb22f50d680b26e":[1,0,10,0], +"classes.html":[1,1], +"dir_4bc54f5321a2fafd757d3d45665af198.html":[2,0,0,0], +"dir_5c982d53a68cdbcd421152b4020263a9.html":[2,0,2], +"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[2,0,3], +"dir_764629c8b824a2149a75238f2672c627.html":[2,0,0], +"dir_d44c64559bbebec7f509842c48db8b23.html":[2,0,1], +"files.html":[2,0], +"functions.html":[1,3,0], +"functions_func.html":[1,3,1], +"functions_vars.html":[1,3,2], +"globals.html":[2,1,0,0], +"globals.html":[2,1,0], +"globals_a.html":[2,1,0,1], +"globals_b.html":[2,1,0,2], +"globals_c.html":[2,1,0,3], +"globals_defs.html":[2,1,5], +"globals_defs.html":[2,1,5,0], +"globals_defs_a.html":[2,1,5,1], +"globals_defs_b.html":[2,1,5,2], +"globals_defs_c.html":[2,1,5,3], +"globals_defs_l.html":[2,1,5,4], +"globals_defs_q.html":[2,1,5,5], +"globals_defs_s.html":[2,1,5,6], +"globals_defs_u.html":[2,1,5,7], +"globals_enum.html":[2,1,3], +"globals_eval.html":[2,1,4], +"globals_func.html":[2,1,1], +"globals_g.html":[2,1,0,4], +"globals_i.html":[2,1,0,5], +"globals_l.html":[2,1,0,6], +"globals_m.html":[2,1,0,7], +"globals_o.html":[2,1,0,8], +"globals_p.html":[2,1,0,9], +"globals_q.html":[2,1,0,10], +"globals_s.html":[2,1,0,11], +"globals_t.html":[2,1,0,12], +"globals_u.html":[2,1,0,13], +"globals_vars.html":[2,1,2], +"hierarchy.html":[1,2], +"index.html":[], +"index.html#autotoc_md0":[0], +"index.html#autotoc_md1":[1], +"index.html#autotoc_md10":[5], +"index.html#autotoc_md11":[6], +"index.html#autotoc_md2":[1,0], +"index.html#autotoc_md3":[1,1], +"index.html#autotoc_md4":[1,2], +"index.html#autotoc_md5":[2], +"index.html#autotoc_md6":[2,0], +"index.html#autotoc_md7":[2,1], +"index.html#autotoc_md8":[3], +"index.html#autotoc_md9":[4], +"json__fastcgi__web__api_8h.html":[2,0,1,2], +"json__fastcgi__web__api_8h_source.html":[2,0,1,2], +"main_8cpp.html":[2,0,2,0], +"main_8cpp.html#a037aed45f792fc3e78387006be43a53e":[2,0,2,0,5], +"main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[2,0,2,0,2], +"main_8cpp.html#a8ee3282bc313e547dbbb8d4f4010db61":[2,0,2,0,3], +"main_8cpp.html#ae8605e2b78cd4a81b6c6b5c30cb7366a":[2,0,2,0,4], +"main_8cpp_source.html":[2,0,2,0], +"mainwindow_8cpp.html":[2,0,1,3], +"mainwindow_8cpp.html#a773d83c4ef02c0fe33e23e9133603c75":[2,0,1,3,1], +"mainwindow_8cpp.html#ae78f4adc40f6a5315f05fc1ab3e69ecf":[2,0,1,3,0], +"mainwindow_8cpp_source.html":[2,0,1,3], +"mainwindow_8h.html":[2,0,1,4], +"mainwindow_8h_source.html":[2,0,1,4], +"mainwindowdemo_8cpp.html":[2,0,3,1], +"mainwindowdemo_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97":[2,0,3,1,0], +"mainwindowdemo_8cpp_source.html":[2,0,3,1], +"md__s_t_r_u_c_t_u_r_e.html":[0], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md13":[0,7], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md14":[0,8], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md15":[0,8,0], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md16":[0,8,1], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md17":[0,8,2], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md18":[0,8,3], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md19":[0,8,4], +"md__s_t_r_u_c_t_u_r_e.html#autotoc_md20":[0,8,5], +"moc__mainwindow_8cpp.html":[2,0,0,0,0], +"moc__mainwindow_8cpp.html#a75bb9482d242cde0a06c9dbdc6b83abe":[2,0,0,0,0,1], +"moc__mainwindow_8cpp_source.html":[2,0,0,0,0], +"moc__predefs_8h.html":[2,0,0,1], +"moc__predefs_8h.html#a002117cb1926b8d6e19255b983101d67":[2,0,0,1,73], +"moc__predefs_8h.html#a00a9f6ceb42fbe18b789b4c1949c49f2":[2,0,0,1,132], +"moc__predefs_8h.html#a01b915d3ec5439de746f1d5e9f76dc3d":[2,0,0,1,455], +"moc__predefs_8h.html#a01c49eec2e7d5b02de85da36904eac4e":[2,0,0,1,421] +}; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js new file mode 100644 index 0000000..2547c6a --- /dev/null +++ b/docs/navtreeindex1.js @@ -0,0 +1,253 @@ +var NAVTREEINDEX1 = +{ +"moc__predefs_8h.html#a01d0061df498c537ecd56d53f1130082":[2,0,0,1,155], +"moc__predefs_8h.html#a02481ce2087724d8a2fb2322dbc549da":[2,0,0,1,33], +"moc__predefs_8h.html#a035c056d72e677daa49cc2c7dbeed083":[2,0,0,1,191], +"moc__predefs_8h.html#a036c254077652f499bdf3e870c83320c":[2,0,0,1,10], +"moc__predefs_8h.html#a03e66bc6e427f0c968a7a0daec280729":[2,0,0,1,162], +"moc__predefs_8h.html#a0405f081746b177320ab17d332a0c938":[2,0,0,1,286], +"moc__predefs_8h.html#a05f3b9f6f2309a16af9d6fd939d97493":[2,0,0,1,69], +"moc__predefs_8h.html#a0609dc2b702d5980de44c01bd373136a":[2,0,0,1,31], +"moc__predefs_8h.html#a06608084919123d90621d715daf1f456":[2,0,0,1,104], +"moc__predefs_8h.html#a06fd91f0507a4f364e469c8055f4265a":[2,0,0,1,272], +"moc__predefs_8h.html#a0746bdc61f4500f26c2b7408814ebfcf":[2,0,0,1,391], +"moc__predefs_8h.html#a08d4062230ffc8494f4be4f6447497e4":[2,0,0,1,308], +"moc__predefs_8h.html#a0958474253d23ca2c87e817c16f74eda":[2,0,0,1,50], +"moc__predefs_8h.html#a0a3bd26d0b040f0781a238e4aedd3dbe":[2,0,0,1,194], +"moc__predefs_8h.html#a0a54ad5275069482576a8e26197c01db":[2,0,0,1,242], +"moc__predefs_8h.html#a0b6b145385f61e8dc93f0df6933aa489":[2,0,0,1,422], +"moc__predefs_8h.html#a0b8ad52bece225cdae9c1b46c91c62a5":[2,0,0,1,198], +"moc__predefs_8h.html#a0bb1e0beafad50453605ea11eb49e0e9":[2,0,0,1,441], +"moc__predefs_8h.html#a0d5ee390eabd4483e834007b5824373b":[2,0,0,1,135], +"moc__predefs_8h.html#a0e2a62089d7d3423f98b5b4fb687e6ce":[2,0,0,1,366], +"moc__predefs_8h.html#a0e3615b841cb0fd1049bb0a2aaac2096":[2,0,0,1,0], +"moc__predefs_8h.html#a0f22edb92c4da8029783c424962ac30d":[2,0,0,1,387], +"moc__predefs_8h.html#a10a15ae17c3b791fe9b9721965ebfee4":[2,0,0,1,269], +"moc__predefs_8h.html#a12a7c3c43c7075b2524bcff787860afd":[2,0,0,1,444], +"moc__predefs_8h.html#a12ae39ceaadaa474ba09d20fba083f68":[2,0,0,1,465], +"moc__predefs_8h.html#a1304d54dba90274495e0b09c9820927b":[2,0,0,1,461], +"moc__predefs_8h.html#a13526b223391d4982c4c172c29bfdc1e":[2,0,0,1,95], +"moc__predefs_8h.html#a135696718aa5b38e58be73aaece6654f":[2,0,0,1,460], +"moc__predefs_8h.html#a136189a915ba49e719dcffbeba8412fd":[2,0,0,1,297], +"moc__predefs_8h.html#a144dfa169f604d99b46658c15338338e":[2,0,0,1,96], +"moc__predefs_8h.html#a158b9e85a96f0cf9698a6202071e8061":[2,0,0,1,138], +"moc__predefs_8h.html#a165bf2f00e518485a1bb58c1918205b0":[2,0,0,1,302], +"moc__predefs_8h.html#a170219070ed7bdfea9f88121c9abbaea":[2,0,0,1,123], +"moc__predefs_8h.html#a17a1ff08595cf7e0c9d1f162b727ccb6":[2,0,0,1,392], +"moc__predefs_8h.html#a17d5e6eddd99e8cd1695d187ad4f0d56":[2,0,0,1,289], +"moc__predefs_8h.html#a17f94731962876cdac979ae093f52605":[2,0,0,1,377], +"moc__predefs_8h.html#a1801bfbb7ab3b0ff09a48c3d78bd97e2":[2,0,0,1,247], +"moc__predefs_8h.html#a186ffad79fee26491fa5b4ac6124cd6f":[2,0,0,1,423], +"moc__predefs_8h.html#a18722e43595ceec21ac010aac3cdd70f":[2,0,0,1,445], +"moc__predefs_8h.html#a189bb13aac101f45c8ac7f6e52daccfa":[2,0,0,1,102], +"moc__predefs_8h.html#a190d0219caabccc0e05909f39bcb00d6":[2,0,0,1,299], +"moc__predefs_8h.html#a198efb9bd9b8de1c44f470b6c6ddf69d":[2,0,0,1,464], +"moc__predefs_8h.html#a1a2ed956349884193c07233d3cc40560":[2,0,0,1,407], +"moc__predefs_8h.html#a1abd7cf346a460459d7fe1a9d4b5dde9":[2,0,0,1,85], +"moc__predefs_8h.html#a1b27e3508a4c1e97875297882a95f503":[2,0,0,1,283], +"moc__predefs_8h.html#a1b391bc7ed92f79666c4a5d840aa1edd":[2,0,0,1,38], +"moc__predefs_8h.html#a1b8832b164a1e36ed6756895a71c7e54":[2,0,0,1,101], +"moc__predefs_8h.html#a1c54273d3f148c51ad48fd738d1e6cbe":[2,0,0,1,408], +"moc__predefs_8h.html#a1c6886956b05c16006d924f77a868410":[2,0,0,1,209], +"moc__predefs_8h.html#a1f4c572c6b5b4fe3e7c81bc48272e56b":[2,0,0,1,129], +"moc__predefs_8h.html#a1f993b902b5b1dba7d5b043d0abc347b":[2,0,0,1,99], +"moc__predefs_8h.html#a20aa38ff6d76d6980b3c6365892110f1":[2,0,0,1,468], +"moc__predefs_8h.html#a20b8951342fd8b8af91e2bc9b34eb929":[2,0,0,1,161], +"moc__predefs_8h.html#a20fcee7a683d69340d8c3d126e5a7f12":[2,0,0,1,249], +"moc__predefs_8h.html#a213133a8dca206becf88c2e3523b124a":[2,0,0,1,203], +"moc__predefs_8h.html#a22791bdfea523b20c18eff848609fa9d":[2,0,0,1,124], +"moc__predefs_8h.html#a23cc29e487b9acd9261adc6c71c1ff0e":[2,0,0,1,385], +"moc__predefs_8h.html#a2436bf06d7aad40fa2c53025c1010bf0":[2,0,0,1,261], +"moc__predefs_8h.html#a24d259c69bea7fb471668df7190c71c6":[2,0,0,1,118], +"moc__predefs_8h.html#a260281f3f3cd1c287fce0d5bb737febb":[2,0,0,1,115], +"moc__predefs_8h.html#a27b5eb7cfda61c7f1baeb4d95f3052bb":[2,0,0,1,394], +"moc__predefs_8h.html#a280f0a9058cc03c2dac890a19881b1fb":[2,0,0,1,82], +"moc__predefs_8h.html#a281ab632befbb2d5567ff114e2fa18f9":[2,0,0,1,398], +"moc__predefs_8h.html#a29e106a0e6600792357f526e30ca98b1":[2,0,0,1,143], +"moc__predefs_8h.html#a2a69c1193c6d41bff15b920fbfa5a867":[2,0,0,1,427], +"moc__predefs_8h.html#a2ae3844702146748bf36d5bd47bad430":[2,0,0,1,205], +"moc__predefs_8h.html#a2b46de6050feed05210bef65feef9c42":[2,0,0,1,53], +"moc__predefs_8h.html#a2b695357ce4b46971d54e8e9dfe5724f":[2,0,0,1,300], +"moc__predefs_8h.html#a2bff327f9a0dd209c33e89161cfa75db":[2,0,0,1,438], +"moc__predefs_8h.html#a2c1c95a99789b8c9721e896c48257f53":[2,0,0,1,339], +"moc__predefs_8h.html#a2c25ec0f0ae74f9d8a7c373288a28dd1":[2,0,0,1,32], +"moc__predefs_8h.html#a2db444477ad8f9aa0759310d46694339":[2,0,0,1,117], +"moc__predefs_8h.html#a2e0aea8ca4d93daf04d3a96b3c53e93a":[2,0,0,1,211], +"moc__predefs_8h.html#a2f23cce03c4b945e41cdf7fc2df8aca4":[2,0,0,1,426], +"moc__predefs_8h.html#a300c6970bb64b04e45a9c2ed139ecce8":[2,0,0,1,131], +"moc__predefs_8h.html#a306a0b7c6f110b24a77083abaf3acc7a":[2,0,0,1,401], +"moc__predefs_8h.html#a309fa84aefd09132258bbe21c20ef7d4":[2,0,0,1,347], +"moc__predefs_8h.html#a30abb5bd7d89e9e8c19677795db387c8":[2,0,0,1,367], +"moc__predefs_8h.html#a30b5a905003a2c748fdb277e1eb61134":[2,0,0,1,436], +"moc__predefs_8h.html#a326c37ba86474b37dd0ae9100e005fac":[2,0,0,1,223], +"moc__predefs_8h.html#a33713305051e7cb497b5e2c924bae95e":[2,0,0,1,414], +"moc__predefs_8h.html#a3641a65e329884d817848ba5d6163f07":[2,0,0,1,170], +"moc__predefs_8h.html#a369266c24eacffb87046522897a570d5":[2,0,0,1,463], +"moc__predefs_8h.html#a36b3a5bf25feeef4fbdca37900522f3c":[2,0,0,1,405], +"moc__predefs_8h.html#a370369ba2463363de726ff9394861a2b":[2,0,0,1,210], +"moc__predefs_8h.html#a3764f041b8bf4c5ebd0bf19c071f416c":[2,0,0,1,471], +"moc__predefs_8h.html#a3783fd947621ab5304708e78da5bd6d3":[2,0,0,1,235], +"moc__predefs_8h.html#a3877156c4b30153ae764b0dad8d8130a":[2,0,0,1,393], +"moc__predefs_8h.html#a38782886ef0f9d68b695bcec1f396f38":[2,0,0,1,64], +"moc__predefs_8h.html#a3996b66e851f8b7d95267629346f3e8b":[2,0,0,1,262], +"moc__predefs_8h.html#a3aa761811887b1634bfca566fa671424":[2,0,0,1,265], +"moc__predefs_8h.html#a3b29a64a7b1529c08f87d256d20aade1":[2,0,0,1,86], +"moc__predefs_8h.html#a3b68223a25c19aec8b02a4ca73deedbe":[2,0,0,1,15], +"moc__predefs_8h.html#a3b9ca6d1bbc15a54595e781e4f24b045":[2,0,0,1,144], +"moc__predefs_8h.html#a3c7f3130e367d47bcc27a0a41278155e":[2,0,0,1,267], +"moc__predefs_8h.html#a3c8df97b7413f417379377b604d060f5":[2,0,0,1,270], +"moc__predefs_8h.html#a3d4fe0f0b2e3ae12569d4a663dee8a0c":[2,0,0,1,105], +"moc__predefs_8h.html#a3dd03066dbb351dfa51353c80a7902a2":[2,0,0,1,79], +"moc__predefs_8h.html#a3dda013c532cea311e9a22bf90dcec86":[2,0,0,1,47], +"moc__predefs_8h.html#a3ef70e13cfbe3264fe0b212f8f46d76c":[2,0,0,1,216], +"moc__predefs_8h.html#a3fdaeff4a929898125f060b951479a85":[2,0,0,1,467], +"moc__predefs_8h.html#a4012402899bd689646e39a043ccb6047":[2,0,0,1,114], +"moc__predefs_8h.html#a401f5f43b9e96d82152bf7cec0be6dfd":[2,0,0,1,241], +"moc__predefs_8h.html#a403ff8d656461ff5a083fb47f73c7da3":[2,0,0,1,185], +"moc__predefs_8h.html#a405cee4934ed56c9a4aa4e7dc4380bd2":[2,0,0,1,382], +"moc__predefs_8h.html#a429021b24d3b356d0f5cbfc44588966c":[2,0,0,1,16], +"moc__predefs_8h.html#a42bcb9278fa2b4721fe04fc0627055ce":[2,0,0,1,48], +"moc__predefs_8h.html#a42c04530cde3529000b65eab84d6ef6b":[2,0,0,1,51], +"moc__predefs_8h.html#a430c761265b6ca716c3686bad5c43f45":[2,0,0,1,453], +"moc__predefs_8h.html#a442f6e00169e1726f7b9a05eb3c617d8":[2,0,0,1,173], +"moc__predefs_8h.html#a45bfb898fee6977940d398ec0cd0d570":[2,0,0,1,374], +"moc__predefs_8h.html#a460a4ac8f082aeb8dfbd842efd5776a6":[2,0,0,1,2], +"moc__predefs_8h.html#a48177288d9ba19526ddfa87071d2c735":[2,0,0,1,439], +"moc__predefs_8h.html#a4aa9e67eb1c2cdfe7fa3321583b16e41":[2,0,0,1,361], +"moc__predefs_8h.html#a4b2be09502f3fe1cd13838c6761803b3":[2,0,0,1,334], +"moc__predefs_8h.html#a4b8971e411b88166747d2a3c2425eaee":[2,0,0,1,219], +"moc__predefs_8h.html#a4bd7bc94412d84b84388c574770b4549":[2,0,0,1,333], +"moc__predefs_8h.html#a4bf843ffcadf9b162b74c1b7e546e8e9":[2,0,0,1,400], +"moc__predefs_8h.html#a4c0e7daf2ae663a4f96693468bbb279f":[2,0,0,1,378], +"moc__predefs_8h.html#a4ca36196b9f45fa67a0b23c43c658aa1":[2,0,0,1,256], +"moc__predefs_8h.html#a4d4e419b93a42fbd34e0f4ae3640c4a9":[2,0,0,1,125], +"moc__predefs_8h.html#a4d78dd41059205e8fd1a29af6dda266c":[2,0,0,1,20], +"moc__predefs_8h.html#a4d7a4d071e8a85bb41ca9c2bc7f9a5a5":[2,0,0,1,358], +"moc__predefs_8h.html#a4e1f76417ed810f038c277a5aba691fa":[2,0,0,1,229], +"moc__predefs_8h.html#a4e65214f450ef6326b96b52e6dd5714b":[2,0,0,1,473], +"moc__predefs_8h.html#a4e81652d864b9ad956e02419453eafae":[2,0,0,1,177], +"moc__predefs_8h.html#a4e8a5398566f8b2666a8a71b2dbcf3ca":[2,0,0,1,254], +"moc__predefs_8h.html#a4f3694eafdad4edb2bfe114a06553dec":[2,0,0,1,237], +"moc__predefs_8h.html#a4f41dbe213ea9662c1fb0f5af562e363":[2,0,0,1,456], +"moc__predefs_8h.html#a4f69990d03f9fb0c390a6fbad28a737b":[2,0,0,1,323], +"moc__predefs_8h.html#a513fb8de806bb8fa1da2271c2872baad":[2,0,0,1,312], +"moc__predefs_8h.html#a5144286cd63b294154788dfb0730d9cf":[2,0,0,1,7], +"moc__predefs_8h.html#a5162baf69b085321c18fe6f0bdb537e9":[2,0,0,1,52], +"moc__predefs_8h.html#a517db8faae01669f8cef916eae3ac205":[2,0,0,1,212], +"moc__predefs_8h.html#a51b087854dc3c2f76946efb432745639":[2,0,0,1,196], +"moc__predefs_8h.html#a53186c3d05006947fb8bd09bcdb0d60c":[2,0,0,1,109], +"moc__predefs_8h.html#a5324d68af227292ae61ae6e5fab5ef76":[2,0,0,1,37], +"moc__predefs_8h.html#a5328bc8cdad22da7ce2eb594194a16a7":[2,0,0,1,1], +"moc__predefs_8h.html#a5436993e3c0ddb7caee4b9b01021cde4":[2,0,0,1,264], +"moc__predefs_8h.html#a54983bc256dc296a42fe88b9be24f268":[2,0,0,1,77], +"moc__predefs_8h.html#a559dd2b0792fc2b0b30ba1dd66ca7cdc":[2,0,0,1,71], +"moc__predefs_8h.html#a568e1d447594c30f8cc3c33d62f1cb1e":[2,0,0,1,413], +"moc__predefs_8h.html#a56e81e5fec09084ed0e8ed0cccddf3a0":[2,0,0,1,158], +"moc__predefs_8h.html#a57e1156511d5ca1e45a5505f24518c87":[2,0,0,1,49], +"moc__predefs_8h.html#a5822cf04414d99e0ee81e8bbe182226b":[2,0,0,1,30], +"moc__predefs_8h.html#a5922e567fc671cc2985da95b33544c16":[2,0,0,1,45], +"moc__predefs_8h.html#a5a17054b70390cdd56c412f1fa9bcce5":[2,0,0,1,3], +"moc__predefs_8h.html#a5a8c0a31337df765b55c6260ef58e51e":[2,0,0,1,403], +"moc__predefs_8h.html#a5a949d2ee22a649377e5bec02e3e5855":[2,0,0,1,317], +"moc__predefs_8h.html#a5aa890f05b3876c70af76a6e5a8e910a":[2,0,0,1,355], +"moc__predefs_8h.html#a5aed2c2843dad661012dac2d465f89e1":[2,0,0,1,389], +"moc__predefs_8h.html#a5b753f1dbbed79a7126b24ca512246d5":[2,0,0,1,452], +"moc__predefs_8h.html#a5b7b699f70c2278374328a3933389c8b":[2,0,0,1,434], +"moc__predefs_8h.html#a5bc62cc317387328499b3ea753c5c4a3":[2,0,0,1,44], +"moc__predefs_8h.html#a5cc6a3e1680136db2b5e60c2fb703d99":[2,0,0,1,342], +"moc__predefs_8h.html#a5db559b8fe7a2135f05686e92ce64d9d":[2,0,0,1,388], +"moc__predefs_8h.html#a5e3e28499ef95cba518ac1a961dc2a76":[2,0,0,1,309], +"moc__predefs_8h.html#a5e816b71154141be2784accabcdc0ead":[2,0,0,1,80], +"moc__predefs_8h.html#a5ed9c6693683a4d844cb05e49cef8337":[2,0,0,1,130], +"moc__predefs_8h.html#a5eeda02831b3d7147a1a90f2d52a6228":[2,0,0,1,54], +"moc__predefs_8h.html#a5f5ce266e768d95b9fd04856e5826aff":[2,0,0,1,70], +"moc__predefs_8h.html#a5fa28f9bc424c535269b607039836f19":[2,0,0,1,462], +"moc__predefs_8h.html#a608f71df249414d1993b7e4a0a706175":[2,0,0,1,179], +"moc__predefs_8h.html#a6091ba87f9a538a9685b7997a64a64db":[2,0,0,1,239], +"moc__predefs_8h.html#a60c56e472a1144b03053a2c7a2abb7fb":[2,0,0,1,65], +"moc__predefs_8h.html#a611d40c375b1972669292fd27bc4afb7":[2,0,0,1,116], +"moc__predefs_8h.html#a61969667ef3b668024a20df9bc34c991":[2,0,0,1,76], +"moc__predefs_8h.html#a61c258ffad919b338b83e1401265f671":[2,0,0,1,103], +"moc__predefs_8h.html#a61e63cea5ac78bcf0d282b70d63668e1":[2,0,0,1,390], +"moc__predefs_8h.html#a624566488a5633fb7518ebda59505eee":[2,0,0,1,25], +"moc__predefs_8h.html#a6310789290c9c5717826b56443ce69ec":[2,0,0,1,193], +"moc__predefs_8h.html#a631b640abf43029deabba286d4e0dc41":[2,0,0,1,23], +"moc__predefs_8h.html#a631e7073725dcc54f650b72c617f36ed":[2,0,0,1,363], +"moc__predefs_8h.html#a63419ad12ec3f4e18746a0a64fcfc136":[2,0,0,1,139], +"moc__predefs_8h.html#a63678ee519e34f99b61f3aeb5ff2cd75":[2,0,0,1,94], +"moc__predefs_8h.html#a63a7f12eb75939fdf2701f1a5f5af754":[2,0,0,1,72], +"moc__predefs_8h.html#a63d6f5d1c3371192fe03b3fb06e82400":[2,0,0,1,87], +"moc__predefs_8h.html#a64a27148d4e67c4ae167442c7dc92a0a":[2,0,0,1,397], +"moc__predefs_8h.html#a658d9ba84d429e748ce5f1905732c962":[2,0,0,1,167], +"moc__predefs_8h.html#a65967d857259eb36c9546a512f2ab4b5":[2,0,0,1,232], +"moc__predefs_8h.html#a65ac8cd0434319a3a31dc031409c218a":[2,0,0,1,454], +"moc__predefs_8h.html#a65ff7d0e95dab0167cbd46d117cfa74a":[2,0,0,1,227], +"moc__predefs_8h.html#a6605c8368985e3b1885a84d1d44ff798":[2,0,0,1,142], +"moc__predefs_8h.html#a6690459ee522ac8463747b0ba7008596":[2,0,0,1,314], +"moc__predefs_8h.html#a66fbb70a69c9f66830f95a20e46091a6":[2,0,0,1,329], +"moc__predefs_8h.html#a6770e92cfa87964cfcf358a6358f5347":[2,0,0,1,215], +"moc__predefs_8h.html#a68e0683c8f359f7d7e013706fbcc2040":[2,0,0,1,337], +"moc__predefs_8h.html#a690dd4c0c7711687e30418f5e988d842":[2,0,0,1,221], +"moc__predefs_8h.html#a6977858c9aa6bb2c67f524a948fc8062":[2,0,0,1,252], +"moc__predefs_8h.html#a6a00585a981c3e3be5d3794afdf2bc67":[2,0,0,1,112], +"moc__predefs_8h.html#a6a0b73b50b59fa18dbcea5b6dee0899f":[2,0,0,1,332], +"moc__predefs_8h.html#a6a4d11835d03027f3929b84fe7b55bf6":[2,0,0,1,226], +"moc__predefs_8h.html#a6a762b969d5eea9e6a8db715a5f5a1a9":[2,0,0,1,396], +"moc__predefs_8h.html#a6a7f83363cddf6ce9c8548224f012180":[2,0,0,1,148], +"moc__predefs_8h.html#a6b035b68b018afe25e07f3cb23a8f921":[2,0,0,1,259], +"moc__predefs_8h.html#a6b0e96965a1a25948b8e0e555a459032":[2,0,0,1,372], +"moc__predefs_8h.html#a6b5dca178c4ffe879cd624f9b17b9bd1":[2,0,0,1,74], +"moc__predefs_8h.html#a6c163c6e58545740cbae55ad8ffa027f":[2,0,0,1,153], +"moc__predefs_8h.html#a6c6342c53a7213211680dc5caae14491":[2,0,0,1,282], +"moc__predefs_8h.html#a6d3e36bb5d7e7ce3eda28fb174e404c6":[2,0,0,1,108], +"moc__predefs_8h.html#a6e4065bb57fe77e1d8635f8108bf3c64":[2,0,0,1,62], +"moc__predefs_8h.html#a6e46fffd230d19a658f6235169cc4bd5":[2,0,0,1,320], +"moc__predefs_8h.html#a6e947aa0a2cb4808d560339fef0d4793":[2,0,0,1,174], +"moc__predefs_8h.html#a6f2032bd7e6248b526a2c13e37c7b972":[2,0,0,1,238], +"moc__predefs_8h.html#a6f68e07fad7d8b624f820fc49e241dc2":[2,0,0,1,415], +"moc__predefs_8h.html#a7102286d09cb4948865f4effecc55941":[2,0,0,1,375], +"moc__predefs_8h.html#a711d7b7f27671b10b11a74c37f653ad7":[2,0,0,1,83], +"moc__predefs_8h.html#a726a020189392103a9404da070536e07":[2,0,0,1,304], +"moc__predefs_8h.html#a72e3c30a05bd2bb63d76550e451a438e":[2,0,0,1,27], +"moc__predefs_8h.html#a72f76585ea7d1131d4e9be0110fb0ec3":[2,0,0,1,218], +"moc__predefs_8h.html#a731bd57ce12918b6118b6a3e37c20d8e":[2,0,0,1,128], +"moc__predefs_8h.html#a7377e1bc6bd2fd9bcfe98283ab0e9037":[2,0,0,1,57], +"moc__predefs_8h.html#a737828904768e0ab49acbdb3371d8445":[2,0,0,1,164], +"moc__predefs_8h.html#a7415922e4243d2508114a0379bce6374":[2,0,0,1,412], +"moc__predefs_8h.html#a748143fe17201c420b868b8f30c57d59":[2,0,0,1,93], +"moc__predefs_8h.html#a750a955b52ac9b7534167fac1d661347":[2,0,0,1,310], +"moc__predefs_8h.html#a762c3361bcfeccc1f2742cc94b1ab65b":[2,0,0,1,28], +"moc__predefs_8h.html#a76363f8817bf3df4542ebbcce172df53":[2,0,0,1,399], +"moc__predefs_8h.html#a768834e55cd5d1c30d24b0dbc83563cc":[2,0,0,1,328], +"moc__predefs_8h.html#a771caa69aba7d7732ba184f9be109838":[2,0,0,1,40], +"moc__predefs_8h.html#a771dcf9433ec3eae99c1124058d93e88":[2,0,0,1,21], +"moc__predefs_8h.html#a7756c51be09258757005877d08688a05":[2,0,0,1,368], +"moc__predefs_8h.html#a775d1a831fa88d8c38c76d31947a8ebf":[2,0,0,1,192], +"moc__predefs_8h.html#a779a207685ad2b8ca4cdab02ece517eb":[2,0,0,1,195], +"moc__predefs_8h.html#a77d82789abb2c1a3dccc47afd5b2edb9":[2,0,0,1,365], +"moc__predefs_8h.html#a789bbc3047d2fcfc083a9c51a1e8686d":[2,0,0,1,360], +"moc__predefs_8h.html#a78b7e10394762d719fec9a3e07b33ee2":[2,0,0,1,277], +"moc__predefs_8h.html#a78e2494c8fce0c7ec9f62865340d6abf":[2,0,0,1,352], +"moc__predefs_8h.html#a79e289c54a8c9851b2b118d442bbc26c":[2,0,0,1,100], +"moc__predefs_8h.html#a7a06acb3945879bcc985dde7bf0bcbdc":[2,0,0,1,157], +"moc__predefs_8h.html#a7a76473a66d022aee2c9f661405d8fbb":[2,0,0,1,298], +"moc__predefs_8h.html#a7a8061fb04ad84cbc82738ee7fbff629":[2,0,0,1,410], +"moc__predefs_8h.html#a7ac5a3b1dc00b508a391f8c6c37e2165":[2,0,0,1,163], +"moc__predefs_8h.html#a7b5b9dc07de6dd5c39c59b0ac260f943":[2,0,0,1,349], +"moc__predefs_8h.html#a7cb6a2aeb6e528ac59bedb98ebeac198":[2,0,0,1,67], +"moc__predefs_8h.html#a7df1cb434b3b8baae4bf6053cb2a3a4a":[2,0,0,1,230], +"moc__predefs_8h.html#a7f18358ae5a65523140cb561bbeaa3a9":[2,0,0,1,183], +"moc__predefs_8h.html#a7fd10bda3bcfa8ce29c11ee095b31d36":[2,0,0,1,307], +"moc__predefs_8h.html#a808f04c28bb0ef2d6b77dd66564ad351":[2,0,0,1,343], +"moc__predefs_8h.html#a81eca8959b61c7e2abc29a2c24af02bc":[2,0,0,1,447], +"moc__predefs_8h.html#a82a2c3ff271d1685b450975ffa68544a":[2,0,0,1,166], +"moc__predefs_8h.html#a8394afe92148ddbdf0e0697978cd1382":[2,0,0,1,257], +"moc__predefs_8h.html#a83a4ddd79aaf0dd95eaa234e59cec667":[2,0,0,1,245], +"moc__predefs_8h.html#a84479d2bbe1d7286f406fcc302f41376":[2,0,0,1,228], +"moc__predefs_8h.html#a848818a4bc6cb18c25922ea8e7485cb7":[2,0,0,1,24], +"moc__predefs_8h.html#a84ca4631d4b617a6dcb94faa40235701":[2,0,0,1,56], +"moc__predefs_8h.html#a856de0bd8deb7e6ddd55e6e961cae874":[2,0,0,1,370], +"moc__predefs_8h.html#a859ac49b336ef5ee25b734a48f911a15":[2,0,0,1,319], +"moc__predefs_8h.html#a85eba162e856268c269aac352454431f":[2,0,0,1,258], +"moc__predefs_8h.html#a868c5b1405b26bc9592fa9f3248e99aa":[2,0,0,1,152] +}; diff --git a/docs/navtreeindex2.js b/docs/navtreeindex2.js new file mode 100644 index 0000000..7b498ee --- /dev/null +++ b/docs/navtreeindex2.js @@ -0,0 +1,230 @@ +var NAVTREEINDEX2 = +{ +"moc__predefs_8h.html#a87140cc80075e8907e7bbfd910c5642a":[2,0,0,1,268], +"moc__predefs_8h.html#a8755bcd8eb888d4c837999718b8e0b18":[2,0,0,1,424], +"moc__predefs_8h.html#a87b7ceac2198cab045e40c9a64b11679":[2,0,0,1,316], +"moc__predefs_8h.html#a87baa4e50d6b00b4be6c3173a4280f2f":[2,0,0,1,145], +"moc__predefs_8h.html#a889943b266851fe7e9cdac86795507aa":[2,0,0,1,190], +"moc__predefs_8h.html#a8925e15bce319fa2f42c659f6a3e0199":[2,0,0,1,459], +"moc__predefs_8h.html#a892f356bce3091ffb2e87dfb778683d3":[2,0,0,1,411], +"moc__predefs_8h.html#a895181efde95bdfb3489ba3018c48582":[2,0,0,1,295], +"moc__predefs_8h.html#a89ba5dc332ccdea517a33b5e81488f2e":[2,0,0,1,313], +"moc__predefs_8h.html#a8bd657ce95940b7c6087cf5aa54d5280":[2,0,0,1,338], +"moc__predefs_8h.html#a8bdd19cad331a646ae8375be00e34cb3":[2,0,0,1,346], +"moc__predefs_8h.html#a8cc5a4a43af8f7568a450cad0e7d5bd8":[2,0,0,1,379], +"moc__predefs_8h.html#a8cf0f2397b96d2a198ff932dbfa50344":[2,0,0,1,395], +"moc__predefs_8h.html#a8d44614ef6d7f2bbbd9224d416d867b9":[2,0,0,1,127], +"moc__predefs_8h.html#a8dc0e461cdc2e9d30acc1b94f1c18a5f":[2,0,0,1,18], +"moc__predefs_8h.html#a8ef55ba782e9d01cb22911f97168d06a":[2,0,0,1,146], +"moc__predefs_8h.html#a8f246ad899706f78b8dfcd33daff7b07":[2,0,0,1,137], +"moc__predefs_8h.html#a8faf1f097f05558889df4c44d052d35e":[2,0,0,1,29], +"moc__predefs_8h.html#a907d418d5ddc748993dbba5c01a0f5ec":[2,0,0,1,208], +"moc__predefs_8h.html#a9097ba1748883030bc82602933e6be1d":[2,0,0,1,373], +"moc__predefs_8h.html#a91c02999719803565cefadb731a2a668":[2,0,0,1,419], +"moc__predefs_8h.html#a935ebe200313334107dd681186ee586e":[2,0,0,1,126], +"moc__predefs_8h.html#a93a5a9d251e5bff3c2a130627f20e782":[2,0,0,1,351], +"moc__predefs_8h.html#a94ead674b2441dc29dbd5d6aba467197":[2,0,0,1,301], +"moc__predefs_8h.html#a95b91b7560e936fdc4ce441d38b94b3e":[2,0,0,1,34], +"moc__predefs_8h.html#a967b4ada96d28b97bc07e26e1def8e66":[2,0,0,1,248], +"moc__predefs_8h.html#a9685ff8e617f3c5892c2a6fe3484f3b7":[2,0,0,1,182], +"moc__predefs_8h.html#a96b511bfa61e4203ec3668fb39063309":[2,0,0,1,305], +"moc__predefs_8h.html#a97163404b3b71f857e35be74607f88f7":[2,0,0,1,136], +"moc__predefs_8h.html#a97e13c059a63d2d547cc4a9f386641d2":[2,0,0,1,240], +"moc__predefs_8h.html#a98708440262c0e7482dea555d0f97289":[2,0,0,1,13], +"moc__predefs_8h.html#a9875b8f50cd7d288819635ebf494cf3d":[2,0,0,1,134], +"moc__predefs_8h.html#a98e298953067135caf4bc0b8e8e7cd01":[2,0,0,1,184], +"moc__predefs_8h.html#a9a8a7cd9484baf4b72ab15682745d119":[2,0,0,1,84], +"moc__predefs_8h.html#a9b18cde45e680760b3a997b0b1884408":[2,0,0,1,147], +"moc__predefs_8h.html#a9b9593a0ca3e3d1a3f7792f287451ead":[2,0,0,1,4], +"moc__predefs_8h.html#a9bed0d0b1893211f857ad76d6728ea7e":[2,0,0,1,294], +"moc__predefs_8h.html#a9c0d95d87e68f1037aeb6c38a3660712":[2,0,0,1,315], +"moc__predefs_8h.html#a9d8856f35bfb1b05fc386e1a964b491e":[2,0,0,1,181], +"moc__predefs_8h.html#a9e0564ada348dff0b4436b156412f430":[2,0,0,1,150], +"moc__predefs_8h.html#a9e077def8c310cdb5fef37666a92c5a5":[2,0,0,1,46], +"moc__predefs_8h.html#a9e75b72378b039587e4fc4006776826d":[2,0,0,1,325], +"moc__predefs_8h.html#a9eb6044e34be0d38146a2dadec14ecb2":[2,0,0,1,331], +"moc__predefs_8h.html#a9f8e418d5a6f916ffe36f250fb99d7bc":[2,0,0,1,383], +"moc__predefs_8h.html#aa021702c3b7627dccaa51c33a2c5a8d1":[2,0,0,1,120], +"moc__predefs_8h.html#aa092b0d4c1d4d4407b97024f6cb2820c":[2,0,0,1,466], +"moc__predefs_8h.html#aa0d249d82751bd4ee0280990bc510371":[2,0,0,1,274], +"moc__predefs_8h.html#aa26975016847959a13829cb568b126b3":[2,0,0,1,171], +"moc__predefs_8h.html#aa2fbfcb03f8deb89dc6122923d47bc76":[2,0,0,1,141], +"moc__predefs_8h.html#aa37bd83c4330ad1020cf1bbdc89070b6":[2,0,0,1,288], +"moc__predefs_8h.html#aa39266a3f430ebcd4a4374e7a815e23f":[2,0,0,1,326], +"moc__predefs_8h.html#aa3f186f612efe5edfcc371c95617f06f":[2,0,0,1,220], +"moc__predefs_8h.html#aa476e815f1590ede136d92b09f760581":[2,0,0,1,420], +"moc__predefs_8h.html#aa4b8e94710cdb10a1bce40ca28f4f7db":[2,0,0,1,17], +"moc__predefs_8h.html#aa4c8d3109d01e6ec62924594f73ffbf4":[2,0,0,1,446], +"moc__predefs_8h.html#aa51016843ec55a0a9df7ce9f85767ee7":[2,0,0,1,197], +"moc__predefs_8h.html#aa521e9309218b6b61261318bd5feeb81":[2,0,0,1,362], +"moc__predefs_8h.html#aa54b83195a30e6beb98ad62a6a89e075":[2,0,0,1,417], +"moc__predefs_8h.html#aa5be39d362c571d48d6236f0bd58f1fc":[2,0,0,1,430], +"moc__predefs_8h.html#aa7682d4c3e5ed9fca81cf37aee3ef19a":[2,0,0,1,12], +"moc__predefs_8h.html#aa7d8d0b2cda49359adbabb6e843e8700":[2,0,0,1,281], +"moc__predefs_8h.html#aa806e8f7ce2a8db3bf676735fca2ac51":[2,0,0,1,111], +"moc__predefs_8h.html#aa808bc3159395526ac0c07d36b87dec1":[2,0,0,1,189], +"moc__predefs_8h.html#aa860a111dcff819d3502dda14f8ac778":[2,0,0,1,376], +"moc__predefs_8h.html#aaa322b38474911c60e45134194bd6e8f":[2,0,0,1,66], +"moc__predefs_8h.html#aaa8084a56e3732008acafea8fd15eb2f":[2,0,0,1,335], +"moc__predefs_8h.html#aaab7817ee2e4bb88b5178e101e7ab2a6":[2,0,0,1,90], +"moc__predefs_8h.html#aab1edcef0b79684e5d2f12a2696e260f":[2,0,0,1,91], +"moc__predefs_8h.html#aab9c2d1e67d0bd49261c9b5b0d20ce20":[2,0,0,1,293], +"moc__predefs_8h.html#aabb9dbf55546af708a50831a7c48d9b9":[2,0,0,1,98], +"moc__predefs_8h.html#aacea0bba92648df736365a17a1110106":[2,0,0,1,290], +"moc__predefs_8h.html#aad3d364f6a93a9d5848f06f5172561c1":[2,0,0,1,260], +"moc__predefs_8h.html#aadf1477c4b8076c939fb4fdeca6f4b8e":[2,0,0,1,244], +"moc__predefs_8h.html#aae92712264b830cd7d24d4b81d502ffb":[2,0,0,1,336], +"moc__predefs_8h.html#aaf06a1464d33431377a2ee5293ec70d2":[2,0,0,1,402], +"moc__predefs_8h.html#aaf5d84a69adea71f50f8007fabde7ffb":[2,0,0,1,437], +"moc__predefs_8h.html#ab0162c88021716c1e0de68c71b5b5c9c":[2,0,0,1,470], +"moc__predefs_8h.html#ab11d0b7a18b7d57dff361c0848f28e09":[2,0,0,1,234], +"moc__predefs_8h.html#ab2242f19b1253ebe1f471fc61c5359c5":[2,0,0,1,292], +"moc__predefs_8h.html#ab28d96afaf0737e4f3a51adac109fb36":[2,0,0,1,207], +"moc__predefs_8h.html#ab2a758783977e00923fcc60926735ee2":[2,0,0,1,22], +"moc__predefs_8h.html#ab355da8484a60237cfbe45d368b6bc40":[2,0,0,1,353], +"moc__predefs_8h.html#ab35e271dce6e7e2190d60b5905375419":[2,0,0,1,36], +"moc__predefs_8h.html#ab4425dccbcddb2363a2a8a67367a5b42":[2,0,0,1,380], +"moc__predefs_8h.html#ab53ade321286145b92622c3a79fc168f":[2,0,0,1,60], +"moc__predefs_8h.html#ab557192dd4e486a262d4495e29fe356d":[2,0,0,1,133], +"moc__predefs_8h.html#ab572f59c4b0c5a1f4c2953f38a76d7b3":[2,0,0,1,275], +"moc__predefs_8h.html#ab6ba7de2838beb20b1eaca71c062c8e2":[2,0,0,1,186], +"moc__predefs_8h.html#ab6d1db3f1e2c31e9952384f079b110b1":[2,0,0,1,322], +"moc__predefs_8h.html#ab6eb3d66486ef05ac7f1d489bfc675b4":[2,0,0,1,341], +"moc__predefs_8h.html#ab6f53c3751a12ac217f61873403a18bb":[2,0,0,1,318], +"moc__predefs_8h.html#ab7406b58b90e06608971dc2450931858":[2,0,0,1,14], +"moc__predefs_8h.html#ab743789ae83a7a7f61c5b96506f48ca9":[2,0,0,1,278], +"moc__predefs_8h.html#ab7d84ba8d87b8bb40aa752334bb51b23":[2,0,0,1,348], +"moc__predefs_8h.html#ab86380373ae9fa385c8a2464023774a8":[2,0,0,1,406], +"moc__predefs_8h.html#ab8d03bfd9e9120480015fc51dc8b8e65":[2,0,0,1,330], +"moc__predefs_8h.html#ab97fb376186e27dd069f91fdb8944c45":[2,0,0,1,442], +"moc__predefs_8h.html#ab9bf5af329c2a3a3dc5874289dda6f82":[2,0,0,1,39], +"moc__predefs_8h.html#aba0020f767139d4cafb9f52eb252e247":[2,0,0,1,345], +"moc__predefs_8h.html#aba008af276ac0e3f85d1479af98f62b0":[2,0,0,1,458], +"moc__predefs_8h.html#abb5859eb17652f35bc56f2ca26b3089b":[2,0,0,1,280], +"moc__predefs_8h.html#abbbf9feda211d9f5bd5269cd17fc9355":[2,0,0,1,11], +"moc__predefs_8h.html#abd1effb8f681ce210223aceb08d8ed33":[2,0,0,1,172], +"moc__predefs_8h.html#abd2230e0e187a5bae549a0ba786b311b":[2,0,0,1,88], +"moc__predefs_8h.html#abd66733cff0ce1656bb7e744aa151bea":[2,0,0,1,106], +"moc__predefs_8h.html#abe904f812f7ddc9a264214f2ba613304":[2,0,0,1,321], +"moc__predefs_8h.html#abf681096fa9e21512a3fe83f0dcfdb36":[2,0,0,1,217], +"moc__predefs_8h.html#abfa247cfbd725226b9239a8eb186101a":[2,0,0,1,19], +"moc__predefs_8h.html#abfd50dcd2ef551246269f303d99fd662":[2,0,0,1,418], +"moc__predefs_8h.html#ac1175c9478c586edee06d1f788a03b83":[2,0,0,1,122], +"moc__predefs_8h.html#ac29c76a6702808cfc4a5f661d0d33c2c":[2,0,0,1,303], +"moc__predefs_8h.html#ac2dfcd39d29c1e34de6421b15b2cfde9":[2,0,0,1,61], +"moc__predefs_8h.html#ac3707c00cdbb574b68fd6263ac4d0407":[2,0,0,1,276], +"moc__predefs_8h.html#ac3cd8b035cfb8a68f6d1119ace36f1cc":[2,0,0,1,429], +"moc__predefs_8h.html#ac47e77d27e7d30f01cde452a9cd218ed":[2,0,0,1,41], +"moc__predefs_8h.html#ac4ca588ceb885c4ec2579b162934241d":[2,0,0,1,457], +"moc__predefs_8h.html#ac5a018e839dcea88e74e3b8eeac9487c":[2,0,0,1,279], +"moc__predefs_8h.html#ac60fe3845f87fdaf6365a733ede87cfe":[2,0,0,1,327], +"moc__predefs_8h.html#ac634ecad75dc34e67d161df1d694d892":[2,0,0,1,59], +"moc__predefs_8h.html#ac67712f8d687485a4bd1c0b0e2741771":[2,0,0,1,151], +"moc__predefs_8h.html#ac8770dbc2da017dd63e1a44fc07d248f":[2,0,0,1,432], +"moc__predefs_8h.html#ac8ff7f5492853e7e2fa19ebb2b98c9bc":[2,0,0,1,243], +"moc__predefs_8h.html#ac987d32df85aebd4b7c6b0b0cc7fac15":[2,0,0,1,425], +"moc__predefs_8h.html#aca2a716d3e84ccffe000390bb2e2fb38":[2,0,0,1,75], +"moc__predefs_8h.html#acb3a3a30075a9589b520df3b329df29e":[2,0,0,1,168], +"moc__predefs_8h.html#acb6063ed9d8841cf71c93f2bf34832e0":[2,0,0,1,350], +"moc__predefs_8h.html#acb7bbc60a8f2b4dbcff77f7c75fd6acc":[2,0,0,1,359], +"moc__predefs_8h.html#acc7db708461d0efef423bc9c3aa645c4":[2,0,0,1,451], +"moc__predefs_8h.html#acc93c253f739f4447ca16ebf13b29959":[2,0,0,1,9], +"moc__predefs_8h.html#acd1e46c682808f15749b16266ade0c27":[2,0,0,1,35], +"moc__predefs_8h.html#acd7b9de9b6bd817027cb37ec6c82cba9":[2,0,0,1,175], +"moc__predefs_8h.html#acdef6e7c9f7d4096d19aa387abc0a045":[2,0,0,1,433], +"moc__predefs_8h.html#acdfdd67de0664b690c42bba327cf7da1":[2,0,0,1,26], +"moc__predefs_8h.html#ace59605d6645350a7c5cced76ffb27fa":[2,0,0,1,78], +"moc__predefs_8h.html#aceda5e62622b9783846d26610d038f71":[2,0,0,1,159], +"moc__predefs_8h.html#acefa39ff476ff22ce343809fff1e8bc1":[2,0,0,1,213], +"moc__predefs_8h.html#acff705a6de0de8303f2394603bbcdb90":[2,0,0,1,263], +"moc__predefs_8h.html#acfffb302850fa081bd63c30573077004":[2,0,0,1,63], +"moc__predefs_8h.html#ad0c5a78bb2815c2ca02963343d1751a8":[2,0,0,1,156], +"moc__predefs_8h.html#ad149c0565fcf669b23f483e5b7f80dbd":[2,0,0,1,199], +"moc__predefs_8h.html#ad22737f11009b4bf60ba233eee7420dd":[2,0,0,1,200], +"moc__predefs_8h.html#ad293ff29c0ac9a6b4187d366d6de3772":[2,0,0,1,149], +"moc__predefs_8h.html#ad3062ff83239e8dd2b8969a2f368d608":[2,0,0,1,253], +"moc__predefs_8h.html#ad3165a97a460b88ccdea80967918f250":[2,0,0,1,97], +"moc__predefs_8h.html#ad31fa73585e8346393917225871cbc0b":[2,0,0,1,364], +"moc__predefs_8h.html#ad3547f2b474d73b357d9b760b3e7f34c":[2,0,0,1,291], +"moc__predefs_8h.html#ad36bc14a0433c9f88496bed4ccbd65a3":[2,0,0,1,222], +"moc__predefs_8h.html#ad3907b8d9bb2265255e6e0d66d91d165":[2,0,0,1,250], +"moc__predefs_8h.html#ad4f33e46b6c0be1a2bbd83f3efe19165":[2,0,0,1,225], +"moc__predefs_8h.html#ad4fca572f500aba76348d0942a2c5827":[2,0,0,1,233], +"moc__predefs_8h.html#ad61e6ae874c4687f0c2d31ae1095a110":[2,0,0,1,450], +"moc__predefs_8h.html#ad62096dceb9fc55727c82df7ac9fc83f":[2,0,0,1,8], +"moc__predefs_8h.html#ad666d9aaf02b587abdeffff5ce3545e2":[2,0,0,1,160], +"moc__predefs_8h.html#ad739d1e4f2c7c3928ac586e8d37da3d2":[2,0,0,1,448], +"moc__predefs_8h.html#ad7a5615aea1516ee885112456cf695e8":[2,0,0,1,266], +"moc__predefs_8h.html#adb0d09cff489746c5456407aa832fced":[2,0,0,1,251], +"moc__predefs_8h.html#adc1ccadf1d98117e586324ccb189c09f":[2,0,0,1,246], +"moc__predefs_8h.html#add9f144f6de9798bb441768f7cee1072":[2,0,0,1,306], +"moc__predefs_8h.html#addad5b57ed33bc5c79361574d9e03c06":[2,0,0,1,472], +"moc__predefs_8h.html#ade7aebdae6e8389a450aac653544c33f":[2,0,0,1,107], +"moc__predefs_8h.html#ade9dc15e022182eb0a62a0fd17d18b75":[2,0,0,1,42], +"moc__predefs_8h.html#adeecd09fc579ff3f8222cf8ae581b936":[2,0,0,1,55], +"moc__predefs_8h.html#adeff56b51aead6443852cacac294d464":[2,0,0,1,89], +"moc__predefs_8h.html#adf4502fefc73baefd4000330c54a52fa":[2,0,0,1,469], +"moc__predefs_8h.html#adfa534bdf20d21aed237e9d5644b9e1f":[2,0,0,1,409], +"moc__predefs_8h.html#ae12b3591c41f3b52c31cd8b16773d5ae":[2,0,0,1,43], +"moc__predefs_8h.html#ae19860f43757eb1fc151b38cb3bbc278":[2,0,0,1,255], +"moc__predefs_8h.html#ae221a8e373285cf10c22926762f477f5":[2,0,0,1,273], +"moc__predefs_8h.html#ae29642406cfa11e91a88203861adc92c":[2,0,0,1,428], +"moc__predefs_8h.html#ae540090d44c675c8d75037333a21ae3d":[2,0,0,1,140], +"moc__predefs_8h.html#ae769d68160432410a4d6700acb5051de":[2,0,0,1,431], +"moc__predefs_8h.html#ae7afb460abc6122c6a5f206d78bcae4e":[2,0,0,1,201], +"moc__predefs_8h.html#ae837c7430442b5c7c3a0c70d0c611473":[2,0,0,1,284], +"moc__predefs_8h.html#ae8f0035094061d550323c738b8d67601":[2,0,0,1,81], +"moc__predefs_8h.html#ae9559701fd39a0fbd0dc1a30a4cda0dd":[2,0,0,1,119], +"moc__predefs_8h.html#ae9a1914a564951612704f3f6630663f3":[2,0,0,1,224], +"moc__predefs_8h.html#ae9ea889821e3c2486a7435a83a309e80":[2,0,0,1,340], +"moc__predefs_8h.html#ae9ed936cc90c092e15526478bdbbefe0":[2,0,0,1,176], +"moc__predefs_8h.html#aeacc238625932b11e6cda685357dd678":[2,0,0,1,169], +"moc__predefs_8h.html#aeb14f5cf7cca3a01c2f6a0015e981eb1":[2,0,0,1,154], +"moc__predefs_8h.html#aeb2d8312284d49b1e44c7d003bd8b54b":[2,0,0,1,324], +"moc__predefs_8h.html#aeb56455e98000942147dfd63ec1c2fa6":[2,0,0,1,110], +"moc__predefs_8h.html#aebbf4016ca45751c7f0777bba3d3caf9":[2,0,0,1,180], +"moc__predefs_8h.html#aec70387710b2a1fbad3b8a9be7dcfeb4":[2,0,0,1,113], +"moc__predefs_8h.html#aee4eb3a89493f1c9251a5a52f700f21d":[2,0,0,1,404], +"moc__predefs_8h.html#aee50c1cb4fcde0770a78626b34c060b3":[2,0,0,1,344], +"moc__predefs_8h.html#aee5d0901405056d87e3bd47fee83128d":[2,0,0,1,202], +"moc__predefs_8h.html#aef86f5642c3dce887635c9fc632baf34":[2,0,0,1,384], +"moc__predefs_8h.html#af16678d7537c7a5463c807639fe2f635":[2,0,0,1,296], +"moc__predefs_8h.html#af20ff0bde5be8363438497453b001032":[2,0,0,1,357], +"moc__predefs_8h.html#af291fd206f4078237248a3d15ce8717c":[2,0,0,1,5], +"moc__predefs_8h.html#af2d4c34845fa216caacce1a7a9b8738f":[2,0,0,1,369], +"moc__predefs_8h.html#af3bb5b9901f76155066c0d6806faef29":[2,0,0,1,287], +"moc__predefs_8h.html#af456a5199e68c3ff20996a5bdf9b4691":[2,0,0,1,231], +"moc__predefs_8h.html#af4eb6c3c4da52a7fe202626ac4dc360e":[2,0,0,1,381], +"moc__predefs_8h.html#af550aeee74ffd7428490fe73f1023076":[2,0,0,1,68], +"moc__predefs_8h.html#af607715c8c9a98aa72c81c6629554b0d":[2,0,0,1,204], +"moc__predefs_8h.html#af635b5d104ef9858a68ab2c56677fd2d":[2,0,0,1,165], +"moc__predefs_8h.html#af63dc9fba4fe0505ab0807df57e51020":[2,0,0,1,449], +"moc__predefs_8h.html#af6547beba0a34ed6bd6453f1220a97ca":[2,0,0,1,188], +"moc__predefs_8h.html#af6f23847c608c91b62a3f7107a0015fe":[2,0,0,1,311], +"moc__predefs_8h.html#af73192acc2dd2095bd3524ca5ee9dca9":[2,0,0,1,58], +"moc__predefs_8h.html#af7d6c71ef780b40ddc515c776df7715b":[2,0,0,1,371], +"moc__predefs_8h.html#af8e59e7de3edb4ca738679e044cc2b81":[2,0,0,1,416], +"moc__predefs_8h.html#af9c44b8aaa84323a8f918a5e34224b77":[2,0,0,1,178], +"moc__predefs_8h.html#af9e0be24f061961e062774ce018a8d3a":[2,0,0,1,121], +"moc__predefs_8h.html#af9e75bdb453ccee520f6605d9987d439":[2,0,0,1,356], +"moc__predefs_8h.html#afa4fe1921202e3770143345532136860":[2,0,0,1,92], +"moc__predefs_8h.html#afb1605528772a5b37f1235cb1b7cf5ca":[2,0,0,1,236], +"moc__predefs_8h.html#afb3458ec122d5fb5304b68bc48184e4e":[2,0,0,1,187], +"moc__predefs_8h.html#afb5a2a4891df4551832357e97c6c3c59":[2,0,0,1,206], +"moc__predefs_8h.html#afbcfe5556dc1a9bc0394277eb8e73e2c":[2,0,0,1,285], +"moc__predefs_8h.html#afc45bfe4241907d615bb96ed6f4fd142":[2,0,0,1,214], +"moc__predefs_8h.html#afc6ac46966747a9423f4a6bb3af94b55":[2,0,0,1,271], +"moc__predefs_8h.html#afcdca48368232fed3dceacc5716f007c":[2,0,0,1,435], +"moc__predefs_8h.html#afd12ac7489bdbbed7fa3cc51023b8f73":[2,0,0,1,386], +"moc__predefs_8h.html#aff6bf0ff0fa3b5cbd23a8ae1131c87a9":[2,0,0,1,440], +"moc__predefs_8h.html#aff6e8fba11120740e9b9905d908e5810":[2,0,0,1,443], +"moc__predefs_8h.html#aff9ef90200309ec00ffac764f93d3f01":[2,0,0,1,6], +"moc__predefs_8h.html#affe15bf30b6d0b0f6f5c9875def650cc":[2,0,0,1,354], +"moc__predefs_8h_source.html":[2,0,0,1], +"mocs__compilation_8cpp.html":[2,0,0,2], +"mocs__compilation_8cpp_source.html":[2,0,0,2], +"pages.html":[], +"structqt__meta__stringdata___main_window__t.html":[1,0,6], +"structqt__meta__stringdata___main_window__t.html#a1cbcf6789501827b3f67e89911745b83":[1,0,6,0], +"structqt__meta__stringdata___main_window__t.html#a2cbbb3f51dad6b92744bc95ac135e6ae":[1,0,6,1] +}; diff --git a/docs/open.png b/docs/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/docs/open.png differ diff --git a/docs/pages.html b/docs/pages.html new file mode 100644 index 0000000..eb10271 --- /dev/null +++ b/docs/pages.html @@ -0,0 +1,102 @@ + + + + + + + +DreamHacker: Related Pages + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     Structure
    +
    +
    +
    + + + + diff --git a/docs/resize.js b/docs/resize.js new file mode 100644 index 0000000..e1ad0fe --- /dev/null +++ b/docs/resize.js @@ -0,0 +1,140 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/docs/search/all_0.html b/docs/search/all_0.html new file mode 100644 index 0000000..1ec5b2d --- /dev/null +++ b/docs/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_0.js b/docs/search/all_0.js new file mode 100644 index 0000000..db90a8f --- /dev/null +++ b/docs/search/all_0.js @@ -0,0 +1,468 @@ +var searchData= +[ + ['_5f_5faccum_5fepsilon_5f_5f_0',['__ACCUM_EPSILON__',['../moc__predefs_8h.html#a0e3615b841cb0fd1049bb0a2aaac2096',1,'moc_predefs.h']]], + ['_5f_5faccum_5ffbit_5f_5f_1',['__ACCUM_FBIT__',['../moc__predefs_8h.html#a5328bc8cdad22da7ce2eb594194a16a7',1,'moc_predefs.h']]], + ['_5f_5faccum_5fibit_5f_5f_2',['__ACCUM_IBIT__',['../moc__predefs_8h.html#a460a4ac8f082aeb8dfbd842efd5776a6',1,'moc_predefs.h']]], + ['_5f_5faccum_5fmax_5f_5f_3',['__ACCUM_MAX__',['../moc__predefs_8h.html#a5a17054b70390cdd56c412f1fa9bcce5',1,'moc_predefs.h']]], + ['_5f_5faccum_5fmin_5f_5f_4',['__ACCUM_MIN__',['../moc__predefs_8h.html#a9b9593a0ca3e3d1a3f7792f287451ead',1,'moc_predefs.h']]], + ['_5f_5fapcs_5f32_5f_5f_5',['__APCS_32__',['../moc__predefs_8h.html#af291fd206f4078237248a3d15ce8717c',1,'moc_predefs.h']]], + ['_5f_5farm_5f32bit_5fstate_6',['__ARM_32BIT_STATE',['../moc__predefs_8h.html#aff9ef90200309ec00ffac764f93d3f01',1,'moc_predefs.h']]], + ['_5f_5farm_5f_5f_7',['__arm__',['../moc__predefs_8h.html#a5144286cd63b294154788dfb0730d9cf',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_8',['__ARM_ARCH',['../moc__predefs_8h.html#ad62096dceb9fc55727c82df7ac9fc83f',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5f6_5f_5f_9',['__ARM_ARCH_6__',['../moc__predefs_8h.html#acc93c253f739f4447ca16ebf13b29959',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5fisa_5farm_10',['__ARM_ARCH_ISA_ARM',['../moc__predefs_8h.html#a036c254077652f499bdf3e870c83320c',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5fisa_5fthumb_11',['__ARM_ARCH_ISA_THUMB',['../moc__predefs_8h.html#abbbf9feda211d9f5bd5269cd17fc9355',1,'moc_predefs.h']]], + ['_5f_5farm_5feabi_5f_5f_12',['__ARM_EABI__',['../moc__predefs_8h.html#aa7682d4c3e5ed9fca81cf37aee3ef19a',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fclz_13',['__ARM_FEATURE_CLZ',['../moc__predefs_8h.html#a98708440262c0e7482dea555d0f97289',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fcoproc_14',['__ARM_FEATURE_COPROC',['../moc__predefs_8h.html#ab7406b58b90e06608971dc2450931858',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fdsp_15',['__ARM_FEATURE_DSP',['../moc__predefs_8h.html#a3b68223a25c19aec8b02a4ca73deedbe',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fldrex_16',['__ARM_FEATURE_LDREX',['../moc__predefs_8h.html#a429021b24d3b356d0f5cbfc44588966c',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fqbit_17',['__ARM_FEATURE_QBIT',['../moc__predefs_8h.html#aa4b8e94710cdb10a1bce40ca28f4f7db',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fsat_18',['__ARM_FEATURE_SAT',['../moc__predefs_8h.html#a8dc0e461cdc2e9d30acc1b94f1c18a5f',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fsimd32_19',['__ARM_FEATURE_SIMD32',['../moc__predefs_8h.html#abfa247cfbd725226b9239a8eb186101a',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5funaligned_20',['__ARM_FEATURE_UNALIGNED',['../moc__predefs_8h.html#a4d78dd41059205e8fd1a29af6dda266c',1,'moc_predefs.h']]], + ['_5f_5farm_5ffp_21',['__ARM_FP',['../moc__predefs_8h.html#a771dcf9433ec3eae99c1124058d93e88',1,'moc_predefs.h']]], + ['_5f_5farm_5fpcs_5fvfp_22',['__ARM_PCS_VFP',['../moc__predefs_8h.html#ab2a758783977e00923fcc60926735ee2',1,'moc_predefs.h']]], + ['_5f_5farm_5fsizeof_5fminimal_5fenum_23',['__ARM_SIZEOF_MINIMAL_ENUM',['../moc__predefs_8h.html#a631b640abf43029deabba286d4e0dc41',1,'moc_predefs.h']]], + ['_5f_5farm_5fsizeof_5fwchar_5ft_24',['__ARM_SIZEOF_WCHAR_T',['../moc__predefs_8h.html#a848818a4bc6cb18c25922ea8e7485cb7',1,'moc_predefs.h']]], + ['_5f_5farmel_5f_5f_25',['__ARMEL__',['../moc__predefs_8h.html#a624566488a5633fb7518ebda59505eee',1,'moc_predefs.h']]], + ['_5f_5fatomic_5facq_5frel_26',['__ATOMIC_ACQ_REL',['../moc__predefs_8h.html#acdfdd67de0664b690c42bba327cf7da1',1,'moc_predefs.h']]], + ['_5f_5fatomic_5facquire_27',['__ATOMIC_ACQUIRE',['../moc__predefs_8h.html#a72e3c30a05bd2bb63d76550e451a438e',1,'moc_predefs.h']]], + ['_5f_5fatomic_5fconsume_28',['__ATOMIC_CONSUME',['../moc__predefs_8h.html#a762c3361bcfeccc1f2742cc94b1ab65b',1,'moc_predefs.h']]], + ['_5f_5fatomic_5frelaxed_29',['__ATOMIC_RELAXED',['../moc__predefs_8h.html#a8faf1f097f05558889df4c44d052d35e',1,'moc_predefs.h']]], + ['_5f_5fatomic_5frelease_30',['__ATOMIC_RELEASE',['../moc__predefs_8h.html#a5822cf04414d99e0ee81e8bbe182226b',1,'moc_predefs.h']]], + ['_5f_5fatomic_5fseq_5fcst_31',['__ATOMIC_SEQ_CST',['../moc__predefs_8h.html#a0609dc2b702d5980de44c01bd373136a',1,'moc_predefs.h']]], + ['_5f_5fbiggest_5falignment_5f_5f_32',['__BIGGEST_ALIGNMENT__',['../moc__predefs_8h.html#a2c25ec0f0ae74f9d8a7c373288a28dd1',1,'moc_predefs.h']]], + ['_5f_5fbyte_5forder_5f_5f_33',['__BYTE_ORDER__',['../moc__predefs_8h.html#a02481ce2087724d8a2fb2322dbc549da',1,'moc_predefs.h']]], + ['_5f_5fchar16_5ftype_5f_5f_34',['__CHAR16_TYPE__',['../moc__predefs_8h.html#a95b91b7560e936fdc4ce441d38b94b3e',1,'moc_predefs.h']]], + ['_5f_5fchar32_5ftype_5f_5f_35',['__CHAR32_TYPE__',['../moc__predefs_8h.html#acd1e46c682808f15749b16266ade0c27',1,'moc_predefs.h']]], + ['_5f_5fchar_5fbit_5f_5f_36',['__CHAR_BIT__',['../moc__predefs_8h.html#ab35e271dce6e7e2190d60b5905375419',1,'moc_predefs.h']]], + ['_5f_5fchar_5funsigned_5f_5f_37',['__CHAR_UNSIGNED__',['../moc__predefs_8h.html#a5324d68af227292ae61ae6e5fab5ef76',1,'moc_predefs.h']]], + ['_5f_5fcplusplus_38',['__cplusplus',['../moc__predefs_8h.html#a1b391bc7ed92f79666c4a5d840aa1edd',1,'moc_predefs.h']]], + ['_5f_5fcpp_5faggregate_5fnsdmi_39',['__cpp_aggregate_nsdmi',['../moc__predefs_8h.html#ab9bf5af329c2a3a3dc5874289dda6f82',1,'moc_predefs.h']]], + ['_5f_5fcpp_5falias_5ftemplates_40',['__cpp_alias_templates',['../moc__predefs_8h.html#a771caa69aba7d7732ba184f9be109838',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fattributes_41',['__cpp_attributes',['../moc__predefs_8h.html#ac47e77d27e7d30f01cde452a9cd218ed',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fbinary_5fliterals_42',['__cpp_binary_literals',['../moc__predefs_8h.html#ade9dc15e022182eb0a62a0fd17d18b75',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fconstexpr_43',['__cpp_constexpr',['../moc__predefs_8h.html#ae12b3591c41f3b52c31cd8b16773d5ae',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdecltype_44',['__cpp_decltype',['../moc__predefs_8h.html#a5bc62cc317387328499b3ea753c5c4a3',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdecltype_5fauto_45',['__cpp_decltype_auto',['../moc__predefs_8h.html#a5922e567fc671cc2985da95b33544c16',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdelegating_5fconstructors_46',['__cpp_delegating_constructors',['../moc__predefs_8h.html#a9e077def8c310cdb5fef37666a92c5a5',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdigit_5fseparators_47',['__cpp_digit_separators',['../moc__predefs_8h.html#a3dda013c532cea311e9a22bf90dcec86',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fexceptions_48',['__cpp_exceptions',['../moc__predefs_8h.html#a42bcb9278fa2b4721fe04fc0627055ce',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fgeneric_5flambdas_49',['__cpp_generic_lambdas',['../moc__predefs_8h.html#a57e1156511d5ca1e45a5505f24518c87',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fhex_5ffloat_50',['__cpp_hex_float',['../moc__predefs_8h.html#a0958474253d23ca2c87e817c16f74eda',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finheriting_5fconstructors_51',['__cpp_inheriting_constructors',['../moc__predefs_8h.html#a42c04530cde3529000b65eab84d6ef6b',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finit_5fcaptures_52',['__cpp_init_captures',['../moc__predefs_8h.html#a5162baf69b085321c18fe6f0bdb537e9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finitializer_5flists_53',['__cpp_initializer_lists',['../moc__predefs_8h.html#a2b46de6050feed05210bef65feef9c42',1,'moc_predefs.h']]], + ['_5f_5fcpp_5flambdas_54',['__cpp_lambdas',['../moc__predefs_8h.html#a5eeda02831b3d7147a1a90f2d52a6228',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fnsdmi_55',['__cpp_nsdmi',['../moc__predefs_8h.html#adeecd09fc579ff3f8222cf8ae581b936',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frange_5fbased_5ffor_56',['__cpp_range_based_for',['../moc__predefs_8h.html#a84ca4631d4b617a6dcb94faa40235701',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fraw_5fstrings_57',['__cpp_raw_strings',['../moc__predefs_8h.html#a7377e1bc6bd2fd9bcfe98283ab0e9037',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fref_5fqualifiers_58',['__cpp_ref_qualifiers',['../moc__predefs_8h.html#af73192acc2dd2095bd3524ca5ee9dca9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5freturn_5ftype_5fdeduction_59',['__cpp_return_type_deduction',['../moc__predefs_8h.html#ac634ecad75dc34e67d161df1d694d892',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frtti_60',['__cpp_rtti',['../moc__predefs_8h.html#ab53ade321286145b92622c3a79fc168f',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fruntime_5farrays_61',['__cpp_runtime_arrays',['../moc__predefs_8h.html#ac2dfcd39d29c1e34de6421b15b2cfde9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frvalue_5freference_62',['__cpp_rvalue_reference',['../moc__predefs_8h.html#a6e4065bb57fe77e1d8635f8108bf3c64',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frvalue_5freferences_63',['__cpp_rvalue_references',['../moc__predefs_8h.html#acfffb302850fa081bd63c30573077004',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fsized_5fdeallocation_64',['__cpp_sized_deallocation',['../moc__predefs_8h.html#a38782886ef0f9d68b695bcec1f396f38',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fstatic_5fassert_65',['__cpp_static_assert',['../moc__predefs_8h.html#a60c56e472a1144b03053a2c7a2abb7fb',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fthreadsafe_5fstatic_5finit_66',['__cpp_threadsafe_static_init',['../moc__predefs_8h.html#aaa322b38474911c60e45134194bd6e8f',1,'moc_predefs.h']]], + ['_5f_5fcpp_5funicode_5fcharacters_67',['__cpp_unicode_characters',['../moc__predefs_8h.html#a7cb6a2aeb6e528ac59bedb98ebeac198',1,'moc_predefs.h']]], + ['_5f_5fcpp_5funicode_5fliterals_68',['__cpp_unicode_literals',['../moc__predefs_8h.html#af550aeee74ffd7428490fe73f1023076',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fuser_5fdefined_5fliterals_69',['__cpp_user_defined_literals',['../moc__predefs_8h.html#a05f3b9f6f2309a16af9d6fd939d97493',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fvariable_5ftemplates_70',['__cpp_variable_templates',['../moc__predefs_8h.html#a5f5ce266e768d95b9fd04856e5826aff',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fvariadic_5ftemplates_71',['__cpp_variadic_templates',['../moc__predefs_8h.html#a559dd2b0792fc2b0b30ba1dd66ca7cdc',1,'moc_predefs.h']]], + ['_5f_5fda_5ffbit_5f_5f_72',['__DA_FBIT__',['../moc__predefs_8h.html#a63a7f12eb75939fdf2701f1a5f5af754',1,'moc_predefs.h']]], + ['_5f_5fda_5fibit_5f_5f_73',['__DA_IBIT__',['../moc__predefs_8h.html#a002117cb1926b8d6e19255b983101d67',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdecimal_5fdig_5f_5f_74',['__DBL_DECIMAL_DIG__',['../moc__predefs_8h.html#a6b5dca178c4ffe879cd624f9b17b9bd1',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdenorm_5fmin_5f_5f_75',['__DBL_DENORM_MIN__',['../moc__predefs_8h.html#aca2a716d3e84ccffe000390bb2e2fb38',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdig_5f_5f_76',['__DBL_DIG__',['../moc__predefs_8h.html#a61969667ef3b668024a20df9bc34c991',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fepsilon_5f_5f_77',['__DBL_EPSILON__',['../moc__predefs_8h.html#a54983bc256dc296a42fe88b9be24f268',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5fdenorm_5f_5f_78',['__DBL_HAS_DENORM__',['../moc__predefs_8h.html#ace59605d6645350a7c5cced76ffb27fa',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5finfinity_5f_5f_79',['__DBL_HAS_INFINITY__',['../moc__predefs_8h.html#a3dd03066dbb351dfa51353c80a7902a2',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5fquiet_5fnan_5f_5f_80',['__DBL_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a5e816b71154141be2784accabcdc0ead',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmant_5fdig_5f_5f_81',['__DBL_MANT_DIG__',['../moc__predefs_8h.html#ae8f0035094061d550323c738b8d67601',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5f10_5fexp_5f_5f_82',['__DBL_MAX_10_EXP__',['../moc__predefs_8h.html#a280f0a9058cc03c2dac890a19881b1fb',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5f_5f_83',['__DBL_MAX__',['../moc__predefs_8h.html#a711d7b7f27671b10b11a74c37f653ad7',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5fexp_5f_5f_84',['__DBL_MAX_EXP__',['../moc__predefs_8h.html#a9a8a7cd9484baf4b72ab15682745d119',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5f10_5fexp_5f_5f_85',['__DBL_MIN_10_EXP__',['../moc__predefs_8h.html#a1abd7cf346a460459d7fe1a9d4b5dde9',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5f_5f_86',['__DBL_MIN__',['../moc__predefs_8h.html#a3b29a64a7b1529c08f87d256d20aade1',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5fexp_5f_5f_87',['__DBL_MIN_EXP__',['../moc__predefs_8h.html#a63d6f5d1c3371192fe03b3fb06e82400',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fepsilon_5f_5f_88',['__DEC128_EPSILON__',['../moc__predefs_8h.html#abd2230e0e187a5bae549a0ba786b311b',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmant_5fdig_5f_5f_89',['__DEC128_MANT_DIG__',['../moc__predefs_8h.html#adeff56b51aead6443852cacac294d464',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmax_5f_5f_90',['__DEC128_MAX__',['../moc__predefs_8h.html#aaab7817ee2e4bb88b5178e101e7ab2a6',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmax_5fexp_5f_5f_91',['__DEC128_MAX_EXP__',['../moc__predefs_8h.html#aab1edcef0b79684e5d2f12a2696e260f',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmin_5f_5f_92',['__DEC128_MIN__',['../moc__predefs_8h.html#afa4fe1921202e3770143345532136860',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmin_5fexp_5f_5f_93',['__DEC128_MIN_EXP__',['../moc__predefs_8h.html#a748143fe17201c420b868b8f30c57d59',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fsubnormal_5fmin_5f_5f_94',['__DEC128_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a63678ee519e34f99b61f3aeb5ff2cd75',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fepsilon_5f_5f_95',['__DEC32_EPSILON__',['../moc__predefs_8h.html#a13526b223391d4982c4c172c29bfdc1e',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmant_5fdig_5f_5f_96',['__DEC32_MANT_DIG__',['../moc__predefs_8h.html#a144dfa169f604d99b46658c15338338e',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmax_5f_5f_97',['__DEC32_MAX__',['../moc__predefs_8h.html#ad3165a97a460b88ccdea80967918f250',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmax_5fexp_5f_5f_98',['__DEC32_MAX_EXP__',['../moc__predefs_8h.html#aabb9dbf55546af708a50831a7c48d9b9',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmin_5f_5f_99',['__DEC32_MIN__',['../moc__predefs_8h.html#a1f993b902b5b1dba7d5b043d0abc347b',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmin_5fexp_5f_5f_100',['__DEC32_MIN_EXP__',['../moc__predefs_8h.html#a79e289c54a8c9851b2b118d442bbc26c',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fsubnormal_5fmin_5f_5f_101',['__DEC32_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a1b8832b164a1e36ed6756895a71c7e54',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fepsilon_5f_5f_102',['__DEC64_EPSILON__',['../moc__predefs_8h.html#a189bb13aac101f45c8ac7f6e52daccfa',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmant_5fdig_5f_5f_103',['__DEC64_MANT_DIG__',['../moc__predefs_8h.html#a61c258ffad919b338b83e1401265f671',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmax_5f_5f_104',['__DEC64_MAX__',['../moc__predefs_8h.html#a06608084919123d90621d715daf1f456',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmax_5fexp_5f_5f_105',['__DEC64_MAX_EXP__',['../moc__predefs_8h.html#a3d4fe0f0b2e3ae12569d4a663dee8a0c',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmin_5f_5f_106',['__DEC64_MIN__',['../moc__predefs_8h.html#abd66733cff0ce1656bb7e744aa151bea',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmin_5fexp_5f_5f_107',['__DEC64_MIN_EXP__',['../moc__predefs_8h.html#ade7aebdae6e8389a450aac653544c33f',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fsubnormal_5fmin_5f_5f_108',['__DEC64_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a6d3e36bb5d7e7ce3eda28fb174e404c6',1,'moc_predefs.h']]], + ['_5f_5fdec_5feval_5fmethod_5f_5f_109',['__DEC_EVAL_METHOD__',['../moc__predefs_8h.html#a53186c3d05006947fb8bd09bcdb0d60c',1,'moc_predefs.h']]], + ['_5f_5fdecimal_5fdig_5f_5f_110',['__DECIMAL_DIG__',['../moc__predefs_8h.html#aeb56455e98000942147dfd63ec1c2fa6',1,'moc_predefs.h']]], + ['_5f_5fdeprecated_111',['__DEPRECATED',['../moc__predefs_8h.html#aa806e8f7ce2a8db3bf676735fca2ac51',1,'moc_predefs.h']]], + ['_5f_5fdq_5ffbit_5f_5f_112',['__DQ_FBIT__',['../moc__predefs_8h.html#a6a00585a981c3e3be5d3794afdf2bc67',1,'moc_predefs.h']]], + ['_5f_5fdq_5fibit_5f_5f_113',['__DQ_IBIT__',['../moc__predefs_8h.html#aec70387710b2a1fbad3b8a9be7dcfeb4',1,'moc_predefs.h']]], + ['_5f_5felf_5f_5f_114',['__ELF__',['../moc__predefs_8h.html#a4012402899bd689646e39a043ccb6047',1,'moc_predefs.h']]], + ['_5f_5fexceptions_115',['__EXCEPTIONS',['../moc__predefs_8h.html#a260281f3f3cd1c287fce0d5bb737febb',1,'moc_predefs.h']]], + ['_5f_5ffinite_5fmath_5fonly_5f_5f_116',['__FINITE_MATH_ONLY__',['../moc__predefs_8h.html#a611d40c375b1972669292fd27bc4afb7',1,'moc_predefs.h']]], + ['_5f_5ffloat_5fword_5forder_5f_5f_117',['__FLOAT_WORD_ORDER__',['../moc__predefs_8h.html#a2db444477ad8f9aa0759310d46694339',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdecimal_5fdig_5f_5f_118',['__FLT32_DECIMAL_DIG__',['../moc__predefs_8h.html#a24d259c69bea7fb471668df7190c71c6',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdenorm_5fmin_5f_5f_119',['__FLT32_DENORM_MIN__',['../moc__predefs_8h.html#ae9559701fd39a0fbd0dc1a30a4cda0dd',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdig_5f_5f_120',['__FLT32_DIG__',['../moc__predefs_8h.html#aa021702c3b7627dccaa51c33a2c5a8d1',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fepsilon_5f_5f_121',['__FLT32_EPSILON__',['../moc__predefs_8h.html#af9e0be24f061961e062774ce018a8d3a',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5fdenorm_5f_5f_122',['__FLT32_HAS_DENORM__',['../moc__predefs_8h.html#ac1175c9478c586edee06d1f788a03b83',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5finfinity_5f_5f_123',['__FLT32_HAS_INFINITY__',['../moc__predefs_8h.html#a170219070ed7bdfea9f88121c9abbaea',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5fquiet_5fnan_5f_5f_124',['__FLT32_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a22791bdfea523b20c18eff848609fa9d',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmant_5fdig_5f_5f_125',['__FLT32_MANT_DIG__',['../moc__predefs_8h.html#a4d4e419b93a42fbd34e0f4ae3640c4a9',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5f10_5fexp_5f_5f_126',['__FLT32_MAX_10_EXP__',['../moc__predefs_8h.html#a935ebe200313334107dd681186ee586e',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5f_5f_127',['__FLT32_MAX__',['../moc__predefs_8h.html#a8d44614ef6d7f2bbbd9224d416d867b9',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5fexp_5f_5f_128',['__FLT32_MAX_EXP__',['../moc__predefs_8h.html#a731bd57ce12918b6118b6a3e37c20d8e',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5f10_5fexp_5f_5f_129',['__FLT32_MIN_10_EXP__',['../moc__predefs_8h.html#a1f4c572c6b5b4fe3e7c81bc48272e56b',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5f_5f_130',['__FLT32_MIN__',['../moc__predefs_8h.html#a5ed9c6693683a4d844cb05e49cef8337',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5fexp_5f_5f_131',['__FLT32_MIN_EXP__',['../moc__predefs_8h.html#a300c6970bb64b04e45a9c2ed139ecce8',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdecimal_5fdig_5f_5f_132',['__FLT32X_DECIMAL_DIG__',['../moc__predefs_8h.html#a00a9f6ceb42fbe18b789b4c1949c49f2',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdenorm_5fmin_5f_5f_133',['__FLT32X_DENORM_MIN__',['../moc__predefs_8h.html#ab557192dd4e486a262d4495e29fe356d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdig_5f_5f_134',['__FLT32X_DIG__',['../moc__predefs_8h.html#a9875b8f50cd7d288819635ebf494cf3d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fepsilon_5f_5f_135',['__FLT32X_EPSILON__',['../moc__predefs_8h.html#a0d5ee390eabd4483e834007b5824373b',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5fdenorm_5f_5f_136',['__FLT32X_HAS_DENORM__',['../moc__predefs_8h.html#a97163404b3b71f857e35be74607f88f7',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5finfinity_5f_5f_137',['__FLT32X_HAS_INFINITY__',['../moc__predefs_8h.html#a8f246ad899706f78b8dfcd33daff7b07',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5fquiet_5fnan_5f_5f_138',['__FLT32X_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a158b9e85a96f0cf9698a6202071e8061',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmant_5fdig_5f_5f_139',['__FLT32X_MANT_DIG__',['../moc__predefs_8h.html#a63419ad12ec3f4e18746a0a64fcfc136',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5f10_5fexp_5f_5f_140',['__FLT32X_MAX_10_EXP__',['../moc__predefs_8h.html#ae540090d44c675c8d75037333a21ae3d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5f_5f_141',['__FLT32X_MAX__',['../moc__predefs_8h.html#aa2fbfcb03f8deb89dc6122923d47bc76',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5fexp_5f_5f_142',['__FLT32X_MAX_EXP__',['../moc__predefs_8h.html#a6605c8368985e3b1885a84d1d44ff798',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5f10_5fexp_5f_5f_143',['__FLT32X_MIN_10_EXP__',['../moc__predefs_8h.html#a29e106a0e6600792357f526e30ca98b1',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5f_5f_144',['__FLT32X_MIN__',['../moc__predefs_8h.html#a3b9ca6d1bbc15a54595e781e4f24b045',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5fexp_5f_5f_145',['__FLT32X_MIN_EXP__',['../moc__predefs_8h.html#a87baa4e50d6b00b4be6c3173a4280f2f',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdecimal_5fdig_5f_5f_146',['__FLT64_DECIMAL_DIG__',['../moc__predefs_8h.html#a8ef55ba782e9d01cb22911f97168d06a',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdenorm_5fmin_5f_5f_147',['__FLT64_DENORM_MIN__',['../moc__predefs_8h.html#a9b18cde45e680760b3a997b0b1884408',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdig_5f_5f_148',['__FLT64_DIG__',['../moc__predefs_8h.html#a6a7f83363cddf6ce9c8548224f012180',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fepsilon_5f_5f_149',['__FLT64_EPSILON__',['../moc__predefs_8h.html#ad293ff29c0ac9a6b4187d366d6de3772',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5fdenorm_5f_5f_150',['__FLT64_HAS_DENORM__',['../moc__predefs_8h.html#a9e0564ada348dff0b4436b156412f430',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5finfinity_5f_5f_151',['__FLT64_HAS_INFINITY__',['../moc__predefs_8h.html#ac67712f8d687485a4bd1c0b0e2741771',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5fquiet_5fnan_5f_5f_152',['__FLT64_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a868c5b1405b26bc9592fa9f3248e99aa',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmant_5fdig_5f_5f_153',['__FLT64_MANT_DIG__',['../moc__predefs_8h.html#a6c163c6e58545740cbae55ad8ffa027f',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5f10_5fexp_5f_5f_154',['__FLT64_MAX_10_EXP__',['../moc__predefs_8h.html#aeb14f5cf7cca3a01c2f6a0015e981eb1',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5f_5f_155',['__FLT64_MAX__',['../moc__predefs_8h.html#a01d0061df498c537ecd56d53f1130082',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5fexp_5f_5f_156',['__FLT64_MAX_EXP__',['../moc__predefs_8h.html#ad0c5a78bb2815c2ca02963343d1751a8',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5f10_5fexp_5f_5f_157',['__FLT64_MIN_10_EXP__',['../moc__predefs_8h.html#a7a06acb3945879bcc985dde7bf0bcbdc',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5f_5f_158',['__FLT64_MIN__',['../moc__predefs_8h.html#a56e81e5fec09084ed0e8ed0cccddf3a0',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5fexp_5f_5f_159',['__FLT64_MIN_EXP__',['../moc__predefs_8h.html#aceda5e62622b9783846d26610d038f71',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdecimal_5fdig_5f_5f_160',['__FLT_DECIMAL_DIG__',['../moc__predefs_8h.html#ad666d9aaf02b587abdeffff5ce3545e2',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdenorm_5fmin_5f_5f_161',['__FLT_DENORM_MIN__',['../moc__predefs_8h.html#a20b8951342fd8b8af91e2bc9b34eb929',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdig_5f_5f_162',['__FLT_DIG__',['../moc__predefs_8h.html#a03e66bc6e427f0c968a7a0daec280729',1,'moc_predefs.h']]], + ['_5f_5fflt_5fepsilon_5f_5f_163',['__FLT_EPSILON__',['../moc__predefs_8h.html#a7ac5a3b1dc00b508a391f8c6c37e2165',1,'moc_predefs.h']]], + ['_5f_5fflt_5feval_5fmethod_5f_5f_164',['__FLT_EVAL_METHOD__',['../moc__predefs_8h.html#a737828904768e0ab49acbdb3371d8445',1,'moc_predefs.h']]], + ['_5f_5fflt_5feval_5fmethod_5fts_5f18661_5f3_5f_5f_165',['__FLT_EVAL_METHOD_TS_18661_3__',['../moc__predefs_8h.html#af635b5d104ef9858a68ab2c56677fd2d',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5fdenorm_5f_5f_166',['__FLT_HAS_DENORM__',['../moc__predefs_8h.html#a82a2c3ff271d1685b450975ffa68544a',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5finfinity_5f_5f_167',['__FLT_HAS_INFINITY__',['../moc__predefs_8h.html#a658d9ba84d429e748ce5f1905732c962',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5fquiet_5fnan_5f_5f_168',['__FLT_HAS_QUIET_NAN__',['../moc__predefs_8h.html#acb3a3a30075a9589b520df3b329df29e',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmant_5fdig_5f_5f_169',['__FLT_MANT_DIG__',['../moc__predefs_8h.html#aeacc238625932b11e6cda685357dd678',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5f10_5fexp_5f_5f_170',['__FLT_MAX_10_EXP__',['../moc__predefs_8h.html#a3641a65e329884d817848ba5d6163f07',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5f_5f_171',['__FLT_MAX__',['../moc__predefs_8h.html#aa26975016847959a13829cb568b126b3',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5fexp_5f_5f_172',['__FLT_MAX_EXP__',['../moc__predefs_8h.html#abd1effb8f681ce210223aceb08d8ed33',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5f10_5fexp_5f_5f_173',['__FLT_MIN_10_EXP__',['../moc__predefs_8h.html#a442f6e00169e1726f7b9a05eb3c617d8',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5f_5f_174',['__FLT_MIN__',['../moc__predefs_8h.html#a6e947aa0a2cb4808d560339fef0d4793',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5fexp_5f_5f_175',['__FLT_MIN_EXP__',['../moc__predefs_8h.html#acd7b9de9b6bd817027cb37ec6c82cba9',1,'moc_predefs.h']]], + ['_5f_5fflt_5fradix_5f_5f_176',['__FLT_RADIX__',['../moc__predefs_8h.html#ae9ed936cc90c092e15526478bdbbefe0',1,'moc_predefs.h']]], + ['_5f_5ffract_5fepsilon_5f_5f_177',['__FRACT_EPSILON__',['../moc__predefs_8h.html#a4e81652d864b9ad956e02419453eafae',1,'moc_predefs.h']]], + ['_5f_5ffract_5ffbit_5f_5f_178',['__FRACT_FBIT__',['../moc__predefs_8h.html#af9c44b8aaa84323a8f918a5e34224b77',1,'moc_predefs.h']]], + ['_5f_5ffract_5fibit_5f_5f_179',['__FRACT_IBIT__',['../moc__predefs_8h.html#a608f71df249414d1993b7e4a0a706175',1,'moc_predefs.h']]], + ['_5f_5ffract_5fmax_5f_5f_180',['__FRACT_MAX__',['../moc__predefs_8h.html#aebbf4016ca45751c7f0777bba3d3caf9',1,'moc_predefs.h']]], + ['_5f_5ffract_5fmin_5f_5f_181',['__FRACT_MIN__',['../moc__predefs_8h.html#a9d8856f35bfb1b05fc386e1a964b491e',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fbool_5flock_5ffree_182',['__GCC_ATOMIC_BOOL_LOCK_FREE',['../moc__predefs_8h.html#a9685ff8e617f3c5892c2a6fe3484f3b7',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar16_5ft_5flock_5ffree_183',['__GCC_ATOMIC_CHAR16_T_LOCK_FREE',['../moc__predefs_8h.html#a7f18358ae5a65523140cb561bbeaa3a9',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar32_5ft_5flock_5ffree_184',['__GCC_ATOMIC_CHAR32_T_LOCK_FREE',['../moc__predefs_8h.html#a98e298953067135caf4bc0b8e8e7cd01',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar_5flock_5ffree_185',['__GCC_ATOMIC_CHAR_LOCK_FREE',['../moc__predefs_8h.html#a403ff8d656461ff5a083fb47f73c7da3',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fint_5flock_5ffree_186',['__GCC_ATOMIC_INT_LOCK_FREE',['../moc__predefs_8h.html#ab6ba7de2838beb20b1eaca71c062c8e2',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fllong_5flock_5ffree_187',['__GCC_ATOMIC_LLONG_LOCK_FREE',['../moc__predefs_8h.html#afb3458ec122d5fb5304b68bc48184e4e',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5flong_5flock_5ffree_188',['__GCC_ATOMIC_LONG_LOCK_FREE',['../moc__predefs_8h.html#af6547beba0a34ed6bd6453f1220a97ca',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fpointer_5flock_5ffree_189',['__GCC_ATOMIC_POINTER_LOCK_FREE',['../moc__predefs_8h.html#aa808bc3159395526ac0c07d36b87dec1',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fshort_5flock_5ffree_190',['__GCC_ATOMIC_SHORT_LOCK_FREE',['../moc__predefs_8h.html#a889943b266851fe7e9cdac86795507aa',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5ftest_5fand_5fset_5ftrueval_191',['__GCC_ATOMIC_TEST_AND_SET_TRUEVAL',['../moc__predefs_8h.html#a035c056d72e677daa49cc2c7dbeed083',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fwchar_5ft_5flock_5ffree_192',['__GCC_ATOMIC_WCHAR_T_LOCK_FREE',['../moc__predefs_8h.html#a775d1a831fa88d8c38c76d31947a8ebf',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fhave_5fsync_5fcompare_5fand_5fswap_5f4_193',['__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4',['../moc__predefs_8h.html#a6310789290c9c5717826b56443ce69ec',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fiec_5f559_194',['__GCC_IEC_559',['../moc__predefs_8h.html#a0a3bd26d0b040f0781a238e4aedd3dbe',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fiec_5f559_5fcomplex_195',['__GCC_IEC_559_COMPLEX',['../moc__predefs_8h.html#a779a207685ad2b8ca4cdab02ece517eb',1,'moc_predefs.h']]], + ['_5f_5fgnu_5flinux_5f_5f_196',['__gnu_linux__',['../moc__predefs_8h.html#a51b087854dc3c2f76946efb432745639',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5f_5f_197',['__GNUC__',['../moc__predefs_8h.html#aa51016843ec55a0a9df7ce9f85767ee7',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fminor_5f_5f_198',['__GNUC_MINOR__',['../moc__predefs_8h.html#a0b8ad52bece225cdae9c1b46c91c62a5',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fpatchlevel_5f_5f_199',['__GNUC_PATCHLEVEL__',['../moc__predefs_8h.html#ad149c0565fcf669b23f483e5b7f80dbd',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fstdc_5finline_5f_5f_200',['__GNUC_STDC_INLINE__',['../moc__predefs_8h.html#ad22737f11009b4bf60ba233eee7420dd',1,'moc_predefs.h']]], + ['_5f_5fgnug_5f_5f_201',['__GNUG__',['../moc__predefs_8h.html#ae7afb460abc6122c6a5f206d78bcae4e',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fabi_5fversion_202',['__GXX_ABI_VERSION',['../moc__predefs_8h.html#aee5d0901405056d87e3bd47fee83128d',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fexperimental_5fcxx0x_5f_5f_203',['__GXX_EXPERIMENTAL_CXX0X__',['../moc__predefs_8h.html#a213133a8dca206becf88c2e3523b124a',1,'moc_predefs.h']]], + ['_5f_5fgxx_5frtti_204',['__GXX_RTTI',['../moc__predefs_8h.html#af607715c8c9a98aa72c81c6629554b0d',1,'moc_predefs.h']]], + ['_5f_5fgxx_5ftypeinfo_5fequality_5finline_205',['__GXX_TYPEINFO_EQUALITY_INLINE',['../moc__predefs_8h.html#a2ae3844702146748bf36d5bd47bad430',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fweak_5f_5f_206',['__GXX_WEAK__',['../moc__predefs_8h.html#afb5a2a4891df4551832357e97c6c3c59',1,'moc_predefs.h']]], + ['_5f_5fha_5ffbit_5f_5f_207',['__HA_FBIT__',['../moc__predefs_8h.html#ab28d96afaf0737e4f3a51adac109fb36',1,'moc_predefs.h']]], + ['_5f_5fha_5fibit_5f_5f_208',['__HA_IBIT__',['../moc__predefs_8h.html#a907d418d5ddc748993dbba5c01a0f5ec',1,'moc_predefs.h']]], + ['_5f_5fhas_5finclude_209',['__has_include',['../moc__predefs_8h.html#a1c6886956b05c16006d924f77a868410',1,'moc_predefs.h']]], + ['_5f_5fhas_5finclude_5fnext_210',['__has_include_next',['../moc__predefs_8h.html#a370369ba2463363de726ff9394861a2b',1,'moc_predefs.h']]], + ['_5f_5fhq_5ffbit_5f_5f_211',['__HQ_FBIT__',['../moc__predefs_8h.html#a2e0aea8ca4d93daf04d3a96b3c53e93a',1,'moc_predefs.h']]], + ['_5f_5fhq_5fibit_5f_5f_212',['__HQ_IBIT__',['../moc__predefs_8h.html#a517db8faae01669f8cef916eae3ac205',1,'moc_predefs.h']]], + ['_5f_5fint16_5fc_213',['__INT16_C',['../moc__predefs_8h.html#acefa39ff476ff22ce343809fff1e8bc1',1,'moc_predefs.h']]], + ['_5f_5fint16_5fmax_5f_5f_214',['__INT16_MAX__',['../moc__predefs_8h.html#afc45bfe4241907d615bb96ed6f4fd142',1,'moc_predefs.h']]], + ['_5f_5fint16_5ftype_5f_5f_215',['__INT16_TYPE__',['../moc__predefs_8h.html#a6770e92cfa87964cfcf358a6358f5347',1,'moc_predefs.h']]], + ['_5f_5fint32_5fc_216',['__INT32_C',['../moc__predefs_8h.html#a3ef70e13cfbe3264fe0b212f8f46d76c',1,'moc_predefs.h']]], + ['_5f_5fint32_5fmax_5f_5f_217',['__INT32_MAX__',['../moc__predefs_8h.html#abf681096fa9e21512a3fe83f0dcfdb36',1,'moc_predefs.h']]], + ['_5f_5fint32_5ftype_5f_5f_218',['__INT32_TYPE__',['../moc__predefs_8h.html#a72f76585ea7d1131d4e9be0110fb0ec3',1,'moc_predefs.h']]], + ['_5f_5fint64_5fc_219',['__INT64_C',['../moc__predefs_8h.html#a4b8971e411b88166747d2a3c2425eaee',1,'moc_predefs.h']]], + ['_5f_5fint64_5fmax_5f_5f_220',['__INT64_MAX__',['../moc__predefs_8h.html#aa3f186f612efe5edfcc371c95617f06f',1,'moc_predefs.h']]], + ['_5f_5fint64_5ftype_5f_5f_221',['__INT64_TYPE__',['../moc__predefs_8h.html#a690dd4c0c7711687e30418f5e988d842',1,'moc_predefs.h']]], + ['_5f_5fint8_5fc_222',['__INT8_C',['../moc__predefs_8h.html#ad36bc14a0433c9f88496bed4ccbd65a3',1,'moc_predefs.h']]], + ['_5f_5fint8_5fmax_5f_5f_223',['__INT8_MAX__',['../moc__predefs_8h.html#a326c37ba86474b37dd0ae9100e005fac',1,'moc_predefs.h']]], + ['_5f_5fint8_5ftype_5f_5f_224',['__INT8_TYPE__',['../moc__predefs_8h.html#ae9a1914a564951612704f3f6630663f3',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5fmax_5f_5f_225',['__INT_FAST16_MAX__',['../moc__predefs_8h.html#ad4f33e46b6c0be1a2bbd83f3efe19165',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5ftype_5f_5f_226',['__INT_FAST16_TYPE__',['../moc__predefs_8h.html#a6a4d11835d03027f3929b84fe7b55bf6',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5fwidth_5f_5f_227',['__INT_FAST16_WIDTH__',['../moc__predefs_8h.html#a65ff7d0e95dab0167cbd46d117cfa74a',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5fmax_5f_5f_228',['__INT_FAST32_MAX__',['../moc__predefs_8h.html#a84479d2bbe1d7286f406fcc302f41376',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5ftype_5f_5f_229',['__INT_FAST32_TYPE__',['../moc__predefs_8h.html#a4e1f76417ed810f038c277a5aba691fa',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5fwidth_5f_5f_230',['__INT_FAST32_WIDTH__',['../moc__predefs_8h.html#a7df1cb434b3b8baae4bf6053cb2a3a4a',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5fmax_5f_5f_231',['__INT_FAST64_MAX__',['../moc__predefs_8h.html#af456a5199e68c3ff20996a5bdf9b4691',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5ftype_5f_5f_232',['__INT_FAST64_TYPE__',['../moc__predefs_8h.html#a65967d857259eb36c9546a512f2ab4b5',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5fwidth_5f_5f_233',['__INT_FAST64_WIDTH__',['../moc__predefs_8h.html#ad4fca572f500aba76348d0942a2c5827',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5fmax_5f_5f_234',['__INT_FAST8_MAX__',['../moc__predefs_8h.html#ab11d0b7a18b7d57dff361c0848f28e09',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5ftype_5f_5f_235',['__INT_FAST8_TYPE__',['../moc__predefs_8h.html#a3783fd947621ab5304708e78da5bd6d3',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5fwidth_5f_5f_236',['__INT_FAST8_WIDTH__',['../moc__predefs_8h.html#afb1605528772a5b37f1235cb1b7cf5ca',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5fmax_5f_5f_237',['__INT_LEAST16_MAX__',['../moc__predefs_8h.html#a4f3694eafdad4edb2bfe114a06553dec',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5ftype_5f_5f_238',['__INT_LEAST16_TYPE__',['../moc__predefs_8h.html#a6f2032bd7e6248b526a2c13e37c7b972',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5fwidth_5f_5f_239',['__INT_LEAST16_WIDTH__',['../moc__predefs_8h.html#a6091ba87f9a538a9685b7997a64a64db',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5fmax_5f_5f_240',['__INT_LEAST32_MAX__',['../moc__predefs_8h.html#a97e13c059a63d2d547cc4a9f386641d2',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5ftype_5f_5f_241',['__INT_LEAST32_TYPE__',['../moc__predefs_8h.html#a401f5f43b9e96d82152bf7cec0be6dfd',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5fwidth_5f_5f_242',['__INT_LEAST32_WIDTH__',['../moc__predefs_8h.html#a0a54ad5275069482576a8e26197c01db',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5fmax_5f_5f_243',['__INT_LEAST64_MAX__',['../moc__predefs_8h.html#ac8ff7f5492853e7e2fa19ebb2b98c9bc',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5ftype_5f_5f_244',['__INT_LEAST64_TYPE__',['../moc__predefs_8h.html#aadf1477c4b8076c939fb4fdeca6f4b8e',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5fwidth_5f_5f_245',['__INT_LEAST64_WIDTH__',['../moc__predefs_8h.html#a83a4ddd79aaf0dd95eaa234e59cec667',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5fmax_5f_5f_246',['__INT_LEAST8_MAX__',['../moc__predefs_8h.html#adc1ccadf1d98117e586324ccb189c09f',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5ftype_5f_5f_247',['__INT_LEAST8_TYPE__',['../moc__predefs_8h.html#a1801bfbb7ab3b0ff09a48c3d78bd97e2',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5fwidth_5f_5f_248',['__INT_LEAST8_WIDTH__',['../moc__predefs_8h.html#a967b4ada96d28b97bc07e26e1def8e66',1,'moc_predefs.h']]], + ['_5f_5fint_5fmax_5f_5f_249',['__INT_MAX__',['../moc__predefs_8h.html#a20fcee7a683d69340d8c3d126e5a7f12',1,'moc_predefs.h']]], + ['_5f_5fint_5fwidth_5f_5f_250',['__INT_WIDTH__',['../moc__predefs_8h.html#ad3907b8d9bb2265255e6e0d66d91d165',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fc_251',['__INTMAX_C',['../moc__predefs_8h.html#adb0d09cff489746c5456407aa832fced',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fmax_5f_5f_252',['__INTMAX_MAX__',['../moc__predefs_8h.html#a6977858c9aa6bb2c67f524a948fc8062',1,'moc_predefs.h']]], + ['_5f_5fintmax_5ftype_5f_5f_253',['__INTMAX_TYPE__',['../moc__predefs_8h.html#ad3062ff83239e8dd2b8969a2f368d608',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fwidth_5f_5f_254',['__INTMAX_WIDTH__',['../moc__predefs_8h.html#a4e8a5398566f8b2666a8a71b2dbcf3ca',1,'moc_predefs.h']]], + ['_5f_5fintptr_5fmax_5f_5f_255',['__INTPTR_MAX__',['../moc__predefs_8h.html#ae19860f43757eb1fc151b38cb3bbc278',1,'moc_predefs.h']]], + ['_5f_5fintptr_5ftype_5f_5f_256',['__INTPTR_TYPE__',['../moc__predefs_8h.html#a4ca36196b9f45fa67a0b23c43c658aa1',1,'moc_predefs.h']]], + ['_5f_5fintptr_5fwidth_5f_5f_257',['__INTPTR_WIDTH__',['../moc__predefs_8h.html#a8394afe92148ddbdf0e0697978cd1382',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fepsilon_5f_5f_258',['__LACCUM_EPSILON__',['../moc__predefs_8h.html#a85eba162e856268c269aac352454431f',1,'moc_predefs.h']]], + ['_5f_5flaccum_5ffbit_5f_5f_259',['__LACCUM_FBIT__',['../moc__predefs_8h.html#a6b035b68b018afe25e07f3cb23a8f921',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fibit_5f_5f_260',['__LACCUM_IBIT__',['../moc__predefs_8h.html#aad3d364f6a93a9d5848f06f5172561c1',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fmax_5f_5f_261',['__LACCUM_MAX__',['../moc__predefs_8h.html#a2436bf06d7aad40fa2c53025c1010bf0',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fmin_5f_5f_262',['__LACCUM_MIN__',['../moc__predefs_8h.html#a3996b66e851f8b7d95267629346f3e8b',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdecimal_5fdig_5f_5f_263',['__LDBL_DECIMAL_DIG__',['../moc__predefs_8h.html#acff705a6de0de8303f2394603bbcdb90',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdenorm_5fmin_5f_5f_264',['__LDBL_DENORM_MIN__',['../moc__predefs_8h.html#a5436993e3c0ddb7caee4b9b01021cde4',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdig_5f_5f_265',['__LDBL_DIG__',['../moc__predefs_8h.html#a3aa761811887b1634bfca566fa671424',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fepsilon_5f_5f_266',['__LDBL_EPSILON__',['../moc__predefs_8h.html#ad7a5615aea1516ee885112456cf695e8',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5fdenorm_5f_5f_267',['__LDBL_HAS_DENORM__',['../moc__predefs_8h.html#a3c7f3130e367d47bcc27a0a41278155e',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5finfinity_5f_5f_268',['__LDBL_HAS_INFINITY__',['../moc__predefs_8h.html#a87140cc80075e8907e7bbfd910c5642a',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5fquiet_5fnan_5f_5f_269',['__LDBL_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a10a15ae17c3b791fe9b9721965ebfee4',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmant_5fdig_5f_5f_270',['__LDBL_MANT_DIG__',['../moc__predefs_8h.html#a3c8df97b7413f417379377b604d060f5',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5f10_5fexp_5f_5f_271',['__LDBL_MAX_10_EXP__',['../moc__predefs_8h.html#afc6ac46966747a9423f4a6bb3af94b55',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5f_5f_272',['__LDBL_MAX__',['../moc__predefs_8h.html#a06fd91f0507a4f364e469c8055f4265a',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5fexp_5f_5f_273',['__LDBL_MAX_EXP__',['../moc__predefs_8h.html#ae221a8e373285cf10c22926762f477f5',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5f10_5fexp_5f_5f_274',['__LDBL_MIN_10_EXP__',['../moc__predefs_8h.html#aa0d249d82751bd4ee0280990bc510371',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5f_5f_275',['__LDBL_MIN__',['../moc__predefs_8h.html#ab572f59c4b0c5a1f4c2953f38a76d7b3',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5fexp_5f_5f_276',['__LDBL_MIN_EXP__',['../moc__predefs_8h.html#ac3707c00cdbb574b68fd6263ac4d0407',1,'moc_predefs.h']]], + ['_5f_5flfract_5fepsilon_5f_5f_277',['__LFRACT_EPSILON__',['../moc__predefs_8h.html#a78b7e10394762d719fec9a3e07b33ee2',1,'moc_predefs.h']]], + ['_5f_5flfract_5ffbit_5f_5f_278',['__LFRACT_FBIT__',['../moc__predefs_8h.html#ab743789ae83a7a7f61c5b96506f48ca9',1,'moc_predefs.h']]], + ['_5f_5flfract_5fibit_5f_5f_279',['__LFRACT_IBIT__',['../moc__predefs_8h.html#ac5a018e839dcea88e74e3b8eeac9487c',1,'moc_predefs.h']]], + ['_5f_5flfract_5fmax_5f_5f_280',['__LFRACT_MAX__',['../moc__predefs_8h.html#abb5859eb17652f35bc56f2ca26b3089b',1,'moc_predefs.h']]], + ['_5f_5flfract_5fmin_5f_5f_281',['__LFRACT_MIN__',['../moc__predefs_8h.html#aa7d8d0b2cda49359adbabb6e843e8700',1,'moc_predefs.h']]], + ['_5f_5flinux_282',['__linux',['../moc__predefs_8h.html#a6c6342c53a7213211680dc5caae14491',1,'moc_predefs.h']]], + ['_5f_5flinux_5f_5f_283',['__linux__',['../moc__predefs_8h.html#a1b27e3508a4c1e97875297882a95f503',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fepsilon_5f_5f_284',['__LLACCUM_EPSILON__',['../moc__predefs_8h.html#ae837c7430442b5c7c3a0c70d0c611473',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5ffbit_5f_5f_285',['__LLACCUM_FBIT__',['../moc__predefs_8h.html#afbcfe5556dc1a9bc0394277eb8e73e2c',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fibit_5f_5f_286',['__LLACCUM_IBIT__',['../moc__predefs_8h.html#a0405f081746b177320ab17d332a0c938',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fmax_5f_5f_287',['__LLACCUM_MAX__',['../moc__predefs_8h.html#af3bb5b9901f76155066c0d6806faef29',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fmin_5f_5f_288',['__LLACCUM_MIN__',['../moc__predefs_8h.html#aa37bd83c4330ad1020cf1bbdc89070b6',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fepsilon_5f_5f_289',['__LLFRACT_EPSILON__',['../moc__predefs_8h.html#a17d5e6eddd99e8cd1695d187ad4f0d56',1,'moc_predefs.h']]], + ['_5f_5fllfract_5ffbit_5f_5f_290',['__LLFRACT_FBIT__',['../moc__predefs_8h.html#aacea0bba92648df736365a17a1110106',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fibit_5f_5f_291',['__LLFRACT_IBIT__',['../moc__predefs_8h.html#ad3547f2b474d73b357d9b760b3e7f34c',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fmax_5f_5f_292',['__LLFRACT_MAX__',['../moc__predefs_8h.html#ab2242f19b1253ebe1f471fc61c5359c5',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fmin_5f_5f_293',['__LLFRACT_MIN__',['../moc__predefs_8h.html#aab9c2d1e67d0bd49261c9b5b0d20ce20',1,'moc_predefs.h']]], + ['_5f_5flong_5flong_5fmax_5f_5f_294',['__LONG_LONG_MAX__',['../moc__predefs_8h.html#a9bed0d0b1893211f857ad76d6728ea7e',1,'moc_predefs.h']]], + ['_5f_5flong_5flong_5fwidth_5f_5f_295',['__LONG_LONG_WIDTH__',['../moc__predefs_8h.html#a895181efde95bdfb3489ba3018c48582',1,'moc_predefs.h']]], + ['_5f_5flong_5fmax_5f_5f_296',['__LONG_MAX__',['../moc__predefs_8h.html#af16678d7537c7a5463c807639fe2f635',1,'moc_predefs.h']]], + ['_5f_5flong_5fwidth_5f_5f_297',['__LONG_WIDTH__',['../moc__predefs_8h.html#a136189a915ba49e719dcffbeba8412fd',1,'moc_predefs.h']]], + ['_5f_5fno_5finline_5f_5f_298',['__NO_INLINE__',['../moc__predefs_8h.html#a7a76473a66d022aee2c9f661405d8fbb',1,'moc_predefs.h']]], + ['_5f_5forder_5fbig_5fendian_5f_5f_299',['__ORDER_BIG_ENDIAN__',['../moc__predefs_8h.html#a190d0219caabccc0e05909f39bcb00d6',1,'moc_predefs.h']]], + ['_5f_5forder_5flittle_5fendian_5f_5f_300',['__ORDER_LITTLE_ENDIAN__',['../moc__predefs_8h.html#a2b695357ce4b46971d54e8e9dfe5724f',1,'moc_predefs.h']]], + ['_5f_5forder_5fpdp_5fendian_5f_5f_301',['__ORDER_PDP_ENDIAN__',['../moc__predefs_8h.html#a94ead674b2441dc29dbd5d6aba467197',1,'moc_predefs.h']]], + ['_5f_5fpragma_5fredefine_5fextname_302',['__PRAGMA_REDEFINE_EXTNAME',['../moc__predefs_8h.html#a165bf2f00e518485a1bb58c1918205b0',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5fmax_5f_5f_303',['__PTRDIFF_MAX__',['../moc__predefs_8h.html#ac29c76a6702808cfc4a5f661d0d33c2c',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5ftype_5f_5f_304',['__PTRDIFF_TYPE__',['../moc__predefs_8h.html#a726a020189392103a9404da070536e07',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5fwidth_5f_5f_305',['__PTRDIFF_WIDTH__',['../moc__predefs_8h.html#a96b511bfa61e4203ec3668fb39063309',1,'moc_predefs.h']]], + ['_5f_5fqq_5ffbit_5f_5f_306',['__QQ_FBIT__',['../moc__predefs_8h.html#add9f144f6de9798bb441768f7cee1072',1,'moc_predefs.h']]], + ['_5f_5fqq_5fibit_5f_5f_307',['__QQ_IBIT__',['../moc__predefs_8h.html#a7fd10bda3bcfa8ce29c11ee095b31d36',1,'moc_predefs.h']]], + ['_5f_5fregister_5fprefix_5f_5f_308',['__REGISTER_PREFIX__',['../moc__predefs_8h.html#a08d4062230ffc8494f4be4f6447497e4',1,'moc_predefs.h']]], + ['_5f_5fsa_5ffbit_5f_5f_309',['__SA_FBIT__',['../moc__predefs_8h.html#a5e3e28499ef95cba518ac1a961dc2a76',1,'moc_predefs.h']]], + ['_5f_5fsa_5fibit_5f_5f_310',['__SA_IBIT__',['../moc__predefs_8h.html#a750a955b52ac9b7534167fac1d661347',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fepsilon_5f_5f_311',['__SACCUM_EPSILON__',['../moc__predefs_8h.html#af6f23847c608c91b62a3f7107a0015fe',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5ffbit_5f_5f_312',['__SACCUM_FBIT__',['../moc__predefs_8h.html#a513fb8de806bb8fa1da2271c2872baad',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fibit_5f_5f_313',['__SACCUM_IBIT__',['../moc__predefs_8h.html#a89ba5dc332ccdea517a33b5e81488f2e',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fmax_5f_5f_314',['__SACCUM_MAX__',['../moc__predefs_8h.html#a6690459ee522ac8463747b0ba7008596',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fmin_5f_5f_315',['__SACCUM_MIN__',['../moc__predefs_8h.html#a9c0d95d87e68f1037aeb6c38a3660712',1,'moc_predefs.h']]], + ['_5f_5fschar_5fmax_5f_5f_316',['__SCHAR_MAX__',['../moc__predefs_8h.html#a87b7ceac2198cab045e40c9a64b11679',1,'moc_predefs.h']]], + ['_5f_5fschar_5fwidth_5f_5f_317',['__SCHAR_WIDTH__',['../moc__predefs_8h.html#a5a949d2ee22a649377e5bec02e3e5855',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fepsilon_5f_5f_318',['__SFRACT_EPSILON__',['../moc__predefs_8h.html#ab6f53c3751a12ac217f61873403a18bb',1,'moc_predefs.h']]], + ['_5f_5fsfract_5ffbit_5f_5f_319',['__SFRACT_FBIT__',['../moc__predefs_8h.html#a859ac49b336ef5ee25b734a48f911a15',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fibit_5f_5f_320',['__SFRACT_IBIT__',['../moc__predefs_8h.html#a6e46fffd230d19a658f6235169cc4bd5',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fmax_5f_5f_321',['__SFRACT_MAX__',['../moc__predefs_8h.html#abe904f812f7ddc9a264214f2ba613304',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fmin_5f_5f_322',['__SFRACT_MIN__',['../moc__predefs_8h.html#ab6d1db3f1e2c31e9952384f079b110b1',1,'moc_predefs.h']]], + ['_5f_5fshrt_5fmax_5f_5f_323',['__SHRT_MAX__',['../moc__predefs_8h.html#a4f69990d03f9fb0c390a6fbad28a737b',1,'moc_predefs.h']]], + ['_5f_5fshrt_5fwidth_5f_5f_324',['__SHRT_WIDTH__',['../moc__predefs_8h.html#aeb2d8312284d49b1e44c7d003bd8b54b',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fmax_5f_5f_325',['__SIG_ATOMIC_MAX__',['../moc__predefs_8h.html#a9e75b72378b039587e4fc4006776826d',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fmin_5f_5f_326',['__SIG_ATOMIC_MIN__',['../moc__predefs_8h.html#aa39266a3f430ebcd4a4374e7a815e23f',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5ftype_5f_5f_327',['__SIG_ATOMIC_TYPE__',['../moc__predefs_8h.html#ac60fe3845f87fdaf6365a733ede87cfe',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fwidth_5f_5f_328',['__SIG_ATOMIC_WIDTH__',['../moc__predefs_8h.html#a768834e55cd5d1c30d24b0dbc83563cc',1,'moc_predefs.h']]], + ['_5f_5fsize_5fmax_5f_5f_329',['__SIZE_MAX__',['../moc__predefs_8h.html#a66fbb70a69c9f66830f95a20e46091a6',1,'moc_predefs.h']]], + ['_5f_5fsize_5ftype_5f_5f_330',['__SIZE_TYPE__',['../moc__predefs_8h.html#ab8d03bfd9e9120480015fc51dc8b8e65',1,'moc_predefs.h']]], + ['_5f_5fsize_5fwidth_5f_5f_331',['__SIZE_WIDTH__',['../moc__predefs_8h.html#a9eb6044e34be0d38146a2dadec14ecb2',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fdouble_5f_5f_332',['__SIZEOF_DOUBLE__',['../moc__predefs_8h.html#a6a0b73b50b59fa18dbcea5b6dee0899f',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5ffloat_5f_5f_333',['__SIZEOF_FLOAT__',['../moc__predefs_8h.html#a4bd7bc94412d84b84388c574770b4549',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fint_5f_5f_334',['__SIZEOF_INT__',['../moc__predefs_8h.html#a4b2be09502f3fe1cd13838c6761803b3',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5f_5f_335',['__SIZEOF_LONG__',['../moc__predefs_8h.html#aaa8084a56e3732008acafea8fd15eb2f',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5fdouble_5f_5f_336',['__SIZEOF_LONG_DOUBLE__',['../moc__predefs_8h.html#aae92712264b830cd7d24d4b81d502ffb',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5flong_5f_5f_337',['__SIZEOF_LONG_LONG__',['../moc__predefs_8h.html#a68e0683c8f359f7d7e013706fbcc2040',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fpointer_5f_5f_338',['__SIZEOF_POINTER__',['../moc__predefs_8h.html#a8bd657ce95940b7c6087cf5aa54d5280',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fptrdiff_5ft_5f_5f_339',['__SIZEOF_PTRDIFF_T__',['../moc__predefs_8h.html#a2c1c95a99789b8c9721e896c48257f53',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fshort_5f_5f_340',['__SIZEOF_SHORT__',['../moc__predefs_8h.html#ae9ea889821e3c2486a7435a83a309e80',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fsize_5ft_5f_5f_341',['__SIZEOF_SIZE_T__',['../moc__predefs_8h.html#ab6eb3d66486ef05ac7f1d489bfc675b4',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fwchar_5ft_5f_5f_342',['__SIZEOF_WCHAR_T__',['../moc__predefs_8h.html#a5cc6a3e1680136db2b5e60c2fb703d99',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fwint_5ft_5f_5f_343',['__SIZEOF_WINT_T__',['../moc__predefs_8h.html#a808f04c28bb0ef2d6b77dd66564ad351',1,'moc_predefs.h']]], + ['_5f_5fsq_5ffbit_5f_5f_344',['__SQ_FBIT__',['../moc__predefs_8h.html#aee50c1cb4fcde0770a78626b34c060b3',1,'moc_predefs.h']]], + ['_5f_5fsq_5fibit_5f_5f_345',['__SQ_IBIT__',['../moc__predefs_8h.html#aba0020f767139d4cafb9f52eb252e247',1,'moc_predefs.h']]], + ['_5f_5fstdc_5f_5f_346',['__STDC__',['../moc__predefs_8h.html#a8bdd19cad331a646ae8375be00e34cb3',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fhosted_5f_5f_347',['__STDC_HOSTED__',['../moc__predefs_8h.html#a309fa84aefd09132258bbe21c20ef7d4',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiec_5f559_5f_5f_348',['__STDC_IEC_559__',['../moc__predefs_8h.html#ab7d84ba8d87b8bb40aa752334bb51b23',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiec_5f559_5fcomplex_5f_5f_349',['__STDC_IEC_559_COMPLEX__',['../moc__predefs_8h.html#a7b5b9dc07de6dd5c39c59b0ac260f943',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiso_5f10646_5f_5f_350',['__STDC_ISO_10646__',['../moc__predefs_8h.html#acb6063ed9d8841cf71c93f2bf34832e0',1,'moc_predefs.h']]], + ['_5f_5fstdc_5futf_5f16_5f_5f_351',['__STDC_UTF_16__',['../moc__predefs_8h.html#a93a5a9d251e5bff3c2a130627f20e782',1,'moc_predefs.h']]], + ['_5f_5fstdc_5futf_5f32_5f_5f_352',['__STDC_UTF_32__',['../moc__predefs_8h.html#a78e2494c8fce0c7ec9f62865340d6abf',1,'moc_predefs.h']]], + ['_5f_5fta_5ffbit_5f_5f_353',['__TA_FBIT__',['../moc__predefs_8h.html#ab355da8484a60237cfbe45d368b6bc40',1,'moc_predefs.h']]], + ['_5f_5fta_5fibit_5f_5f_354',['__TA_IBIT__',['../moc__predefs_8h.html#affe15bf30b6d0b0f6f5c9875def650cc',1,'moc_predefs.h']]], + ['_5f_5fthumb_5finterwork_5f_5f_355',['__THUMB_INTERWORK__',['../moc__predefs_8h.html#a5aa890f05b3876c70af76a6e5a8e910a',1,'moc_predefs.h']]], + ['_5f_5ftq_5ffbit_5f_5f_356',['__TQ_FBIT__',['../moc__predefs_8h.html#af9e75bdb453ccee520f6605d9987d439',1,'moc_predefs.h']]], + ['_5f_5ftq_5fibit_5f_5f_357',['__TQ_IBIT__',['../moc__predefs_8h.html#af20ff0bde5be8363438497453b001032',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fepsilon_5f_5f_358',['__UACCUM_EPSILON__',['../moc__predefs_8h.html#a4d7a4d071e8a85bb41ca9c2bc7f9a5a5',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5ffbit_5f_5f_359',['__UACCUM_FBIT__',['../moc__predefs_8h.html#acb7bbc60a8f2b4dbcff77f7c75fd6acc',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fibit_5f_5f_360',['__UACCUM_IBIT__',['../moc__predefs_8h.html#a789bbc3047d2fcfc083a9c51a1e8686d',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fmax_5f_5f_361',['__UACCUM_MAX__',['../moc__predefs_8h.html#a4aa9e67eb1c2cdfe7fa3321583b16e41',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fmin_5f_5f_362',['__UACCUM_MIN__',['../moc__predefs_8h.html#aa521e9309218b6b61261318bd5feeb81',1,'moc_predefs.h']]], + ['_5f_5fuda_5ffbit_5f_5f_363',['__UDA_FBIT__',['../moc__predefs_8h.html#a631e7073725dcc54f650b72c617f36ed',1,'moc_predefs.h']]], + ['_5f_5fuda_5fibit_5f_5f_364',['__UDA_IBIT__',['../moc__predefs_8h.html#ad31fa73585e8346393917225871cbc0b',1,'moc_predefs.h']]], + ['_5f_5fudq_5ffbit_5f_5f_365',['__UDQ_FBIT__',['../moc__predefs_8h.html#a77d82789abb2c1a3dccc47afd5b2edb9',1,'moc_predefs.h']]], + ['_5f_5fudq_5fibit_5f_5f_366',['__UDQ_IBIT__',['../moc__predefs_8h.html#a0e2a62089d7d3423f98b5b4fb687e6ce',1,'moc_predefs.h']]], + ['_5f_5fufract_5fepsilon_5f_5f_367',['__UFRACT_EPSILON__',['../moc__predefs_8h.html#a30abb5bd7d89e9e8c19677795db387c8',1,'moc_predefs.h']]], + ['_5f_5fufract_5ffbit_5f_5f_368',['__UFRACT_FBIT__',['../moc__predefs_8h.html#a7756c51be09258757005877d08688a05',1,'moc_predefs.h']]], + ['_5f_5fufract_5fibit_5f_5f_369',['__UFRACT_IBIT__',['../moc__predefs_8h.html#af2d4c34845fa216caacce1a7a9b8738f',1,'moc_predefs.h']]], + ['_5f_5fufract_5fmax_5f_5f_370',['__UFRACT_MAX__',['../moc__predefs_8h.html#a856de0bd8deb7e6ddd55e6e961cae874',1,'moc_predefs.h']]], + ['_5f_5fufract_5fmin_5f_5f_371',['__UFRACT_MIN__',['../moc__predefs_8h.html#af7d6c71ef780b40ddc515c776df7715b',1,'moc_predefs.h']]], + ['_5f_5fuha_5ffbit_5f_5f_372',['__UHA_FBIT__',['../moc__predefs_8h.html#a6b0e96965a1a25948b8e0e555a459032',1,'moc_predefs.h']]], + ['_5f_5fuha_5fibit_5f_5f_373',['__UHA_IBIT__',['../moc__predefs_8h.html#a9097ba1748883030bc82602933e6be1d',1,'moc_predefs.h']]], + ['_5f_5fuhq_5ffbit_5f_5f_374',['__UHQ_FBIT__',['../moc__predefs_8h.html#a45bfb898fee6977940d398ec0cd0d570',1,'moc_predefs.h']]], + ['_5f_5fuhq_5fibit_5f_5f_375',['__UHQ_IBIT__',['../moc__predefs_8h.html#a7102286d09cb4948865f4effecc55941',1,'moc_predefs.h']]], + ['_5f_5fuint16_5fc_376',['__UINT16_C',['../moc__predefs_8h.html#aa860a111dcff819d3502dda14f8ac778',1,'moc_predefs.h']]], + ['_5f_5fuint16_5fmax_5f_5f_377',['__UINT16_MAX__',['../moc__predefs_8h.html#a17f94731962876cdac979ae093f52605',1,'moc_predefs.h']]], + ['_5f_5fuint16_5ftype_5f_5f_378',['__UINT16_TYPE__',['../moc__predefs_8h.html#a4c0e7daf2ae663a4f96693468bbb279f',1,'moc_predefs.h']]], + ['_5f_5fuint32_5fc_379',['__UINT32_C',['../moc__predefs_8h.html#a8cc5a4a43af8f7568a450cad0e7d5bd8',1,'moc_predefs.h']]], + ['_5f_5fuint32_5fmax_5f_5f_380',['__UINT32_MAX__',['../moc__predefs_8h.html#ab4425dccbcddb2363a2a8a67367a5b42',1,'moc_predefs.h']]], + ['_5f_5fuint32_5ftype_5f_5f_381',['__UINT32_TYPE__',['../moc__predefs_8h.html#af4eb6c3c4da52a7fe202626ac4dc360e',1,'moc_predefs.h']]], + ['_5f_5fuint64_5fc_382',['__UINT64_C',['../moc__predefs_8h.html#a405cee4934ed56c9a4aa4e7dc4380bd2',1,'moc_predefs.h']]], + ['_5f_5fuint64_5fmax_5f_5f_383',['__UINT64_MAX__',['../moc__predefs_8h.html#a9f8e418d5a6f916ffe36f250fb99d7bc',1,'moc_predefs.h']]], + ['_5f_5fuint64_5ftype_5f_5f_384',['__UINT64_TYPE__',['../moc__predefs_8h.html#aef86f5642c3dce887635c9fc632baf34',1,'moc_predefs.h']]], + ['_5f_5fuint8_5fc_385',['__UINT8_C',['../moc__predefs_8h.html#a23cc29e487b9acd9261adc6c71c1ff0e',1,'moc_predefs.h']]], + ['_5f_5fuint8_5fmax_5f_5f_386',['__UINT8_MAX__',['../moc__predefs_8h.html#afd12ac7489bdbbed7fa3cc51023b8f73',1,'moc_predefs.h']]], + ['_5f_5fuint8_5ftype_5f_5f_387',['__UINT8_TYPE__',['../moc__predefs_8h.html#a0f22edb92c4da8029783c424962ac30d',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast16_5fmax_5f_5f_388',['__UINT_FAST16_MAX__',['../moc__predefs_8h.html#a5db559b8fe7a2135f05686e92ce64d9d',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast16_5ftype_5f_5f_389',['__UINT_FAST16_TYPE__',['../moc__predefs_8h.html#a5aed2c2843dad661012dac2d465f89e1',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast32_5fmax_5f_5f_390',['__UINT_FAST32_MAX__',['../moc__predefs_8h.html#a61e63cea5ac78bcf0d282b70d63668e1',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast32_5ftype_5f_5f_391',['__UINT_FAST32_TYPE__',['../moc__predefs_8h.html#a0746bdc61f4500f26c2b7408814ebfcf',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast64_5fmax_5f_5f_392',['__UINT_FAST64_MAX__',['../moc__predefs_8h.html#a17a1ff08595cf7e0c9d1f162b727ccb6',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast64_5ftype_5f_5f_393',['__UINT_FAST64_TYPE__',['../moc__predefs_8h.html#a3877156c4b30153ae764b0dad8d8130a',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast8_5fmax_5f_5f_394',['__UINT_FAST8_MAX__',['../moc__predefs_8h.html#a27b5eb7cfda61c7f1baeb4d95f3052bb',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast8_5ftype_5f_5f_395',['__UINT_FAST8_TYPE__',['../moc__predefs_8h.html#a8cf0f2397b96d2a198ff932dbfa50344',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast16_5fmax_5f_5f_396',['__UINT_LEAST16_MAX__',['../moc__predefs_8h.html#a6a762b969d5eea9e6a8db715a5f5a1a9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast16_5ftype_5f_5f_397',['__UINT_LEAST16_TYPE__',['../moc__predefs_8h.html#a64a27148d4e67c4ae167442c7dc92a0a',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast32_5fmax_5f_5f_398',['__UINT_LEAST32_MAX__',['../moc__predefs_8h.html#a281ab632befbb2d5567ff114e2fa18f9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast32_5ftype_5f_5f_399',['__UINT_LEAST32_TYPE__',['../moc__predefs_8h.html#a76363f8817bf3df4542ebbcce172df53',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast64_5fmax_5f_5f_400',['__UINT_LEAST64_MAX__',['../moc__predefs_8h.html#a4bf843ffcadf9b162b74c1b7e546e8e9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast64_5ftype_5f_5f_401',['__UINT_LEAST64_TYPE__',['../moc__predefs_8h.html#a306a0b7c6f110b24a77083abaf3acc7a',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast8_5fmax_5f_5f_402',['__UINT_LEAST8_MAX__',['../moc__predefs_8h.html#aaf06a1464d33431377a2ee5293ec70d2',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast8_5ftype_5f_5f_403',['__UINT_LEAST8_TYPE__',['../moc__predefs_8h.html#a5a8c0a31337df765b55c6260ef58e51e',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5fc_404',['__UINTMAX_C',['../moc__predefs_8h.html#aee4eb3a89493f1c9251a5a52f700f21d',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5fmax_5f_5f_405',['__UINTMAX_MAX__',['../moc__predefs_8h.html#a36b3a5bf25feeef4fbdca37900522f3c',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5ftype_5f_5f_406',['__UINTMAX_TYPE__',['../moc__predefs_8h.html#ab86380373ae9fa385c8a2464023774a8',1,'moc_predefs.h']]], + ['_5f_5fuintptr_5fmax_5f_5f_407',['__UINTPTR_MAX__',['../moc__predefs_8h.html#a1a2ed956349884193c07233d3cc40560',1,'moc_predefs.h']]], + ['_5f_5fuintptr_5ftype_5f_5f_408',['__UINTPTR_TYPE__',['../moc__predefs_8h.html#a1c54273d3f148c51ad48fd738d1e6cbe',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fepsilon_5f_5f_409',['__ULACCUM_EPSILON__',['../moc__predefs_8h.html#adfa534bdf20d21aed237e9d5644b9e1f',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5ffbit_5f_5f_410',['__ULACCUM_FBIT__',['../moc__predefs_8h.html#a7a8061fb04ad84cbc82738ee7fbff629',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fibit_5f_5f_411',['__ULACCUM_IBIT__',['../moc__predefs_8h.html#a892f356bce3091ffb2e87dfb778683d3',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fmax_5f_5f_412',['__ULACCUM_MAX__',['../moc__predefs_8h.html#a7415922e4243d2508114a0379bce6374',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fmin_5f_5f_413',['__ULACCUM_MIN__',['../moc__predefs_8h.html#a568e1d447594c30f8cc3c33d62f1cb1e',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fepsilon_5f_5f_414',['__ULFRACT_EPSILON__',['../moc__predefs_8h.html#a33713305051e7cb497b5e2c924bae95e',1,'moc_predefs.h']]], + ['_5f_5fulfract_5ffbit_5f_5f_415',['__ULFRACT_FBIT__',['../moc__predefs_8h.html#a6f68e07fad7d8b624f820fc49e241dc2',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fibit_5f_5f_416',['__ULFRACT_IBIT__',['../moc__predefs_8h.html#af8e59e7de3edb4ca738679e044cc2b81',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fmax_5f_5f_417',['__ULFRACT_MAX__',['../moc__predefs_8h.html#aa54b83195a30e6beb98ad62a6a89e075',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fmin_5f_5f_418',['__ULFRACT_MIN__',['../moc__predefs_8h.html#abfd50dcd2ef551246269f303d99fd662',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fepsilon_5f_5f_419',['__ULLACCUM_EPSILON__',['../moc__predefs_8h.html#a91c02999719803565cefadb731a2a668',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5ffbit_5f_5f_420',['__ULLACCUM_FBIT__',['../moc__predefs_8h.html#aa476e815f1590ede136d92b09f760581',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fibit_5f_5f_421',['__ULLACCUM_IBIT__',['../moc__predefs_8h.html#a01c49eec2e7d5b02de85da36904eac4e',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fmax_5f_5f_422',['__ULLACCUM_MAX__',['../moc__predefs_8h.html#a0b6b145385f61e8dc93f0df6933aa489',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fmin_5f_5f_423',['__ULLACCUM_MIN__',['../moc__predefs_8h.html#a186ffad79fee26491fa5b4ac6124cd6f',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fepsilon_5f_5f_424',['__ULLFRACT_EPSILON__',['../moc__predefs_8h.html#a8755bcd8eb888d4c837999718b8e0b18',1,'moc_predefs.h']]], + ['_5f_5fullfract_5ffbit_5f_5f_425',['__ULLFRACT_FBIT__',['../moc__predefs_8h.html#ac987d32df85aebd4b7c6b0b0cc7fac15',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fibit_5f_5f_426',['__ULLFRACT_IBIT__',['../moc__predefs_8h.html#a2f23cce03c4b945e41cdf7fc2df8aca4',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fmax_5f_5f_427',['__ULLFRACT_MAX__',['../moc__predefs_8h.html#a2a69c1193c6d41bff15b920fbfa5a867',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fmin_5f_5f_428',['__ULLFRACT_MIN__',['../moc__predefs_8h.html#ae29642406cfa11e91a88203861adc92c',1,'moc_predefs.h']]], + ['_5f_5funix_429',['__unix',['../moc__predefs_8h.html#ac3cd8b035cfb8a68f6d1119ace36f1cc',1,'moc_predefs.h']]], + ['_5f_5funix_5f_5f_430',['__unix__',['../moc__predefs_8h.html#aa5be39d362c571d48d6236f0bd58f1fc',1,'moc_predefs.h']]], + ['_5f_5fuqq_5ffbit_5f_5f_431',['__UQQ_FBIT__',['../moc__predefs_8h.html#ae769d68160432410a4d6700acb5051de',1,'moc_predefs.h']]], + ['_5f_5fuqq_5fibit_5f_5f_432',['__UQQ_IBIT__',['../moc__predefs_8h.html#ac8770dbc2da017dd63e1a44fc07d248f',1,'moc_predefs.h']]], + ['_5f_5fusa_5ffbit_5f_5f_433',['__USA_FBIT__',['../moc__predefs_8h.html#acdef6e7c9f7d4096d19aa387abc0a045',1,'moc_predefs.h']]], + ['_5f_5fusa_5fibit_5f_5f_434',['__USA_IBIT__',['../moc__predefs_8h.html#a5b7b699f70c2278374328a3933389c8b',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fepsilon_5f_5f_435',['__USACCUM_EPSILON__',['../moc__predefs_8h.html#afcdca48368232fed3dceacc5716f007c',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5ffbit_5f_5f_436',['__USACCUM_FBIT__',['../moc__predefs_8h.html#a30b5a905003a2c748fdb277e1eb61134',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fibit_5f_5f_437',['__USACCUM_IBIT__',['../moc__predefs_8h.html#aaf5d84a69adea71f50f8007fabde7ffb',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fmax_5f_5f_438',['__USACCUM_MAX__',['../moc__predefs_8h.html#a2bff327f9a0dd209c33e89161cfa75db',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fmin_5f_5f_439',['__USACCUM_MIN__',['../moc__predefs_8h.html#a48177288d9ba19526ddfa87071d2c735',1,'moc_predefs.h']]], + ['_5f_5fuser_5flabel_5fprefix_5f_5f_440',['__USER_LABEL_PREFIX__',['../moc__predefs_8h.html#aff6bf0ff0fa3b5cbd23a8ae1131c87a9',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fepsilon_5f_5f_441',['__USFRACT_EPSILON__',['../moc__predefs_8h.html#a0bb1e0beafad50453605ea11eb49e0e9',1,'moc_predefs.h']]], + ['_5f_5fusfract_5ffbit_5f_5f_442',['__USFRACT_FBIT__',['../moc__predefs_8h.html#ab97fb376186e27dd069f91fdb8944c45',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fibit_5f_5f_443',['__USFRACT_IBIT__',['../moc__predefs_8h.html#aff6e8fba11120740e9b9905d908e5810',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fmax_5f_5f_444',['__USFRACT_MAX__',['../moc__predefs_8h.html#a12a7c3c43c7075b2524bcff787860afd',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fmin_5f_5f_445',['__USFRACT_MIN__',['../moc__predefs_8h.html#a18722e43595ceec21ac010aac3cdd70f',1,'moc_predefs.h']]], + ['_5f_5fusq_5ffbit_5f_5f_446',['__USQ_FBIT__',['../moc__predefs_8h.html#aa4c8d3109d01e6ec62924594f73ffbf4',1,'moc_predefs.h']]], + ['_5f_5fusq_5fibit_5f_5f_447',['__USQ_IBIT__',['../moc__predefs_8h.html#a81eca8959b61c7e2abc29a2c24af02bc',1,'moc_predefs.h']]], + ['_5f_5futa_5ffbit_5f_5f_448',['__UTA_FBIT__',['../moc__predefs_8h.html#ad739d1e4f2c7c3928ac586e8d37da3d2',1,'moc_predefs.h']]], + ['_5f_5futa_5fibit_5f_5f_449',['__UTA_IBIT__',['../moc__predefs_8h.html#af63dc9fba4fe0505ab0807df57e51020',1,'moc_predefs.h']]], + ['_5f_5futq_5ffbit_5f_5f_450',['__UTQ_FBIT__',['../moc__predefs_8h.html#ad61e6ae874c4687f0c2d31ae1095a110',1,'moc_predefs.h']]], + ['_5f_5futq_5fibit_5f_5f_451',['__UTQ_IBIT__',['../moc__predefs_8h.html#acc7db708461d0efef423bc9c3aa645c4',1,'moc_predefs.h']]], + ['_5f_5fversion_5f_5f_452',['__VERSION__',['../moc__predefs_8h.html#a5b753f1dbbed79a7126b24ca512246d5',1,'moc_predefs.h']]], + ['_5f_5fvfp_5ffp_5f_5f_453',['__VFP_FP__',['../moc__predefs_8h.html#a430c761265b6ca716c3686bad5c43f45',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fmax_5f_5f_454',['__WCHAR_MAX__',['../moc__predefs_8h.html#a65ac8cd0434319a3a31dc031409c218a',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fmin_5f_5f_455',['__WCHAR_MIN__',['../moc__predefs_8h.html#a01b915d3ec5439de746f1d5e9f76dc3d',1,'moc_predefs.h']]], + ['_5f_5fwchar_5ftype_5f_5f_456',['__WCHAR_TYPE__',['../moc__predefs_8h.html#a4f41dbe213ea9662c1fb0f5af562e363',1,'moc_predefs.h']]], + ['_5f_5fwchar_5funsigned_5f_5f_457',['__WCHAR_UNSIGNED__',['../moc__predefs_8h.html#ac4ca588ceb885c4ec2579b162934241d',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fwidth_5f_5f_458',['__WCHAR_WIDTH__',['../moc__predefs_8h.html#aba008af276ac0e3f85d1479af98f62b0',1,'moc_predefs.h']]], + ['_5f_5fwint_5fmax_5f_5f_459',['__WINT_MAX__',['../moc__predefs_8h.html#a8925e15bce319fa2f42c659f6a3e0199',1,'moc_predefs.h']]], + ['_5f_5fwint_5fmin_5f_5f_460',['__WINT_MIN__',['../moc__predefs_8h.html#a135696718aa5b38e58be73aaece6654f',1,'moc_predefs.h']]], + ['_5f_5fwint_5ftype_5f_5f_461',['__WINT_TYPE__',['../moc__predefs_8h.html#a1304d54dba90274495e0b09c9820927b',1,'moc_predefs.h']]], + ['_5f_5fwint_5fwidth_5f_5f_462',['__WINT_WIDTH__',['../moc__predefs_8h.html#a5fa28f9bc424c535269b607039836f19',1,'moc_predefs.h']]], + ['_5fgnu_5fsource_463',['_GNU_SOURCE',['../moc__predefs_8h.html#a369266c24eacffb87046522897a570d5',1,'moc_predefs.h']]], + ['_5fstdc_5fpredef_5fh_464',['_STDC_PREDEF_H',['../moc__predefs_8h.html#a198efb9bd9b8de1c44f470b6c6ddf69d',1,'moc_predefs.h']]] +]; diff --git a/docs/search/all_1.html b/docs/search/all_1.html new file mode 100644 index 0000000..9f80e90 --- /dev/null +++ b/docs/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_1.js b/docs/search/all_1.js new file mode 100644 index 0000000..4e3118b --- /dev/null +++ b/docs/search/all_1.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['abi_5fid_465',['ABI_ID',['../moc__predefs_8h.html#a12ae39ceaadaa474ba09d20fba083f68',1,'moc_predefs.h']]], + ['add_466',['add',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a191efd00967cbace0d9ddfedea39cd9b',1,'JSONCGIHandler::JSONGenerator::add(std::string key, std::string value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#aa25099deb2442335298ab1c021f36910',1,'JSONCGIHandler::JSONGenerator::add(std::string key, double value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a2192849b22341653a138bb63da6c6c9a',1,'JSONCGIHandler::JSONGenerator::add(std::string key, float value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afc3e9374b0e49ca1f701bd22bbd4cd92',1,'JSONCGIHandler::JSONGenerator::add(std::string key, long value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a87fe5c75b46f9822255535a61f15ad4b',1,'JSONCGIHandler::JSONGenerator::add(std::string key, int value)']]], + ['addrandomgraph_467',['addRandomGraph',['../class_main_window.html#adf836fa5cd0d1a80544f272fac06867f',1,'MainWindow']]], + ['addrealtimegraph_468',['addRealtimeGraph',['../class_main_window.html#a569f6854621f0b737fe75c3f4a85be5e',1,'MainWindow']]], + ['addrealtimesample_469',['addRealtimeSample',['../class_main_window.html#a249c355d9682742f0b2f0c4df3a889ba',1,'MainWindow']]], + ['amp_470',['amp',['../class_sensor_timer.html#a69302d73a34d1ac10dbbd4d17e46493c',1,'SensorTimer']]], + ['analyzebeatsforsleep_471',['analyzeBeatsForSleep',['../class_sensor_timer.html#a36233c0d18fe087bbfcf3a37bdf6dcec',1,'SensorTimer']]], + ['animdata_472',['animdata',['../class_main_window.html#a8a03063815634f96c67efff679eec7f1',1,'MainWindow']]], + ['audio_5fname_473',['audio_name',['../class_sensor_timer.html#a753287351e0381ca5d0d85df3078f762',1,'SensorTimer']]], + ['audio_5fpid_474',['audio_pid',['../class_sensor_timer.html#aaeec2579eba748d10fa8532311b20e99',1,'SensorTimer']]], + ['audioprocess_475',['audioprocess',['../class_sensor_timer.html#adb180c4dab8ccaa5eae6870aa851f76a',1,'SensorTimer']]], + ['axislabeldoubleclick_476',['axisLabelDoubleClick',['../class_main_window.html#af5c159a4d57c57c6014b6892d14eb816',1,'MainWindow']]] +]; diff --git a/docs/search/all_10.html b/docs/search/all_10.html new file mode 100644 index 0000000..3bf1196 --- /dev/null +++ b/docs/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_10.js b/docs/search/all_10.js new file mode 100644 index 0000000..413c8ac --- /dev/null +++ b/docs/search/all_10.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['p_555',['P',['../class_sensor_timer.html#a9bf478f0366940dab46992b626eb6614',1,'SensorTimer']]], + ['period_5fof_5fsimulation_556',['period_of_simulation',['../class_sensor_timer.html#a05ab0c30d7e40d9045c21b0b115c392d',1,'SensorTimer']]], + ['periodic_557',['PERIODIC',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aae4379d044711537d9ce3b3b58c575c58',1,'CppTimer.h']]], + ['play_5faudio_558',['play_audio',['../class_sensor_timer.html#a03ec27b4291d6a2bdd84822415efe680',1,'SensorTimer']]], + ['play_5faudio_5flocally_559',['play_audio_locally',['../class_sensor_timer.html#ab8ae50b1ee64129594c15f056856c35f',1,'SensorTimer']]], + ['postcallback_560',['POSTCallback',['../class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html',1,'JSONCGIHandler']]], + ['postcallback_561',['postCallback',['../class_j_s_o_n_c_g_i_handler.html#a09ee0f555db808d07c9ee9a575780553',1,'JSONCGIHandler']]], + ['postdecoder_562',['postDecoder',['../class_j_s_o_n_c_g_i_handler.html#a0f208af3dd050ed182967fe9cca42d78',1,'JSONCGIHandler']]], + ['poststring_563',['postString',['../class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html#a6cddb384a3fd9242b323cea3d82a6bb7',1,'JSONCGIHandler::POSTCallback']]], + ['pulse_564',['Pulse',['../class_sensor_timer.html#aaa0853dc77e341fcaf2f19bf968b4b4c',1,'SensorTimer']]], + ['pulsesensor_2eh_565',['PulseSensor.h',['../_pulse_sensor_8h.html',1,'']]] +]; diff --git a/docs/search/all_11.html b/docs/search/all_11.html new file mode 100644 index 0000000..c9f79d2 --- /dev/null +++ b/docs/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_11.js b/docs/search/all_11.js new file mode 100644 index 0000000..22a8416 --- /dev/null +++ b/docs/search/all_11.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['qmainwindow_566',['QMainWindow',['../class_q_main_window.html',1,'']]], + ['qs_567',['QS',['../class_sensor_timer.html#a820b614d51dc988ae64219c133406f47',1,'SensorTimer']]], + ['qt_5fcore_5flib_568',['QT_CORE_LIB',['../moc__predefs_8h.html#a3fdaeff4a929898125f060b951479a85',1,'moc_predefs.h']]], + ['qt_5fgui_5flib_569',['QT_GUI_LIB',['../moc__predefs_8h.html#a20aa38ff6d76d6980b3c6365892110f1',1,'moc_predefs.h']]], + ['qt_5fmeta_5fstringdata_5fmainwindow_5ft_570',['qt_meta_stringdata_MainWindow_t',['../structqt__meta__stringdata___main_window__t.html',1,'']]], + ['qt_5fmoc_5fliteral_571',['QT_MOC_LITERAL',['../moc__mainwindow_8cpp.html#a75bb9482d242cde0a06c9dbdc6b83abe',1,'moc_mainwindow.cpp']]], + ['qt_5fno_5fdebug_572',['QT_NO_DEBUG',['../moc__predefs_8h.html#adf4502fefc73baefd4000330c54a52fa',1,'moc_predefs.h']]], + ['qt_5fprintsupport_5flib_573',['QT_PRINTSUPPORT_LIB',['../moc__predefs_8h.html#ab0162c88021716c1e0de68c71b5b5c9c',1,'moc_predefs.h']]], + ['qt_5fwidgets_5flib_574',['QT_WIDGETS_LIB',['../moc__predefs_8h.html#a3764f041b8bf4c5ebd0bf19c071f416c',1,'moc_predefs.h']]] +]; diff --git a/docs/search/all_12.html b/docs/search/all_12.html new file mode 100644 index 0000000..ab93472 --- /dev/null +++ b/docs/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_12.js b/docs/search/all_12.js new file mode 100644 index 0000000..45c8885 --- /dev/null +++ b/docs/search/all_12.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['rate_575',['rate',['../class_sensor_timer.html#ab74c86309da203b069a991f8ca09ae0a',1,'SensorTimer']]], + ['readme_2emd_576',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['registereventrunnable_577',['registerEventRunnable',['../class_cpp_timer_callback.html#ae6e815f1c3b65ea4f10fe0332e13acb9',1,'CppTimerCallback']]], + ['removeallgraphs_578',['removeAllGraphs',['../class_main_window.html#a7af3696afc3e0996f54803bc9e8a88de',1,'MainWindow']]], + ['removeselectedgraph_579',['removeSelectedGraph',['../class_main_window.html#addd0ecbc66696a8427539ea464a56c7d',1,'MainWindow']]], + ['request_580',['request',['../class_j_s_o_n_c_g_i_handler.html#a69dba19ef64e913fc7e969854be997c9',1,'JSONCGIHandler']]], + ['run_581',['run',['../class_cpp_timer_callback_1_1_runnable.html#af8d11a3b580e76431151e76ac1886e6e',1,'CppTimerCallback::Runnable']]], + ['runnable_582',['Runnable',['../class_cpp_timer_callback_1_1_runnable.html',1,'CppTimerCallback']]], + ['running_583',['running',['../class_j_s_o_n_c_g_i_handler.html#aefa19cd01b387693ef99c5aa0c5fc093',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/all_13.html b/docs/search/all_13.html new file mode 100644 index 0000000..51172c2 --- /dev/null +++ b/docs/search/all_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_13.js b/docs/search/all_13.js new file mode 100644 index 0000000..0b57245 --- /dev/null +++ b/docs/search/all_13.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['sa_584',['sa',['../class_cpp_timer.html#a692a200df6d2c43b72ff1db76458f09f',1,'CppTimer']]], + ['samplecounter_585',['sampleCounter',['../class_sensor_timer.html#a7ba22ffafc2b42ae3cdff31d47525fcb',1,'SensorTimer']]], + ['secondbeat_586',['secondBeat',['../class_sensor_timer.html#a93f19ee800ea1f8b53d2bd9ca40374ab',1,'SensorTimer']]], + ['secondtime_587',['secondTime',['../class_sensor_timer.html#ac2de8ccb0d70b801574f962baae0a5cb',1,'SensorTimer']]], + ['selectionchanged_588',['selectionChanged',['../class_main_window.html#a91379bd45a0f0ed052dd43f976820874',1,'MainWindow']]], + ['sensewindow_589',['SenseWindow',['../class_sense_window.html',1,'SenseWindow'],['../class_sense_window.html#afb0c22b15152f699fcb1a4e1fd254f4b',1,'SenseWindow::SenseWindow()']]], + ['sensorcallback_590',['SensorCallback',['../class_sensor_callback.html',1,'']]], + ['sensorcallback_591',['sensorCallback',['../class_sensor_timer.html#ad58597d91c359dc772a970ee46ef2b8c',1,'SensorTimer']]], + ['sensorfastcgi_592',['sensorfastcgi',['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a105866e87ab653c7cddfedba74149d42',1,'JSONCGIADCCallback']]], + ['sensorfastcgicallback_593',['SENSORfastcgicallback',['../class_s_e_n_s_o_rfastcgicallback.html',1,'']]], + ['sensortimer_594',['SensorTimer',['../class_sensor_timer.html',1,'SensorTimer'],['../class_sensor_timer.html#afbfb91d0dc35bf217cb22f50d680b26e',1,'SensorTimer::SensorTimer(int, bool, bool)']]], + ['setcallback_595',['setCallback',['../class_sensor_timer.html#a2b87e348b476be96d88ee70be98bef11',1,'SensorTimer']]], + ['setnigttimetonow_596',['setNigtTimeToNow',['../class_sensor_timer.html#a571f7dcc621738e57607586cea71d302',1,'SensorTimer']]], + ['setperiodofsimulatedwave_597',['setPeriodOfSimulatedWave',['../class_sensor_timer.html#afa77fed86caa66cbff25f6f1599e6012',1,'SensorTimer']]], + ['setsurelyslepttime_598',['setSurelySleptTime',['../class_sensor_timer.html#ad8d148ba672bccb72ca45fea9b98fb38',1,'SensorTimer']]], + ['sev_599',['sev',['../class_cpp_timer.html#a9860d3d723ad55982db50c9cde8d725a',1,'CppTimer']]], + ['signal_600',['Signal',['../class_sensor_timer.html#a73b3600a3b439a889ec2aefb6e9d406e',1,'SensorTimer::Signal()'],['../class_sense_window.html#ad97aff95e489210aaa4dec6fc03dd741',1,'SenseWindow::Signal()']]], + ['signalhandler_601',['signalHandler',['../main_8cpp.html#a8ee3282bc313e547dbbb8d4f4010db61',1,'main.cpp']]], + ['simulation_5fstarted_602',['simulation_started',['../class_sensor_timer.html#af524226ec78b66a274851119f7b00a2f',1,'SensorTimer']]], + ['sizeof_5fdptr_603',['SIZEOF_DPTR',['../moc__predefs_8h.html#addad5b57ed33bc5c79361574d9e03c06',1,'moc_predefs.h']]], + ['sleep_604',['sleep',['../class_sensor_timer.html#a1bf0ef8c1667be0f111419322d196077',1,'SensorTimer::sleep()'],['../class_s_e_n_s_o_rfastcgicallback.html#aa667ff1226feb85d2684cc355ca6e644',1,'SENSORfastcgicallback::sleep()']]], + ['sock_5ffd_605',['sock_fd',['../class_j_s_o_n_c_g_i_handler.html#a6f696ff6856f32b3ba75a130fcbb8987',1,'JSONCGIHandler']]], + ['spi_5fchan_606',['SPI_CHAN',['../_pulse_sensor_8h.html#ae915de38397fbdc90276fa44e148c686',1,'PulseSensor.h']]], + ['start_5fof_5fsimulation_607',['start_of_simulation',['../class_sensor_timer.html#a5b5f30f0afd6eb4a9df8f7b6b6869a6a',1,'SensorTimer']]], + ['startms_608',['startms',['../class_cpp_timer.html#a1fec3e463138ab01f640aec9aafc14d0',1,'CppTimer']]], + ['startns_609',['startns',['../class_cpp_timer.html#a6c8df87a608c7722bb9900cf925f571b',1,'CppTimer']]], + ['startofprospectivesleep_610',['startOfProspectiveSleep',['../class_sensor_timer.html#ad2a424f227d18421cf94c86d7eb031be',1,'SensorTimer']]], + ['statusbar_611',['statusBar',['../class_main_window.html#a4a04910f3193303a44506b44521b61b0',1,'MainWindow']]], + ['stop_612',['stop',['../class_cpp_timer.html#a4bb95ddee98a536d0818b8f6096bf7e7',1,'CppTimer']]], + ['stopnew_613',['stopNew',['../class_sensor_timer.html#ab27fde0c17025181e3008d3246077bbc',1,'SensorTimer']]], + ['stringdata0_614',['stringdata0',['../structqt__meta__stringdata___main_window__t.html#a2cbbb3f51dad6b92744bc95ac135e6ae',1,'qt_meta_stringdata_MainWindow_t']]], + ['structure_615',['Structure',['../md__s_t_r_u_c_t_u_r_e.html',1,'']]], + ['structure_2emd_616',['STRUCTURE.md',['../_s_t_r_u_c_t_u_r_e_8md.html',1,'']]], + ['surelyslepttime_617',['surelySleptTime',['../class_sensor_timer.html#a84505975df90206876681d89975faa52',1,'SensorTimer']]] +]; diff --git a/docs/search/all_14.html b/docs/search/all_14.html new file mode 100644 index 0000000..afecf56 --- /dev/null +++ b/docs/search/all_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_14.js b/docs/search/all_14.js new file mode 100644 index 0000000..16011e0 --- /dev/null +++ b/docs/search/all_14.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['t_618',['T',['../class_sensor_timer.html#ad78b1837ae8402db8111c1125d62c39a',1,'SensorTimer']]], + ['t_619',['t',['../class_main_window.html#a4a67c261262269dbbdf62c5acecd0f45',1,'MainWindow::t()'],['../class_s_e_n_s_o_rfastcgicallback.html#aaa260a6ca2f81d83f769b4c3ca6acc73',1,'SENSORfastcgicallback::t()']]], + ['thistime_620',['thisTime',['../class_sensor_timer.html#ab8ae36c7b7cb90c0b0d119e890489338',1,'SensorTimer']]], + ['thresh_621',['thresh',['../class_sensor_timer.html#a888dc3b1bf9bfb452c679bccb018a387',1,'SensorTimer']]], + ['threshold_622',['threshold',['../class_s_e_n_s_o_rfastcgicallback.html#ad48620809e828f35a6e6c0e7065f13aa',1,'SENSORfastcgicallback']]], + ['threshsetting_623',['threshSetting',['../class_sensor_timer.html#a6e26abccf69140ef3749f95dccbb60aa',1,'SensorTimer']]], + ['timeoutstart_624',['timeOutStart',['../class_sensor_timer.html#a884380525acb68dcbe88e55a48a37496',1,'SensorTimer']]], + ['timerevent_625',['timerEvent',['../class_cpp_timer.html#ac2665403595b6aee5f581d0ebfeb886c',1,'CppTimer::timerEvent()'],['../class_cpp_timer_callback.html#af6b39f5eb8e98bfc1b301ac3f25276e9',1,'CppTimerCallback::timerEvent()'],['../class_main_window.html#a1c7877c1ca466bd8034d88762ce2af9f',1,'MainWindow::timerEvent()'],['../class_sensor_timer.html#a6d15ff3f37f39e6baa43cf22a48263f2',1,'SensorTimer::timerEvent()'],['../class_sense_window.html#a43602e0dfc68a2ad1b46562e5af17fd7',1,'SenseWindow::timerEvent()']]], + ['timerid_626',['timerid',['../class_cpp_timer.html#a90ff764263fdde5a0f6e53429c8cf734',1,'CppTimer']]], + ['titledoubleclick_627',['titleDoubleClick',['../class_main_window.html#a7a08729acae2d66f3a961aedc2843201',1,'MainWindow']]], + ['titletxt_628',['titleTxt',['../mainwindow_8cpp.html#a773d83c4ef02c0fe33e23e9133603c75',1,'mainwindow.cpp']]] +]; diff --git a/docs/search/all_15.html b/docs/search/all_15.html new file mode 100644 index 0000000..69f382b --- /dev/null +++ b/docs/search/all_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_15.js b/docs/search/all_15.js new file mode 100644 index 0000000..11c5481 --- /dev/null +++ b/docs/search/all_15.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['unix_629',['unix',['../moc__predefs_8h.html#a4e65214f450ef6326b96b52e6dd5714b',1,'moc_predefs.h']]], + ['unregistereventrunnable_630',['unregisterEventRunnable',['../class_cpp_timer_callback.html#a29d8d5a426a3d15bca8a42c2c897f50f',1,'CppTimerCallback']]], + ['usage_631',['usage',['../main_8cpp.html#ae8605e2b78cd4a81b6c6b5c30cb7366a',1,'main.cpp']]] +]; diff --git a/docs/search/all_16.html b/docs/search/all_16.html new file mode 100644 index 0000000..b19867a --- /dev/null +++ b/docs/search/all_16.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_16.js b/docs/search/all_16.js new file mode 100644 index 0000000..6af5e05 --- /dev/null +++ b/docs/search/all_16.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['verticallayout_632',['verticalLayout',['../class_main_window.html#a27112d7db9fb5d46fe348f82ec04575c',1,'MainWindow']]], + ['verticallayout_5f2_633',['verticalLayout_2',['../class_main_window.html#aa832835ecf184b522debbaca68b1e93d',1,'MainWindow']]], + ['verticallayout_5f3_634',['verticalLayout_3',['../class_main_window.html#a5017c8d0c6c5a1dc9276ee000d417ab9',1,'MainWindow']]] +]; diff --git a/docs/search/all_17.html b/docs/search/all_17.html new file mode 100644 index 0000000..1ad5d34 --- /dev/null +++ b/docs/search/all_17.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_17.js b/docs/search/all_17.js new file mode 100644 index 0000000..2c37726 --- /dev/null +++ b/docs/search/all_17.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['waketime_635',['wakeTime',['../class_sensor_timer.html#a9edffcd5c781e8942f8570f2bfe8232d',1,'SensorTimer']]] +]; diff --git a/docs/search/all_18.html b/docs/search/all_18.html new file mode 100644 index 0000000..507d0f8 --- /dev/null +++ b/docs/search/all_18.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_18.js b/docs/search/all_18.js new file mode 100644 index 0000000..5abdd94 --- /dev/null +++ b/docs/search/all_18.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecpptimer_636',['~CppTimer',['../class_cpp_timer.html#a91779a93fce7383a8d832ed481399342',1,'CppTimer']]], + ['_7ejsoncgihandler_637',['~JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/all_19.html b/docs/search/all_19.html new file mode 100644 index 0000000..e69289e --- /dev/null +++ b/docs/search/all_19.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_19.js b/docs/search/all_19.js new file mode 100644 index 0000000..77c1c6e --- /dev/null +++ b/docs/search/all_19.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecpptimer_201',['~CppTimer',['../class_cpp_timer.html#a91779a93fce7383a8d832ed481399342',1,'CppTimer']]], + ['_7ejsoncgihandler_202',['~JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/all_2.html b/docs/search/all_2.html new file mode 100644 index 0000000..02cfffc --- /dev/null +++ b/docs/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_2.js b/docs/search/all_2.js new file mode 100644 index 0000000..1568e78 --- /dev/null +++ b/docs/search/all_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['base_477',['BASE',['../_pulse_sensor_8h.html#a79bcfb6bde984f42d1124b068a509af7',1,'PulseSensor.h']]], + ['beatsperminute_478',['beatsPerMinute',['../class_s_e_n_s_o_rfastcgicallback.html#a6b4105c78aed0f6d71feccb84dc1ffd6',1,'SENSORfastcgicallback']]], + ['beatsperminutesimulation_479',['beatsPerMinuteSimulation',['../class_sensor_timer.html#ae70a0da132083a8135a17903baa68059',1,'SensorTimer']]], + ['bpm_480',['BPM',['../class_sensor_timer.html#a54c96b55f91d091b3f11d9f4f5aaa34a',1,'SensorTimer']]], + ['bpmthreshold_481',['bpmThreshold',['../class_sensor_timer.html#a4db914e2d73ffb3202aeb4fb3ffb3073',1,'SensorTimer']]] +]; diff --git a/docs/search/all_3.html b/docs/search/all_3.html new file mode 100644 index 0000000..39767b8 --- /dev/null +++ b/docs/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_3.js b/docs/search/all_3.js new file mode 100644 index 0000000..7ba1e65 --- /dev/null +++ b/docs/search/all_3.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['call_5ftime_5fperiod_482',['call_time_period',['../class_sensor_timer.html#a0ee1760c265760a66758a9845f179f53',1,'SensorTimer']]], + ['callplot_483',['callPlot',['../class_main_window.html#a37fafd4b956df2afe979320e886e08b9',1,'MainWindow']]], + ['centralwidget_484',['centralWidget',['../class_main_window.html#ad3bde47a75b6c59146d6aff1752d077f',1,'MainWindow']]], + ['clockid_485',['CLOCKID',['../_cpp_timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7',1,'CppTimer.h']]], + ['contextmenurequest_486',['contextMenuRequest',['../class_main_window.html#a9aa96a47567bb4c129c3c0ec88fff3a8',1,'MainWindow']]], + ['countdown_487',['countdown',['../class_sensor_timer.html#a6bb2773d68210a8d70742b118b84139f',1,'SensorTimer']]], + ['cpptimer_488',['CppTimer',['../class_cpp_timer.html',1,'CppTimer'],['../class_cpp_timer.html#a300c3075e777cb4abdc09c9704ae6f87',1,'CppTimer::CppTimer()']]], + ['cpptimer_2ecpp_489',['CppTimer.cpp',['../_cpp_timer_8cpp.html',1,'']]], + ['cpptimer_2eh_490',['CppTimer.h',['../_cpp_timer_8h.html',1,'']]], + ['cpptimercallback_491',['CppTimerCallback',['../class_cpp_timer_callback.html',1,'']]], + ['cpptimercallback_2eh_492',['CppTimerCallback.h',['../_cpp_timer_callback_8h.html',1,'']]], + ['cpptimereventrunnable_493',['cppTimerEventRunnable',['../class_cpp_timer_callback.html#a578cc701cee7be10f3afab2859eac74f',1,'CppTimerCallback']]], + ['cpptimertype_5ft_494',['cppTimerType_t',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790a',1,'CppTimer.h']]], + ['customplot_495',['customPlot',['../class_main_window.html#adf20eb4e3d56f3697d3668cda8219e56',1,'MainWindow']]] +]; diff --git a/docs/search/all_4.html b/docs/search/all_4.html new file mode 100644 index 0000000..fc40463 --- /dev/null +++ b/docs/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_4.js b/docs/search/all_4.js new file mode 100644 index 0000000..a6d2840 --- /dev/null +++ b/docs/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['data_496',['data',['../structqt__meta__stringdata___main_window__t.html#a1cbcf6789501827b3f67e89911745b83',1,'qt_meta_stringdata_MainWindow_t']]], + ['datarequeststart_497',['dataRequestStart',['../class_sensor_timer.html#a5e04d19d42170c73243dbcbbdedfdbc5',1,'SensorTimer']]], + ['dt_498',['dt',['../class_main_window.html#a9877316405a63e4d97dcc23973b57883',1,'MainWindow']]], + ['duration_499',['duration',['../class_sensor_timer.html#a1353e51d3e3db2f14a18afb14419c905',1,'SensorTimer']]] +]; diff --git a/docs/search/all_5.html b/docs/search/all_5.html new file mode 100644 index 0000000..9dd9344 --- /dev/null +++ b/docs/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_5.js b/docs/search/all_5.js new file mode 100644 index 0000000..6a1941b --- /dev/null +++ b/docs/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['elapsedtime_500',['elapsedTime',['../class_sensor_timer.html#a23904c4f9bc7b0ef8f39e9158da989a3',1,'SensorTimer']]], + ['eventcounter_501',['eventCounter',['../class_sensor_timer.html#ab410d5296b53f11c14037a0639d905ae',1,'SensorTimer']]], + ['exec_502',['exec',['../class_j_s_o_n_c_g_i_handler.html#a42518cd5ad781476d299b50e4c4c0000',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/all_6.html b/docs/search/all_6.html new file mode 100644 index 0000000..f1e516d --- /dev/null +++ b/docs/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_6.js b/docs/search/all_6.js new file mode 100644 index 0000000..ac047ac --- /dev/null +++ b/docs/search/all_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['firstbeat_503',['firstBeat',['../class_sensor_timer.html#a285de7aa2794270cbcf59144afd4746a',1,'SensorTimer']]], + ['firstentry_504',['firstEntry',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a9d14c80af92fa9f3a3406d826acd2cc0',1,'JSONCGIHandler::JSONGenerator']]], + ['firsttime_505',['firstTime',['../class_sensor_timer.html#a29b97782575a74a0d4bf7af50bad66cc',1,'SensorTimer']]], + ['frame_506',['frame',['../class_main_window.html#a1c0b4ea19f6a3fa99e1b2b5aaced3316',1,'MainWindow']]], + ['frame_5f2_507',['frame_2',['../class_main_window.html#a2922276b16afd8adc961e2feb0295aa7',1,'MainWindow']]] +]; diff --git a/docs/search/all_7.html b/docs/search/all_7.html new file mode 100644 index 0000000..8ddbf6c --- /dev/null +++ b/docs/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_7.js b/docs/search/all_7.js new file mode 100644 index 0000000..abb3cd4 --- /dev/null +++ b/docs/search/all_7.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['g_5frunning_508',['g_running',['../main_8cpp.html#a037aed45f792fc3e78387006be43a53e',1,'main.cpp']]], + ['getcallback_509',['getCallback',['../class_j_s_o_n_c_g_i_handler.html#a7c8b4a44e15ac57fe93b382e86899fa7',1,'JSONCGIHandler']]], + ['getcallback_510',['GETCallback',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html',1,'JSONCGIHandler']]], + ['getcontenttype_511',['getContentType',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a4e1fee495ddeb4e24eaa5b8e767ea838',1,'JSONCGIHandler::GETCallback']]], + ['getjson_512',['getJSON',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afec28cd80e562955e2cd8cdb92d86205',1,'JSONCGIHandler::JSONGenerator']]], + ['getjsonstring_513',['getJSONString',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a2367bf5a5912e9e5599ee464e0846255',1,'JSONCGIHandler::GETCallback::getJSONString()'],['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a763ae66809e399f49e712a1ad68289bb',1,'JSONCGIADCCallback::getJSONString()']]], + ['getpulse_514',['getPulse',['../class_sensor_timer.html#a54d4119db865d1fd2bbff0fc8da67482',1,'SensorTimer']]], + ['graphclicked_515',['graphClicked',['../class_main_window.html#a8051aaa7fb3d933b24edfc2b3313fb9d',1,'MainWindow']]] +]; diff --git a/docs/search/all_8.html b/docs/search/all_8.html new file mode 100644 index 0000000..83c55ae --- /dev/null +++ b/docs/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_8.js b/docs/search/all_8.js new file mode 100644 index 0000000..aa491a5 --- /dev/null +++ b/docs/search/all_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handler_516',['handler',['../class_cpp_timer.html#a88d7573281ac46871df398f1d85399b0',1,'CppTimer']]], + ['hassample_517',['hasSample',['../class_sensor_callback.html#a89069694af2123270caf56839ed22cdd',1,'SensorCallback::hasSample()'],['../class_s_e_n_s_o_rfastcgicallback.html#a554ef360acfa9d3659742697b2946f3a',1,'SENSORfastcgicallback::hasSample()']]] +]; diff --git a/docs/search/all_9.html b/docs/search/all_9.html new file mode 100644 index 0000000..1e263c1 --- /dev/null +++ b/docs/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_9.js b/docs/search/all_9.js new file mode 100644 index 0000000..03d2488 --- /dev/null +++ b/docs/search/all_9.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['ibi_518',['IBI',['../class_sensor_timer.html#abc1f4e1db59f4aa0dae5793c90740a84',1,'SensorTimer']]], + ['initializevariablesforsleep_519',['initializeVariablesForSleep',['../class_sensor_timer.html#a042706c0c1ec146beb95e8f3947211fd',1,'SensorTimer']]], + ['initpulsesensorvariables_520',['initPulseSensorVariables',['../class_sensor_timer.html#a86849a9ab4dc5443cc93f96f00c29f6c',1,'SensorTimer']]], + ['instructionstxt_521',['instructionsTxt',['../mainwindow_8cpp.html#ae78f4adc40f6a5315f05fc1ab3e69ecf',1,'mainwindow.cpp']]], + ['is_5faudio_5fplaying_522',['is_audio_playing',['../class_sensor_timer.html#ab9ea2c04c2ed4e36f2983ad441fa06d7',1,'SensorTimer']]], + ['is_5fsimulation_523',['is_simulation',['../class_sensor_timer.html#ace1263828012e5e2c0011ca5ee2d4ad8',1,'SensorTimer']]], + ['its_524',['its',['../class_cpp_timer.html#a8774fb5ba9af8f276874c1234741f106',1,'CppTimer']]] +]; diff --git a/docs/search/all_a.html b/docs/search/all_a.html new file mode 100644 index 0000000..3a6cac1 --- /dev/null +++ b/docs/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_a.js b/docs/search/all_a.js new file mode 100644 index 0000000..a68f414 --- /dev/null +++ b/docs/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['json_525',['json',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a5a9fd42e7b9030c6a0a4bee923a2e416',1,'JSONCGIHandler::JSONGenerator']]], + ['json_5ffastcgi_5fweb_5fapi_2eh_526',['json_fastcgi_web_api.h',['../json__fastcgi__web__api_8h.html',1,'']]], + ['jsoncgiadccallback_527',['JSONCGIADCCallback',['../class_j_s_o_n_c_g_i_a_d_c_callback.html',1,'JSONCGIADCCallback'],['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a9b02dfb7eadb7e9c8004f90bdc474e29',1,'JSONCGIADCCallback::JSONCGIADCCallback()']]], + ['jsoncgihandler_528',['JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html',1,'JSONCGIHandler'],['../class_j_s_o_n_c_g_i_handler.html#a9bf5a96d13949d363225561ba6ac3b56',1,'JSONCGIHandler::JSONCGIHandler(GETCallback *argGetCallback, POSTCallback *argPostCallback=nullptr, const char socketpath[]="/tmp/fastcgisocket")']]], + ['jsongenerator_529',['JSONGenerator',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/all_b.html b/docs/search/all_b.html new file mode 100644 index 0000000..130deb4 --- /dev/null +++ b/docs/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_b.js b/docs/search/all_b.js new file mode 100644 index 0000000..0aefeea --- /dev/null +++ b/docs/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kill_5fthe_5fpid_530',['kill_the_pid',['../class_sensor_timer.html#a26f5ab50413256c6b9523b8cbe5f6a84',1,'SensorTimer']]] +]; diff --git a/docs/search/all_c.html b/docs/search/all_c.html new file mode 100644 index 0000000..3dd5af0 --- /dev/null +++ b/docs/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_c.js b/docs/search/all_c.js new file mode 100644 index 0000000..9e10d24 --- /dev/null +++ b/docs/search/all_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['label_531',['label',['../class_main_window.html#a89e281849b9cf7d03662402c6bc6012c',1,'MainWindow']]], + ['lastbeattime_532',['lastBeatTime',['../class_sensor_timer.html#a4eeaf71d9a5f96e322b35081cf33f6e9',1,'SensorTimer']]], + ['lasttime_533',['lastTime',['../class_sensor_timer.html#a03ed20714879814e22e5641940e1c764',1,'SensorTimer']]], + ['legenddoubleclick_534',['legendDoubleClick',['../class_main_window.html#afb15e4bd4206b7c4049ebf297f8c02bd',1,'MainWindow']]], + ['linux_535',['linux',['../moc__predefs_8h.html#aa092b0d4c1d4d4407b97024f6cb2820c',1,'moc_predefs.h']]] +]; diff --git a/docs/search/all_d.html b/docs/search/all_d.html new file mode 100644 index 0000000..af7f2f0 --- /dev/null +++ b/docs/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_d.js b/docs/search/all_d.js new file mode 100644 index 0000000..a203299 --- /dev/null +++ b/docs/search/all_d.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['m_536',['m',['../class_sensor_timer.html#ac2688bda3961332bcb0a80a63be6c0f5',1,'SensorTimer']]], + ['main_537',['main',['../mainwindowdemo_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): mainwindowdemo.cpp'],['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): main.cpp']]], + ['main_2ecpp_538',['main.cpp',['../main_8cpp.html',1,'']]], + ['mainthread_539',['mainThread',['../class_j_s_o_n_c_g_i_handler.html#aca513f708ae4dc76ba70196ff25da695',1,'JSONCGIHandler']]], + ['mainwindow_540',['MainWindow',['../class_main_window.html',1,'MainWindow'],['../class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db',1,'MainWindow::MainWindow()']]], + ['mainwindow_2ecpp_541',['mainwindow.cpp',['../mainwindow_8cpp.html',1,'']]], + ['mainwindow_2eh_542',['mainwindow.h',['../mainwindow_8h.html',1,'']]], + ['mainwindowdemo_2ecpp_543',['mainwindowdemo.cpp',['../mainwindowdemo_8cpp.html',1,'']]], + ['maybesleep_544',['maybeSleep',['../class_sensor_timer.html#a6aaa261915f03ad857544fd629607ea6',1,'SensorTimer']]], + ['menubar_545',['menuBar',['../class_main_window.html#a285395aec8fd01bec6bedcad73b86a55',1,'MainWindow']]], + ['moc_5fmainwindow_2ecpp_546',['moc_mainwindow.cpp',['../moc__mainwindow_8cpp.html',1,'']]], + ['moc_5fpredefs_2eh_547',['moc_predefs.h',['../moc__predefs_8h.html',1,'']]], + ['mocs_5fcompilation_2ecpp_548',['mocs_compilation.cpp',['../mocs__compilation_8cpp.html',1,'']]], + ['mousepress_549',['mousePress',['../class_main_window.html#a5b48e4b5e6ca0e866f09c2e7abf39468',1,'MainWindow']]], + ['mousewheel_550',['mouseWheel',['../class_main_window.html#abce189c4c57b052878c91f1f6428bba3',1,'MainWindow']]], + ['movelegend_551',['moveLegend',['../class_main_window.html#a617d177003ed61dba284913af30de1e5',1,'MainWindow']]] +]; diff --git a/docs/search/all_e.html b/docs/search/all_e.html new file mode 100644 index 0000000..e25df42 --- /dev/null +++ b/docs/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_e.js b/docs/search/all_e.js new file mode 100644 index 0000000..23b678f --- /dev/null +++ b/docs/search/all_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['nighttime_552',['nightTime',['../class_sensor_timer.html#a4d29fdf6804a4777668d957a8333f9c6',1,'SensorTimer']]], + ['nrealtimepoints_553',['nRealtimePoints',['../class_main_window.html#ac3b757adfb6eff08e50a5017d12a48df',1,'MainWindow']]] +]; diff --git a/docs/search/all_f.html b/docs/search/all_f.html new file mode 100644 index 0000000..b23da6c --- /dev/null +++ b/docs/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/all_f.js b/docs/search/all_f.js new file mode 100644 index 0000000..5c5aa3f --- /dev/null +++ b/docs/search/all_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['oneshot_554',['ONESHOT',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aa2724fa87f252403cd2c93f7437f34fd5',1,'CppTimer.h']]] +]; diff --git a/docs/search/classes_0.html b/docs/search/classes_0.html new file mode 100644 index 0000000..af8159e --- /dev/null +++ b/docs/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js new file mode 100644 index 0000000..b3edcbb --- /dev/null +++ b/docs/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cpptimer_638',['CppTimer',['../class_cpp_timer.html',1,'']]], + ['cpptimercallback_639',['CppTimerCallback',['../class_cpp_timer_callback.html',1,'']]] +]; diff --git a/docs/search/classes_1.html b/docs/search/classes_1.html new file mode 100644 index 0000000..576e916 --- /dev/null +++ b/docs/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js new file mode 100644 index 0000000..432c674 --- /dev/null +++ b/docs/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['getcallback_640',['GETCallback',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/classes_2.html b/docs/search/classes_2.html new file mode 100644 index 0000000..956405e --- /dev/null +++ b/docs/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js new file mode 100644 index 0000000..0f3f757 --- /dev/null +++ b/docs/search/classes_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['jsoncgiadccallback_641',['JSONCGIADCCallback',['../class_j_s_o_n_c_g_i_a_d_c_callback.html',1,'']]], + ['jsoncgihandler_642',['JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html',1,'']]], + ['jsongenerator_643',['JSONGenerator',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/classes_3.html b/docs/search/classes_3.html new file mode 100644 index 0000000..d33343b --- /dev/null +++ b/docs/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_3.js b/docs/search/classes_3.js new file mode 100644 index 0000000..dc807a1 --- /dev/null +++ b/docs/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mainwindow_644',['MainWindow',['../class_main_window.html',1,'']]] +]; diff --git a/docs/search/classes_4.html b/docs/search/classes_4.html new file mode 100644 index 0000000..8430b07 --- /dev/null +++ b/docs/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_4.js b/docs/search/classes_4.js new file mode 100644 index 0000000..b8425de --- /dev/null +++ b/docs/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['postcallback_645',['POSTCallback',['../class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/classes_5.html b/docs/search/classes_5.html new file mode 100644 index 0000000..c2f1b76 --- /dev/null +++ b/docs/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js new file mode 100644 index 0000000..ede3598 --- /dev/null +++ b/docs/search/classes_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['qmainwindow_646',['QMainWindow',['../class_q_main_window.html',1,'']]], + ['qt_5fmeta_5fstringdata_5fmainwindow_5ft_647',['qt_meta_stringdata_MainWindow_t',['../structqt__meta__stringdata___main_window__t.html',1,'']]] +]; diff --git a/docs/search/classes_6.html b/docs/search/classes_6.html new file mode 100644 index 0000000..e39847c --- /dev/null +++ b/docs/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js new file mode 100644 index 0000000..a232a61 --- /dev/null +++ b/docs/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['runnable_648',['Runnable',['../class_cpp_timer_callback_1_1_runnable.html',1,'CppTimerCallback']]] +]; diff --git a/docs/search/classes_7.html b/docs/search/classes_7.html new file mode 100644 index 0000000..a2c4d1a --- /dev/null +++ b/docs/search/classes_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/classes_7.js b/docs/search/classes_7.js new file mode 100644 index 0000000..fa80e00 --- /dev/null +++ b/docs/search/classes_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['sensewindow_649',['SenseWindow',['../class_sense_window.html',1,'']]], + ['sensorcallback_650',['SensorCallback',['../class_sensor_callback.html',1,'']]], + ['sensorfastcgicallback_651',['SENSORfastcgicallback',['../class_s_e_n_s_o_rfastcgicallback.html',1,'']]], + ['sensortimer_652',['SensorTimer',['../class_sensor_timer.html',1,'']]] +]; diff --git a/docs/search/close.svg b/docs/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/docs/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/search/defines_0.html b/docs/search/defines_0.html new file mode 100644 index 0000000..15cc3de --- /dev/null +++ b/docs/search/defines_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_0.js b/docs/search/defines_0.js new file mode 100644 index 0000000..b63400c --- /dev/null +++ b/docs/search/defines_0.js @@ -0,0 +1,468 @@ +var searchData= +[ + ['_5f_5faccum_5fepsilon_5f_5f_803',['__ACCUM_EPSILON__',['../moc__predefs_8h.html#a0e3615b841cb0fd1049bb0a2aaac2096',1,'moc_predefs.h']]], + ['_5f_5faccum_5ffbit_5f_5f_804',['__ACCUM_FBIT__',['../moc__predefs_8h.html#a5328bc8cdad22da7ce2eb594194a16a7',1,'moc_predefs.h']]], + ['_5f_5faccum_5fibit_5f_5f_805',['__ACCUM_IBIT__',['../moc__predefs_8h.html#a460a4ac8f082aeb8dfbd842efd5776a6',1,'moc_predefs.h']]], + ['_5f_5faccum_5fmax_5f_5f_806',['__ACCUM_MAX__',['../moc__predefs_8h.html#a5a17054b70390cdd56c412f1fa9bcce5',1,'moc_predefs.h']]], + ['_5f_5faccum_5fmin_5f_5f_807',['__ACCUM_MIN__',['../moc__predefs_8h.html#a9b9593a0ca3e3d1a3f7792f287451ead',1,'moc_predefs.h']]], + ['_5f_5fapcs_5f32_5f_5f_808',['__APCS_32__',['../moc__predefs_8h.html#af291fd206f4078237248a3d15ce8717c',1,'moc_predefs.h']]], + ['_5f_5farm_5f32bit_5fstate_809',['__ARM_32BIT_STATE',['../moc__predefs_8h.html#aff9ef90200309ec00ffac764f93d3f01',1,'moc_predefs.h']]], + ['_5f_5farm_5f_5f_810',['__arm__',['../moc__predefs_8h.html#a5144286cd63b294154788dfb0730d9cf',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_811',['__ARM_ARCH',['../moc__predefs_8h.html#ad62096dceb9fc55727c82df7ac9fc83f',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5f6_5f_5f_812',['__ARM_ARCH_6__',['../moc__predefs_8h.html#acc93c253f739f4447ca16ebf13b29959',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5fisa_5farm_813',['__ARM_ARCH_ISA_ARM',['../moc__predefs_8h.html#a036c254077652f499bdf3e870c83320c',1,'moc_predefs.h']]], + ['_5f_5farm_5farch_5fisa_5fthumb_814',['__ARM_ARCH_ISA_THUMB',['../moc__predefs_8h.html#abbbf9feda211d9f5bd5269cd17fc9355',1,'moc_predefs.h']]], + ['_5f_5farm_5feabi_5f_5f_815',['__ARM_EABI__',['../moc__predefs_8h.html#aa7682d4c3e5ed9fca81cf37aee3ef19a',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fclz_816',['__ARM_FEATURE_CLZ',['../moc__predefs_8h.html#a98708440262c0e7482dea555d0f97289',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fcoproc_817',['__ARM_FEATURE_COPROC',['../moc__predefs_8h.html#ab7406b58b90e06608971dc2450931858',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fdsp_818',['__ARM_FEATURE_DSP',['../moc__predefs_8h.html#a3b68223a25c19aec8b02a4ca73deedbe',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fldrex_819',['__ARM_FEATURE_LDREX',['../moc__predefs_8h.html#a429021b24d3b356d0f5cbfc44588966c',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fqbit_820',['__ARM_FEATURE_QBIT',['../moc__predefs_8h.html#aa4b8e94710cdb10a1bce40ca28f4f7db',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fsat_821',['__ARM_FEATURE_SAT',['../moc__predefs_8h.html#a8dc0e461cdc2e9d30acc1b94f1c18a5f',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5fsimd32_822',['__ARM_FEATURE_SIMD32',['../moc__predefs_8h.html#abfa247cfbd725226b9239a8eb186101a',1,'moc_predefs.h']]], + ['_5f_5farm_5ffeature_5funaligned_823',['__ARM_FEATURE_UNALIGNED',['../moc__predefs_8h.html#a4d78dd41059205e8fd1a29af6dda266c',1,'moc_predefs.h']]], + ['_5f_5farm_5ffp_824',['__ARM_FP',['../moc__predefs_8h.html#a771dcf9433ec3eae99c1124058d93e88',1,'moc_predefs.h']]], + ['_5f_5farm_5fpcs_5fvfp_825',['__ARM_PCS_VFP',['../moc__predefs_8h.html#ab2a758783977e00923fcc60926735ee2',1,'moc_predefs.h']]], + ['_5f_5farm_5fsizeof_5fminimal_5fenum_826',['__ARM_SIZEOF_MINIMAL_ENUM',['../moc__predefs_8h.html#a631b640abf43029deabba286d4e0dc41',1,'moc_predefs.h']]], + ['_5f_5farm_5fsizeof_5fwchar_5ft_827',['__ARM_SIZEOF_WCHAR_T',['../moc__predefs_8h.html#a848818a4bc6cb18c25922ea8e7485cb7',1,'moc_predefs.h']]], + ['_5f_5farmel_5f_5f_828',['__ARMEL__',['../moc__predefs_8h.html#a624566488a5633fb7518ebda59505eee',1,'moc_predefs.h']]], + ['_5f_5fatomic_5facq_5frel_829',['__ATOMIC_ACQ_REL',['../moc__predefs_8h.html#acdfdd67de0664b690c42bba327cf7da1',1,'moc_predefs.h']]], + ['_5f_5fatomic_5facquire_830',['__ATOMIC_ACQUIRE',['../moc__predefs_8h.html#a72e3c30a05bd2bb63d76550e451a438e',1,'moc_predefs.h']]], + ['_5f_5fatomic_5fconsume_831',['__ATOMIC_CONSUME',['../moc__predefs_8h.html#a762c3361bcfeccc1f2742cc94b1ab65b',1,'moc_predefs.h']]], + ['_5f_5fatomic_5frelaxed_832',['__ATOMIC_RELAXED',['../moc__predefs_8h.html#a8faf1f097f05558889df4c44d052d35e',1,'moc_predefs.h']]], + ['_5f_5fatomic_5frelease_833',['__ATOMIC_RELEASE',['../moc__predefs_8h.html#a5822cf04414d99e0ee81e8bbe182226b',1,'moc_predefs.h']]], + ['_5f_5fatomic_5fseq_5fcst_834',['__ATOMIC_SEQ_CST',['../moc__predefs_8h.html#a0609dc2b702d5980de44c01bd373136a',1,'moc_predefs.h']]], + ['_5f_5fbiggest_5falignment_5f_5f_835',['__BIGGEST_ALIGNMENT__',['../moc__predefs_8h.html#a2c25ec0f0ae74f9d8a7c373288a28dd1',1,'moc_predefs.h']]], + ['_5f_5fbyte_5forder_5f_5f_836',['__BYTE_ORDER__',['../moc__predefs_8h.html#a02481ce2087724d8a2fb2322dbc549da',1,'moc_predefs.h']]], + ['_5f_5fchar16_5ftype_5f_5f_837',['__CHAR16_TYPE__',['../moc__predefs_8h.html#a95b91b7560e936fdc4ce441d38b94b3e',1,'moc_predefs.h']]], + ['_5f_5fchar32_5ftype_5f_5f_838',['__CHAR32_TYPE__',['../moc__predefs_8h.html#acd1e46c682808f15749b16266ade0c27',1,'moc_predefs.h']]], + ['_5f_5fchar_5fbit_5f_5f_839',['__CHAR_BIT__',['../moc__predefs_8h.html#ab35e271dce6e7e2190d60b5905375419',1,'moc_predefs.h']]], + ['_5f_5fchar_5funsigned_5f_5f_840',['__CHAR_UNSIGNED__',['../moc__predefs_8h.html#a5324d68af227292ae61ae6e5fab5ef76',1,'moc_predefs.h']]], + ['_5f_5fcplusplus_841',['__cplusplus',['../moc__predefs_8h.html#a1b391bc7ed92f79666c4a5d840aa1edd',1,'moc_predefs.h']]], + ['_5f_5fcpp_5faggregate_5fnsdmi_842',['__cpp_aggregate_nsdmi',['../moc__predefs_8h.html#ab9bf5af329c2a3a3dc5874289dda6f82',1,'moc_predefs.h']]], + ['_5f_5fcpp_5falias_5ftemplates_843',['__cpp_alias_templates',['../moc__predefs_8h.html#a771caa69aba7d7732ba184f9be109838',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fattributes_844',['__cpp_attributes',['../moc__predefs_8h.html#ac47e77d27e7d30f01cde452a9cd218ed',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fbinary_5fliterals_845',['__cpp_binary_literals',['../moc__predefs_8h.html#ade9dc15e022182eb0a62a0fd17d18b75',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fconstexpr_846',['__cpp_constexpr',['../moc__predefs_8h.html#ae12b3591c41f3b52c31cd8b16773d5ae',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdecltype_847',['__cpp_decltype',['../moc__predefs_8h.html#a5bc62cc317387328499b3ea753c5c4a3',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdecltype_5fauto_848',['__cpp_decltype_auto',['../moc__predefs_8h.html#a5922e567fc671cc2985da95b33544c16',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdelegating_5fconstructors_849',['__cpp_delegating_constructors',['../moc__predefs_8h.html#a9e077def8c310cdb5fef37666a92c5a5',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fdigit_5fseparators_850',['__cpp_digit_separators',['../moc__predefs_8h.html#a3dda013c532cea311e9a22bf90dcec86',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fexceptions_851',['__cpp_exceptions',['../moc__predefs_8h.html#a42bcb9278fa2b4721fe04fc0627055ce',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fgeneric_5flambdas_852',['__cpp_generic_lambdas',['../moc__predefs_8h.html#a57e1156511d5ca1e45a5505f24518c87',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fhex_5ffloat_853',['__cpp_hex_float',['../moc__predefs_8h.html#a0958474253d23ca2c87e817c16f74eda',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finheriting_5fconstructors_854',['__cpp_inheriting_constructors',['../moc__predefs_8h.html#a42c04530cde3529000b65eab84d6ef6b',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finit_5fcaptures_855',['__cpp_init_captures',['../moc__predefs_8h.html#a5162baf69b085321c18fe6f0bdb537e9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5finitializer_5flists_856',['__cpp_initializer_lists',['../moc__predefs_8h.html#a2b46de6050feed05210bef65feef9c42',1,'moc_predefs.h']]], + ['_5f_5fcpp_5flambdas_857',['__cpp_lambdas',['../moc__predefs_8h.html#a5eeda02831b3d7147a1a90f2d52a6228',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fnsdmi_858',['__cpp_nsdmi',['../moc__predefs_8h.html#adeecd09fc579ff3f8222cf8ae581b936',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frange_5fbased_5ffor_859',['__cpp_range_based_for',['../moc__predefs_8h.html#a84ca4631d4b617a6dcb94faa40235701',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fraw_5fstrings_860',['__cpp_raw_strings',['../moc__predefs_8h.html#a7377e1bc6bd2fd9bcfe98283ab0e9037',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fref_5fqualifiers_861',['__cpp_ref_qualifiers',['../moc__predefs_8h.html#af73192acc2dd2095bd3524ca5ee9dca9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5freturn_5ftype_5fdeduction_862',['__cpp_return_type_deduction',['../moc__predefs_8h.html#ac634ecad75dc34e67d161df1d694d892',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frtti_863',['__cpp_rtti',['../moc__predefs_8h.html#ab53ade321286145b92622c3a79fc168f',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fruntime_5farrays_864',['__cpp_runtime_arrays',['../moc__predefs_8h.html#ac2dfcd39d29c1e34de6421b15b2cfde9',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frvalue_5freference_865',['__cpp_rvalue_reference',['../moc__predefs_8h.html#a6e4065bb57fe77e1d8635f8108bf3c64',1,'moc_predefs.h']]], + ['_5f_5fcpp_5frvalue_5freferences_866',['__cpp_rvalue_references',['../moc__predefs_8h.html#acfffb302850fa081bd63c30573077004',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fsized_5fdeallocation_867',['__cpp_sized_deallocation',['../moc__predefs_8h.html#a38782886ef0f9d68b695bcec1f396f38',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fstatic_5fassert_868',['__cpp_static_assert',['../moc__predefs_8h.html#a60c56e472a1144b03053a2c7a2abb7fb',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fthreadsafe_5fstatic_5finit_869',['__cpp_threadsafe_static_init',['../moc__predefs_8h.html#aaa322b38474911c60e45134194bd6e8f',1,'moc_predefs.h']]], + ['_5f_5fcpp_5funicode_5fcharacters_870',['__cpp_unicode_characters',['../moc__predefs_8h.html#a7cb6a2aeb6e528ac59bedb98ebeac198',1,'moc_predefs.h']]], + ['_5f_5fcpp_5funicode_5fliterals_871',['__cpp_unicode_literals',['../moc__predefs_8h.html#af550aeee74ffd7428490fe73f1023076',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fuser_5fdefined_5fliterals_872',['__cpp_user_defined_literals',['../moc__predefs_8h.html#a05f3b9f6f2309a16af9d6fd939d97493',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fvariable_5ftemplates_873',['__cpp_variable_templates',['../moc__predefs_8h.html#a5f5ce266e768d95b9fd04856e5826aff',1,'moc_predefs.h']]], + ['_5f_5fcpp_5fvariadic_5ftemplates_874',['__cpp_variadic_templates',['../moc__predefs_8h.html#a559dd2b0792fc2b0b30ba1dd66ca7cdc',1,'moc_predefs.h']]], + ['_5f_5fda_5ffbit_5f_5f_875',['__DA_FBIT__',['../moc__predefs_8h.html#a63a7f12eb75939fdf2701f1a5f5af754',1,'moc_predefs.h']]], + ['_5f_5fda_5fibit_5f_5f_876',['__DA_IBIT__',['../moc__predefs_8h.html#a002117cb1926b8d6e19255b983101d67',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdecimal_5fdig_5f_5f_877',['__DBL_DECIMAL_DIG__',['../moc__predefs_8h.html#a6b5dca178c4ffe879cd624f9b17b9bd1',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdenorm_5fmin_5f_5f_878',['__DBL_DENORM_MIN__',['../moc__predefs_8h.html#aca2a716d3e84ccffe000390bb2e2fb38',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fdig_5f_5f_879',['__DBL_DIG__',['../moc__predefs_8h.html#a61969667ef3b668024a20df9bc34c991',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fepsilon_5f_5f_880',['__DBL_EPSILON__',['../moc__predefs_8h.html#a54983bc256dc296a42fe88b9be24f268',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5fdenorm_5f_5f_881',['__DBL_HAS_DENORM__',['../moc__predefs_8h.html#ace59605d6645350a7c5cced76ffb27fa',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5finfinity_5f_5f_882',['__DBL_HAS_INFINITY__',['../moc__predefs_8h.html#a3dd03066dbb351dfa51353c80a7902a2',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fhas_5fquiet_5fnan_5f_5f_883',['__DBL_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a5e816b71154141be2784accabcdc0ead',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmant_5fdig_5f_5f_884',['__DBL_MANT_DIG__',['../moc__predefs_8h.html#ae8f0035094061d550323c738b8d67601',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5f10_5fexp_5f_5f_885',['__DBL_MAX_10_EXP__',['../moc__predefs_8h.html#a280f0a9058cc03c2dac890a19881b1fb',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5f_5f_886',['__DBL_MAX__',['../moc__predefs_8h.html#a711d7b7f27671b10b11a74c37f653ad7',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmax_5fexp_5f_5f_887',['__DBL_MAX_EXP__',['../moc__predefs_8h.html#a9a8a7cd9484baf4b72ab15682745d119',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5f10_5fexp_5f_5f_888',['__DBL_MIN_10_EXP__',['../moc__predefs_8h.html#a1abd7cf346a460459d7fe1a9d4b5dde9',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5f_5f_889',['__DBL_MIN__',['../moc__predefs_8h.html#a3b29a64a7b1529c08f87d256d20aade1',1,'moc_predefs.h']]], + ['_5f_5fdbl_5fmin_5fexp_5f_5f_890',['__DBL_MIN_EXP__',['../moc__predefs_8h.html#a63d6f5d1c3371192fe03b3fb06e82400',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fepsilon_5f_5f_891',['__DEC128_EPSILON__',['../moc__predefs_8h.html#abd2230e0e187a5bae549a0ba786b311b',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmant_5fdig_5f_5f_892',['__DEC128_MANT_DIG__',['../moc__predefs_8h.html#adeff56b51aead6443852cacac294d464',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmax_5f_5f_893',['__DEC128_MAX__',['../moc__predefs_8h.html#aaab7817ee2e4bb88b5178e101e7ab2a6',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmax_5fexp_5f_5f_894',['__DEC128_MAX_EXP__',['../moc__predefs_8h.html#aab1edcef0b79684e5d2f12a2696e260f',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmin_5f_5f_895',['__DEC128_MIN__',['../moc__predefs_8h.html#afa4fe1921202e3770143345532136860',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fmin_5fexp_5f_5f_896',['__DEC128_MIN_EXP__',['../moc__predefs_8h.html#a748143fe17201c420b868b8f30c57d59',1,'moc_predefs.h']]], + ['_5f_5fdec128_5fsubnormal_5fmin_5f_5f_897',['__DEC128_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a63678ee519e34f99b61f3aeb5ff2cd75',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fepsilon_5f_5f_898',['__DEC32_EPSILON__',['../moc__predefs_8h.html#a13526b223391d4982c4c172c29bfdc1e',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmant_5fdig_5f_5f_899',['__DEC32_MANT_DIG__',['../moc__predefs_8h.html#a144dfa169f604d99b46658c15338338e',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmax_5f_5f_900',['__DEC32_MAX__',['../moc__predefs_8h.html#ad3165a97a460b88ccdea80967918f250',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmax_5fexp_5f_5f_901',['__DEC32_MAX_EXP__',['../moc__predefs_8h.html#aabb9dbf55546af708a50831a7c48d9b9',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmin_5f_5f_902',['__DEC32_MIN__',['../moc__predefs_8h.html#a1f993b902b5b1dba7d5b043d0abc347b',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fmin_5fexp_5f_5f_903',['__DEC32_MIN_EXP__',['../moc__predefs_8h.html#a79e289c54a8c9851b2b118d442bbc26c',1,'moc_predefs.h']]], + ['_5f_5fdec32_5fsubnormal_5fmin_5f_5f_904',['__DEC32_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a1b8832b164a1e36ed6756895a71c7e54',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fepsilon_5f_5f_905',['__DEC64_EPSILON__',['../moc__predefs_8h.html#a189bb13aac101f45c8ac7f6e52daccfa',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmant_5fdig_5f_5f_906',['__DEC64_MANT_DIG__',['../moc__predefs_8h.html#a61c258ffad919b338b83e1401265f671',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmax_5f_5f_907',['__DEC64_MAX__',['../moc__predefs_8h.html#a06608084919123d90621d715daf1f456',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmax_5fexp_5f_5f_908',['__DEC64_MAX_EXP__',['../moc__predefs_8h.html#a3d4fe0f0b2e3ae12569d4a663dee8a0c',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmin_5f_5f_909',['__DEC64_MIN__',['../moc__predefs_8h.html#abd66733cff0ce1656bb7e744aa151bea',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fmin_5fexp_5f_5f_910',['__DEC64_MIN_EXP__',['../moc__predefs_8h.html#ade7aebdae6e8389a450aac653544c33f',1,'moc_predefs.h']]], + ['_5f_5fdec64_5fsubnormal_5fmin_5f_5f_911',['__DEC64_SUBNORMAL_MIN__',['../moc__predefs_8h.html#a6d3e36bb5d7e7ce3eda28fb174e404c6',1,'moc_predefs.h']]], + ['_5f_5fdec_5feval_5fmethod_5f_5f_912',['__DEC_EVAL_METHOD__',['../moc__predefs_8h.html#a53186c3d05006947fb8bd09bcdb0d60c',1,'moc_predefs.h']]], + ['_5f_5fdecimal_5fdig_5f_5f_913',['__DECIMAL_DIG__',['../moc__predefs_8h.html#aeb56455e98000942147dfd63ec1c2fa6',1,'moc_predefs.h']]], + ['_5f_5fdeprecated_914',['__DEPRECATED',['../moc__predefs_8h.html#aa806e8f7ce2a8db3bf676735fca2ac51',1,'moc_predefs.h']]], + ['_5f_5fdq_5ffbit_5f_5f_915',['__DQ_FBIT__',['../moc__predefs_8h.html#a6a00585a981c3e3be5d3794afdf2bc67',1,'moc_predefs.h']]], + ['_5f_5fdq_5fibit_5f_5f_916',['__DQ_IBIT__',['../moc__predefs_8h.html#aec70387710b2a1fbad3b8a9be7dcfeb4',1,'moc_predefs.h']]], + ['_5f_5felf_5f_5f_917',['__ELF__',['../moc__predefs_8h.html#a4012402899bd689646e39a043ccb6047',1,'moc_predefs.h']]], + ['_5f_5fexceptions_918',['__EXCEPTIONS',['../moc__predefs_8h.html#a260281f3f3cd1c287fce0d5bb737febb',1,'moc_predefs.h']]], + ['_5f_5ffinite_5fmath_5fonly_5f_5f_919',['__FINITE_MATH_ONLY__',['../moc__predefs_8h.html#a611d40c375b1972669292fd27bc4afb7',1,'moc_predefs.h']]], + ['_5f_5ffloat_5fword_5forder_5f_5f_920',['__FLOAT_WORD_ORDER__',['../moc__predefs_8h.html#a2db444477ad8f9aa0759310d46694339',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdecimal_5fdig_5f_5f_921',['__FLT32_DECIMAL_DIG__',['../moc__predefs_8h.html#a24d259c69bea7fb471668df7190c71c6',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdenorm_5fmin_5f_5f_922',['__FLT32_DENORM_MIN__',['../moc__predefs_8h.html#ae9559701fd39a0fbd0dc1a30a4cda0dd',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fdig_5f_5f_923',['__FLT32_DIG__',['../moc__predefs_8h.html#aa021702c3b7627dccaa51c33a2c5a8d1',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fepsilon_5f_5f_924',['__FLT32_EPSILON__',['../moc__predefs_8h.html#af9e0be24f061961e062774ce018a8d3a',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5fdenorm_5f_5f_925',['__FLT32_HAS_DENORM__',['../moc__predefs_8h.html#ac1175c9478c586edee06d1f788a03b83',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5finfinity_5f_5f_926',['__FLT32_HAS_INFINITY__',['../moc__predefs_8h.html#a170219070ed7bdfea9f88121c9abbaea',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fhas_5fquiet_5fnan_5f_5f_927',['__FLT32_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a22791bdfea523b20c18eff848609fa9d',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmant_5fdig_5f_5f_928',['__FLT32_MANT_DIG__',['../moc__predefs_8h.html#a4d4e419b93a42fbd34e0f4ae3640c4a9',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5f10_5fexp_5f_5f_929',['__FLT32_MAX_10_EXP__',['../moc__predefs_8h.html#a935ebe200313334107dd681186ee586e',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5f_5f_930',['__FLT32_MAX__',['../moc__predefs_8h.html#a8d44614ef6d7f2bbbd9224d416d867b9',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmax_5fexp_5f_5f_931',['__FLT32_MAX_EXP__',['../moc__predefs_8h.html#a731bd57ce12918b6118b6a3e37c20d8e',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5f10_5fexp_5f_5f_932',['__FLT32_MIN_10_EXP__',['../moc__predefs_8h.html#a1f4c572c6b5b4fe3e7c81bc48272e56b',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5f_5f_933',['__FLT32_MIN__',['../moc__predefs_8h.html#a5ed9c6693683a4d844cb05e49cef8337',1,'moc_predefs.h']]], + ['_5f_5fflt32_5fmin_5fexp_5f_5f_934',['__FLT32_MIN_EXP__',['../moc__predefs_8h.html#a300c6970bb64b04e45a9c2ed139ecce8',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdecimal_5fdig_5f_5f_935',['__FLT32X_DECIMAL_DIG__',['../moc__predefs_8h.html#a00a9f6ceb42fbe18b789b4c1949c49f2',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdenorm_5fmin_5f_5f_936',['__FLT32X_DENORM_MIN__',['../moc__predefs_8h.html#ab557192dd4e486a262d4495e29fe356d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fdig_5f_5f_937',['__FLT32X_DIG__',['../moc__predefs_8h.html#a9875b8f50cd7d288819635ebf494cf3d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fepsilon_5f_5f_938',['__FLT32X_EPSILON__',['../moc__predefs_8h.html#a0d5ee390eabd4483e834007b5824373b',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5fdenorm_5f_5f_939',['__FLT32X_HAS_DENORM__',['../moc__predefs_8h.html#a97163404b3b71f857e35be74607f88f7',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5finfinity_5f_5f_940',['__FLT32X_HAS_INFINITY__',['../moc__predefs_8h.html#a8f246ad899706f78b8dfcd33daff7b07',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fhas_5fquiet_5fnan_5f_5f_941',['__FLT32X_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a158b9e85a96f0cf9698a6202071e8061',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmant_5fdig_5f_5f_942',['__FLT32X_MANT_DIG__',['../moc__predefs_8h.html#a63419ad12ec3f4e18746a0a64fcfc136',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5f10_5fexp_5f_5f_943',['__FLT32X_MAX_10_EXP__',['../moc__predefs_8h.html#ae540090d44c675c8d75037333a21ae3d',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5f_5f_944',['__FLT32X_MAX__',['../moc__predefs_8h.html#aa2fbfcb03f8deb89dc6122923d47bc76',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmax_5fexp_5f_5f_945',['__FLT32X_MAX_EXP__',['../moc__predefs_8h.html#a6605c8368985e3b1885a84d1d44ff798',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5f10_5fexp_5f_5f_946',['__FLT32X_MIN_10_EXP__',['../moc__predefs_8h.html#a29e106a0e6600792357f526e30ca98b1',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5f_5f_947',['__FLT32X_MIN__',['../moc__predefs_8h.html#a3b9ca6d1bbc15a54595e781e4f24b045',1,'moc_predefs.h']]], + ['_5f_5fflt32x_5fmin_5fexp_5f_5f_948',['__FLT32X_MIN_EXP__',['../moc__predefs_8h.html#a87baa4e50d6b00b4be6c3173a4280f2f',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdecimal_5fdig_5f_5f_949',['__FLT64_DECIMAL_DIG__',['../moc__predefs_8h.html#a8ef55ba782e9d01cb22911f97168d06a',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdenorm_5fmin_5f_5f_950',['__FLT64_DENORM_MIN__',['../moc__predefs_8h.html#a9b18cde45e680760b3a997b0b1884408',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fdig_5f_5f_951',['__FLT64_DIG__',['../moc__predefs_8h.html#a6a7f83363cddf6ce9c8548224f012180',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fepsilon_5f_5f_952',['__FLT64_EPSILON__',['../moc__predefs_8h.html#ad293ff29c0ac9a6b4187d366d6de3772',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5fdenorm_5f_5f_953',['__FLT64_HAS_DENORM__',['../moc__predefs_8h.html#a9e0564ada348dff0b4436b156412f430',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5finfinity_5f_5f_954',['__FLT64_HAS_INFINITY__',['../moc__predefs_8h.html#ac67712f8d687485a4bd1c0b0e2741771',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fhas_5fquiet_5fnan_5f_5f_955',['__FLT64_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a868c5b1405b26bc9592fa9f3248e99aa',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmant_5fdig_5f_5f_956',['__FLT64_MANT_DIG__',['../moc__predefs_8h.html#a6c163c6e58545740cbae55ad8ffa027f',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5f10_5fexp_5f_5f_957',['__FLT64_MAX_10_EXP__',['../moc__predefs_8h.html#aeb14f5cf7cca3a01c2f6a0015e981eb1',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5f_5f_958',['__FLT64_MAX__',['../moc__predefs_8h.html#a01d0061df498c537ecd56d53f1130082',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmax_5fexp_5f_5f_959',['__FLT64_MAX_EXP__',['../moc__predefs_8h.html#ad0c5a78bb2815c2ca02963343d1751a8',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5f10_5fexp_5f_5f_960',['__FLT64_MIN_10_EXP__',['../moc__predefs_8h.html#a7a06acb3945879bcc985dde7bf0bcbdc',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5f_5f_961',['__FLT64_MIN__',['../moc__predefs_8h.html#a56e81e5fec09084ed0e8ed0cccddf3a0',1,'moc_predefs.h']]], + ['_5f_5fflt64_5fmin_5fexp_5f_5f_962',['__FLT64_MIN_EXP__',['../moc__predefs_8h.html#aceda5e62622b9783846d26610d038f71',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdecimal_5fdig_5f_5f_963',['__FLT_DECIMAL_DIG__',['../moc__predefs_8h.html#ad666d9aaf02b587abdeffff5ce3545e2',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdenorm_5fmin_5f_5f_964',['__FLT_DENORM_MIN__',['../moc__predefs_8h.html#a20b8951342fd8b8af91e2bc9b34eb929',1,'moc_predefs.h']]], + ['_5f_5fflt_5fdig_5f_5f_965',['__FLT_DIG__',['../moc__predefs_8h.html#a03e66bc6e427f0c968a7a0daec280729',1,'moc_predefs.h']]], + ['_5f_5fflt_5fepsilon_5f_5f_966',['__FLT_EPSILON__',['../moc__predefs_8h.html#a7ac5a3b1dc00b508a391f8c6c37e2165',1,'moc_predefs.h']]], + ['_5f_5fflt_5feval_5fmethod_5f_5f_967',['__FLT_EVAL_METHOD__',['../moc__predefs_8h.html#a737828904768e0ab49acbdb3371d8445',1,'moc_predefs.h']]], + ['_5f_5fflt_5feval_5fmethod_5fts_5f18661_5f3_5f_5f_968',['__FLT_EVAL_METHOD_TS_18661_3__',['../moc__predefs_8h.html#af635b5d104ef9858a68ab2c56677fd2d',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5fdenorm_5f_5f_969',['__FLT_HAS_DENORM__',['../moc__predefs_8h.html#a82a2c3ff271d1685b450975ffa68544a',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5finfinity_5f_5f_970',['__FLT_HAS_INFINITY__',['../moc__predefs_8h.html#a658d9ba84d429e748ce5f1905732c962',1,'moc_predefs.h']]], + ['_5f_5fflt_5fhas_5fquiet_5fnan_5f_5f_971',['__FLT_HAS_QUIET_NAN__',['../moc__predefs_8h.html#acb3a3a30075a9589b520df3b329df29e',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmant_5fdig_5f_5f_972',['__FLT_MANT_DIG__',['../moc__predefs_8h.html#aeacc238625932b11e6cda685357dd678',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5f10_5fexp_5f_5f_973',['__FLT_MAX_10_EXP__',['../moc__predefs_8h.html#a3641a65e329884d817848ba5d6163f07',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5f_5f_974',['__FLT_MAX__',['../moc__predefs_8h.html#aa26975016847959a13829cb568b126b3',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmax_5fexp_5f_5f_975',['__FLT_MAX_EXP__',['../moc__predefs_8h.html#abd1effb8f681ce210223aceb08d8ed33',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5f10_5fexp_5f_5f_976',['__FLT_MIN_10_EXP__',['../moc__predefs_8h.html#a442f6e00169e1726f7b9a05eb3c617d8',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5f_5f_977',['__FLT_MIN__',['../moc__predefs_8h.html#a6e947aa0a2cb4808d560339fef0d4793',1,'moc_predefs.h']]], + ['_5f_5fflt_5fmin_5fexp_5f_5f_978',['__FLT_MIN_EXP__',['../moc__predefs_8h.html#acd7b9de9b6bd817027cb37ec6c82cba9',1,'moc_predefs.h']]], + ['_5f_5fflt_5fradix_5f_5f_979',['__FLT_RADIX__',['../moc__predefs_8h.html#ae9ed936cc90c092e15526478bdbbefe0',1,'moc_predefs.h']]], + ['_5f_5ffract_5fepsilon_5f_5f_980',['__FRACT_EPSILON__',['../moc__predefs_8h.html#a4e81652d864b9ad956e02419453eafae',1,'moc_predefs.h']]], + ['_5f_5ffract_5ffbit_5f_5f_981',['__FRACT_FBIT__',['../moc__predefs_8h.html#af9c44b8aaa84323a8f918a5e34224b77',1,'moc_predefs.h']]], + ['_5f_5ffract_5fibit_5f_5f_982',['__FRACT_IBIT__',['../moc__predefs_8h.html#a608f71df249414d1993b7e4a0a706175',1,'moc_predefs.h']]], + ['_5f_5ffract_5fmax_5f_5f_983',['__FRACT_MAX__',['../moc__predefs_8h.html#aebbf4016ca45751c7f0777bba3d3caf9',1,'moc_predefs.h']]], + ['_5f_5ffract_5fmin_5f_5f_984',['__FRACT_MIN__',['../moc__predefs_8h.html#a9d8856f35bfb1b05fc386e1a964b491e',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fbool_5flock_5ffree_985',['__GCC_ATOMIC_BOOL_LOCK_FREE',['../moc__predefs_8h.html#a9685ff8e617f3c5892c2a6fe3484f3b7',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar16_5ft_5flock_5ffree_986',['__GCC_ATOMIC_CHAR16_T_LOCK_FREE',['../moc__predefs_8h.html#a7f18358ae5a65523140cb561bbeaa3a9',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar32_5ft_5flock_5ffree_987',['__GCC_ATOMIC_CHAR32_T_LOCK_FREE',['../moc__predefs_8h.html#a98e298953067135caf4bc0b8e8e7cd01',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fchar_5flock_5ffree_988',['__GCC_ATOMIC_CHAR_LOCK_FREE',['../moc__predefs_8h.html#a403ff8d656461ff5a083fb47f73c7da3',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fint_5flock_5ffree_989',['__GCC_ATOMIC_INT_LOCK_FREE',['../moc__predefs_8h.html#ab6ba7de2838beb20b1eaca71c062c8e2',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fllong_5flock_5ffree_990',['__GCC_ATOMIC_LLONG_LOCK_FREE',['../moc__predefs_8h.html#afb3458ec122d5fb5304b68bc48184e4e',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5flong_5flock_5ffree_991',['__GCC_ATOMIC_LONG_LOCK_FREE',['../moc__predefs_8h.html#af6547beba0a34ed6bd6453f1220a97ca',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fpointer_5flock_5ffree_992',['__GCC_ATOMIC_POINTER_LOCK_FREE',['../moc__predefs_8h.html#aa808bc3159395526ac0c07d36b87dec1',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fshort_5flock_5ffree_993',['__GCC_ATOMIC_SHORT_LOCK_FREE',['../moc__predefs_8h.html#a889943b266851fe7e9cdac86795507aa',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5ftest_5fand_5fset_5ftrueval_994',['__GCC_ATOMIC_TEST_AND_SET_TRUEVAL',['../moc__predefs_8h.html#a035c056d72e677daa49cc2c7dbeed083',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fatomic_5fwchar_5ft_5flock_5ffree_995',['__GCC_ATOMIC_WCHAR_T_LOCK_FREE',['../moc__predefs_8h.html#a775d1a831fa88d8c38c76d31947a8ebf',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fhave_5fsync_5fcompare_5fand_5fswap_5f4_996',['__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4',['../moc__predefs_8h.html#a6310789290c9c5717826b56443ce69ec',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fiec_5f559_997',['__GCC_IEC_559',['../moc__predefs_8h.html#a0a3bd26d0b040f0781a238e4aedd3dbe',1,'moc_predefs.h']]], + ['_5f_5fgcc_5fiec_5f559_5fcomplex_998',['__GCC_IEC_559_COMPLEX',['../moc__predefs_8h.html#a779a207685ad2b8ca4cdab02ece517eb',1,'moc_predefs.h']]], + ['_5f_5fgnu_5flinux_5f_5f_999',['__gnu_linux__',['../moc__predefs_8h.html#a51b087854dc3c2f76946efb432745639',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5f_5f_1000',['__GNUC__',['../moc__predefs_8h.html#aa51016843ec55a0a9df7ce9f85767ee7',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fminor_5f_5f_1001',['__GNUC_MINOR__',['../moc__predefs_8h.html#a0b8ad52bece225cdae9c1b46c91c62a5',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fpatchlevel_5f_5f_1002',['__GNUC_PATCHLEVEL__',['../moc__predefs_8h.html#ad149c0565fcf669b23f483e5b7f80dbd',1,'moc_predefs.h']]], + ['_5f_5fgnuc_5fstdc_5finline_5f_5f_1003',['__GNUC_STDC_INLINE__',['../moc__predefs_8h.html#ad22737f11009b4bf60ba233eee7420dd',1,'moc_predefs.h']]], + ['_5f_5fgnug_5f_5f_1004',['__GNUG__',['../moc__predefs_8h.html#ae7afb460abc6122c6a5f206d78bcae4e',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fabi_5fversion_1005',['__GXX_ABI_VERSION',['../moc__predefs_8h.html#aee5d0901405056d87e3bd47fee83128d',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fexperimental_5fcxx0x_5f_5f_1006',['__GXX_EXPERIMENTAL_CXX0X__',['../moc__predefs_8h.html#a213133a8dca206becf88c2e3523b124a',1,'moc_predefs.h']]], + ['_5f_5fgxx_5frtti_1007',['__GXX_RTTI',['../moc__predefs_8h.html#af607715c8c9a98aa72c81c6629554b0d',1,'moc_predefs.h']]], + ['_5f_5fgxx_5ftypeinfo_5fequality_5finline_1008',['__GXX_TYPEINFO_EQUALITY_INLINE',['../moc__predefs_8h.html#a2ae3844702146748bf36d5bd47bad430',1,'moc_predefs.h']]], + ['_5f_5fgxx_5fweak_5f_5f_1009',['__GXX_WEAK__',['../moc__predefs_8h.html#afb5a2a4891df4551832357e97c6c3c59',1,'moc_predefs.h']]], + ['_5f_5fha_5ffbit_5f_5f_1010',['__HA_FBIT__',['../moc__predefs_8h.html#ab28d96afaf0737e4f3a51adac109fb36',1,'moc_predefs.h']]], + ['_5f_5fha_5fibit_5f_5f_1011',['__HA_IBIT__',['../moc__predefs_8h.html#a907d418d5ddc748993dbba5c01a0f5ec',1,'moc_predefs.h']]], + ['_5f_5fhas_5finclude_1012',['__has_include',['../moc__predefs_8h.html#a1c6886956b05c16006d924f77a868410',1,'moc_predefs.h']]], + ['_5f_5fhas_5finclude_5fnext_1013',['__has_include_next',['../moc__predefs_8h.html#a370369ba2463363de726ff9394861a2b',1,'moc_predefs.h']]], + ['_5f_5fhq_5ffbit_5f_5f_1014',['__HQ_FBIT__',['../moc__predefs_8h.html#a2e0aea8ca4d93daf04d3a96b3c53e93a',1,'moc_predefs.h']]], + ['_5f_5fhq_5fibit_5f_5f_1015',['__HQ_IBIT__',['../moc__predefs_8h.html#a517db8faae01669f8cef916eae3ac205',1,'moc_predefs.h']]], + ['_5f_5fint16_5fc_1016',['__INT16_C',['../moc__predefs_8h.html#acefa39ff476ff22ce343809fff1e8bc1',1,'moc_predefs.h']]], + ['_5f_5fint16_5fmax_5f_5f_1017',['__INT16_MAX__',['../moc__predefs_8h.html#afc45bfe4241907d615bb96ed6f4fd142',1,'moc_predefs.h']]], + ['_5f_5fint16_5ftype_5f_5f_1018',['__INT16_TYPE__',['../moc__predefs_8h.html#a6770e92cfa87964cfcf358a6358f5347',1,'moc_predefs.h']]], + ['_5f_5fint32_5fc_1019',['__INT32_C',['../moc__predefs_8h.html#a3ef70e13cfbe3264fe0b212f8f46d76c',1,'moc_predefs.h']]], + ['_5f_5fint32_5fmax_5f_5f_1020',['__INT32_MAX__',['../moc__predefs_8h.html#abf681096fa9e21512a3fe83f0dcfdb36',1,'moc_predefs.h']]], + ['_5f_5fint32_5ftype_5f_5f_1021',['__INT32_TYPE__',['../moc__predefs_8h.html#a72f76585ea7d1131d4e9be0110fb0ec3',1,'moc_predefs.h']]], + ['_5f_5fint64_5fc_1022',['__INT64_C',['../moc__predefs_8h.html#a4b8971e411b88166747d2a3c2425eaee',1,'moc_predefs.h']]], + ['_5f_5fint64_5fmax_5f_5f_1023',['__INT64_MAX__',['../moc__predefs_8h.html#aa3f186f612efe5edfcc371c95617f06f',1,'moc_predefs.h']]], + ['_5f_5fint64_5ftype_5f_5f_1024',['__INT64_TYPE__',['../moc__predefs_8h.html#a690dd4c0c7711687e30418f5e988d842',1,'moc_predefs.h']]], + ['_5f_5fint8_5fc_1025',['__INT8_C',['../moc__predefs_8h.html#ad36bc14a0433c9f88496bed4ccbd65a3',1,'moc_predefs.h']]], + ['_5f_5fint8_5fmax_5f_5f_1026',['__INT8_MAX__',['../moc__predefs_8h.html#a326c37ba86474b37dd0ae9100e005fac',1,'moc_predefs.h']]], + ['_5f_5fint8_5ftype_5f_5f_1027',['__INT8_TYPE__',['../moc__predefs_8h.html#ae9a1914a564951612704f3f6630663f3',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5fmax_5f_5f_1028',['__INT_FAST16_MAX__',['../moc__predefs_8h.html#ad4f33e46b6c0be1a2bbd83f3efe19165',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5ftype_5f_5f_1029',['__INT_FAST16_TYPE__',['../moc__predefs_8h.html#a6a4d11835d03027f3929b84fe7b55bf6',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast16_5fwidth_5f_5f_1030',['__INT_FAST16_WIDTH__',['../moc__predefs_8h.html#a65ff7d0e95dab0167cbd46d117cfa74a',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5fmax_5f_5f_1031',['__INT_FAST32_MAX__',['../moc__predefs_8h.html#a84479d2bbe1d7286f406fcc302f41376',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5ftype_5f_5f_1032',['__INT_FAST32_TYPE__',['../moc__predefs_8h.html#a4e1f76417ed810f038c277a5aba691fa',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast32_5fwidth_5f_5f_1033',['__INT_FAST32_WIDTH__',['../moc__predefs_8h.html#a7df1cb434b3b8baae4bf6053cb2a3a4a',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5fmax_5f_5f_1034',['__INT_FAST64_MAX__',['../moc__predefs_8h.html#af456a5199e68c3ff20996a5bdf9b4691',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5ftype_5f_5f_1035',['__INT_FAST64_TYPE__',['../moc__predefs_8h.html#a65967d857259eb36c9546a512f2ab4b5',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast64_5fwidth_5f_5f_1036',['__INT_FAST64_WIDTH__',['../moc__predefs_8h.html#ad4fca572f500aba76348d0942a2c5827',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5fmax_5f_5f_1037',['__INT_FAST8_MAX__',['../moc__predefs_8h.html#ab11d0b7a18b7d57dff361c0848f28e09',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5ftype_5f_5f_1038',['__INT_FAST8_TYPE__',['../moc__predefs_8h.html#a3783fd947621ab5304708e78da5bd6d3',1,'moc_predefs.h']]], + ['_5f_5fint_5ffast8_5fwidth_5f_5f_1039',['__INT_FAST8_WIDTH__',['../moc__predefs_8h.html#afb1605528772a5b37f1235cb1b7cf5ca',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5fmax_5f_5f_1040',['__INT_LEAST16_MAX__',['../moc__predefs_8h.html#a4f3694eafdad4edb2bfe114a06553dec',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5ftype_5f_5f_1041',['__INT_LEAST16_TYPE__',['../moc__predefs_8h.html#a6f2032bd7e6248b526a2c13e37c7b972',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast16_5fwidth_5f_5f_1042',['__INT_LEAST16_WIDTH__',['../moc__predefs_8h.html#a6091ba87f9a538a9685b7997a64a64db',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5fmax_5f_5f_1043',['__INT_LEAST32_MAX__',['../moc__predefs_8h.html#a97e13c059a63d2d547cc4a9f386641d2',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5ftype_5f_5f_1044',['__INT_LEAST32_TYPE__',['../moc__predefs_8h.html#a401f5f43b9e96d82152bf7cec0be6dfd',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast32_5fwidth_5f_5f_1045',['__INT_LEAST32_WIDTH__',['../moc__predefs_8h.html#a0a54ad5275069482576a8e26197c01db',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5fmax_5f_5f_1046',['__INT_LEAST64_MAX__',['../moc__predefs_8h.html#ac8ff7f5492853e7e2fa19ebb2b98c9bc',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5ftype_5f_5f_1047',['__INT_LEAST64_TYPE__',['../moc__predefs_8h.html#aadf1477c4b8076c939fb4fdeca6f4b8e',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast64_5fwidth_5f_5f_1048',['__INT_LEAST64_WIDTH__',['../moc__predefs_8h.html#a83a4ddd79aaf0dd95eaa234e59cec667',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5fmax_5f_5f_1049',['__INT_LEAST8_MAX__',['../moc__predefs_8h.html#adc1ccadf1d98117e586324ccb189c09f',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5ftype_5f_5f_1050',['__INT_LEAST8_TYPE__',['../moc__predefs_8h.html#a1801bfbb7ab3b0ff09a48c3d78bd97e2',1,'moc_predefs.h']]], + ['_5f_5fint_5fleast8_5fwidth_5f_5f_1051',['__INT_LEAST8_WIDTH__',['../moc__predefs_8h.html#a967b4ada96d28b97bc07e26e1def8e66',1,'moc_predefs.h']]], + ['_5f_5fint_5fmax_5f_5f_1052',['__INT_MAX__',['../moc__predefs_8h.html#a20fcee7a683d69340d8c3d126e5a7f12',1,'moc_predefs.h']]], + ['_5f_5fint_5fwidth_5f_5f_1053',['__INT_WIDTH__',['../moc__predefs_8h.html#ad3907b8d9bb2265255e6e0d66d91d165',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fc_1054',['__INTMAX_C',['../moc__predefs_8h.html#adb0d09cff489746c5456407aa832fced',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fmax_5f_5f_1055',['__INTMAX_MAX__',['../moc__predefs_8h.html#a6977858c9aa6bb2c67f524a948fc8062',1,'moc_predefs.h']]], + ['_5f_5fintmax_5ftype_5f_5f_1056',['__INTMAX_TYPE__',['../moc__predefs_8h.html#ad3062ff83239e8dd2b8969a2f368d608',1,'moc_predefs.h']]], + ['_5f_5fintmax_5fwidth_5f_5f_1057',['__INTMAX_WIDTH__',['../moc__predefs_8h.html#a4e8a5398566f8b2666a8a71b2dbcf3ca',1,'moc_predefs.h']]], + ['_5f_5fintptr_5fmax_5f_5f_1058',['__INTPTR_MAX__',['../moc__predefs_8h.html#ae19860f43757eb1fc151b38cb3bbc278',1,'moc_predefs.h']]], + ['_5f_5fintptr_5ftype_5f_5f_1059',['__INTPTR_TYPE__',['../moc__predefs_8h.html#a4ca36196b9f45fa67a0b23c43c658aa1',1,'moc_predefs.h']]], + ['_5f_5fintptr_5fwidth_5f_5f_1060',['__INTPTR_WIDTH__',['../moc__predefs_8h.html#a8394afe92148ddbdf0e0697978cd1382',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fepsilon_5f_5f_1061',['__LACCUM_EPSILON__',['../moc__predefs_8h.html#a85eba162e856268c269aac352454431f',1,'moc_predefs.h']]], + ['_5f_5flaccum_5ffbit_5f_5f_1062',['__LACCUM_FBIT__',['../moc__predefs_8h.html#a6b035b68b018afe25e07f3cb23a8f921',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fibit_5f_5f_1063',['__LACCUM_IBIT__',['../moc__predefs_8h.html#aad3d364f6a93a9d5848f06f5172561c1',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fmax_5f_5f_1064',['__LACCUM_MAX__',['../moc__predefs_8h.html#a2436bf06d7aad40fa2c53025c1010bf0',1,'moc_predefs.h']]], + ['_5f_5flaccum_5fmin_5f_5f_1065',['__LACCUM_MIN__',['../moc__predefs_8h.html#a3996b66e851f8b7d95267629346f3e8b',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdecimal_5fdig_5f_5f_1066',['__LDBL_DECIMAL_DIG__',['../moc__predefs_8h.html#acff705a6de0de8303f2394603bbcdb90',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdenorm_5fmin_5f_5f_1067',['__LDBL_DENORM_MIN__',['../moc__predefs_8h.html#a5436993e3c0ddb7caee4b9b01021cde4',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fdig_5f_5f_1068',['__LDBL_DIG__',['../moc__predefs_8h.html#a3aa761811887b1634bfca566fa671424',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fepsilon_5f_5f_1069',['__LDBL_EPSILON__',['../moc__predefs_8h.html#ad7a5615aea1516ee885112456cf695e8',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5fdenorm_5f_5f_1070',['__LDBL_HAS_DENORM__',['../moc__predefs_8h.html#a3c7f3130e367d47bcc27a0a41278155e',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5finfinity_5f_5f_1071',['__LDBL_HAS_INFINITY__',['../moc__predefs_8h.html#a87140cc80075e8907e7bbfd910c5642a',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fhas_5fquiet_5fnan_5f_5f_1072',['__LDBL_HAS_QUIET_NAN__',['../moc__predefs_8h.html#a10a15ae17c3b791fe9b9721965ebfee4',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmant_5fdig_5f_5f_1073',['__LDBL_MANT_DIG__',['../moc__predefs_8h.html#a3c8df97b7413f417379377b604d060f5',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5f10_5fexp_5f_5f_1074',['__LDBL_MAX_10_EXP__',['../moc__predefs_8h.html#afc6ac46966747a9423f4a6bb3af94b55',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5f_5f_1075',['__LDBL_MAX__',['../moc__predefs_8h.html#a06fd91f0507a4f364e469c8055f4265a',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmax_5fexp_5f_5f_1076',['__LDBL_MAX_EXP__',['../moc__predefs_8h.html#ae221a8e373285cf10c22926762f477f5',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5f10_5fexp_5f_5f_1077',['__LDBL_MIN_10_EXP__',['../moc__predefs_8h.html#aa0d249d82751bd4ee0280990bc510371',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5f_5f_1078',['__LDBL_MIN__',['../moc__predefs_8h.html#ab572f59c4b0c5a1f4c2953f38a76d7b3',1,'moc_predefs.h']]], + ['_5f_5fldbl_5fmin_5fexp_5f_5f_1079',['__LDBL_MIN_EXP__',['../moc__predefs_8h.html#ac3707c00cdbb574b68fd6263ac4d0407',1,'moc_predefs.h']]], + ['_5f_5flfract_5fepsilon_5f_5f_1080',['__LFRACT_EPSILON__',['../moc__predefs_8h.html#a78b7e10394762d719fec9a3e07b33ee2',1,'moc_predefs.h']]], + ['_5f_5flfract_5ffbit_5f_5f_1081',['__LFRACT_FBIT__',['../moc__predefs_8h.html#ab743789ae83a7a7f61c5b96506f48ca9',1,'moc_predefs.h']]], + ['_5f_5flfract_5fibit_5f_5f_1082',['__LFRACT_IBIT__',['../moc__predefs_8h.html#ac5a018e839dcea88e74e3b8eeac9487c',1,'moc_predefs.h']]], + ['_5f_5flfract_5fmax_5f_5f_1083',['__LFRACT_MAX__',['../moc__predefs_8h.html#abb5859eb17652f35bc56f2ca26b3089b',1,'moc_predefs.h']]], + ['_5f_5flfract_5fmin_5f_5f_1084',['__LFRACT_MIN__',['../moc__predefs_8h.html#aa7d8d0b2cda49359adbabb6e843e8700',1,'moc_predefs.h']]], + ['_5f_5flinux_1085',['__linux',['../moc__predefs_8h.html#a6c6342c53a7213211680dc5caae14491',1,'moc_predefs.h']]], + ['_5f_5flinux_5f_5f_1086',['__linux__',['../moc__predefs_8h.html#a1b27e3508a4c1e97875297882a95f503',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fepsilon_5f_5f_1087',['__LLACCUM_EPSILON__',['../moc__predefs_8h.html#ae837c7430442b5c7c3a0c70d0c611473',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5ffbit_5f_5f_1088',['__LLACCUM_FBIT__',['../moc__predefs_8h.html#afbcfe5556dc1a9bc0394277eb8e73e2c',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fibit_5f_5f_1089',['__LLACCUM_IBIT__',['../moc__predefs_8h.html#a0405f081746b177320ab17d332a0c938',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fmax_5f_5f_1090',['__LLACCUM_MAX__',['../moc__predefs_8h.html#af3bb5b9901f76155066c0d6806faef29',1,'moc_predefs.h']]], + ['_5f_5fllaccum_5fmin_5f_5f_1091',['__LLACCUM_MIN__',['../moc__predefs_8h.html#aa37bd83c4330ad1020cf1bbdc89070b6',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fepsilon_5f_5f_1092',['__LLFRACT_EPSILON__',['../moc__predefs_8h.html#a17d5e6eddd99e8cd1695d187ad4f0d56',1,'moc_predefs.h']]], + ['_5f_5fllfract_5ffbit_5f_5f_1093',['__LLFRACT_FBIT__',['../moc__predefs_8h.html#aacea0bba92648df736365a17a1110106',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fibit_5f_5f_1094',['__LLFRACT_IBIT__',['../moc__predefs_8h.html#ad3547f2b474d73b357d9b760b3e7f34c',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fmax_5f_5f_1095',['__LLFRACT_MAX__',['../moc__predefs_8h.html#ab2242f19b1253ebe1f471fc61c5359c5',1,'moc_predefs.h']]], + ['_5f_5fllfract_5fmin_5f_5f_1096',['__LLFRACT_MIN__',['../moc__predefs_8h.html#aab9c2d1e67d0bd49261c9b5b0d20ce20',1,'moc_predefs.h']]], + ['_5f_5flong_5flong_5fmax_5f_5f_1097',['__LONG_LONG_MAX__',['../moc__predefs_8h.html#a9bed0d0b1893211f857ad76d6728ea7e',1,'moc_predefs.h']]], + ['_5f_5flong_5flong_5fwidth_5f_5f_1098',['__LONG_LONG_WIDTH__',['../moc__predefs_8h.html#a895181efde95bdfb3489ba3018c48582',1,'moc_predefs.h']]], + ['_5f_5flong_5fmax_5f_5f_1099',['__LONG_MAX__',['../moc__predefs_8h.html#af16678d7537c7a5463c807639fe2f635',1,'moc_predefs.h']]], + ['_5f_5flong_5fwidth_5f_5f_1100',['__LONG_WIDTH__',['../moc__predefs_8h.html#a136189a915ba49e719dcffbeba8412fd',1,'moc_predefs.h']]], + ['_5f_5fno_5finline_5f_5f_1101',['__NO_INLINE__',['../moc__predefs_8h.html#a7a76473a66d022aee2c9f661405d8fbb',1,'moc_predefs.h']]], + ['_5f_5forder_5fbig_5fendian_5f_5f_1102',['__ORDER_BIG_ENDIAN__',['../moc__predefs_8h.html#a190d0219caabccc0e05909f39bcb00d6',1,'moc_predefs.h']]], + ['_5f_5forder_5flittle_5fendian_5f_5f_1103',['__ORDER_LITTLE_ENDIAN__',['../moc__predefs_8h.html#a2b695357ce4b46971d54e8e9dfe5724f',1,'moc_predefs.h']]], + ['_5f_5forder_5fpdp_5fendian_5f_5f_1104',['__ORDER_PDP_ENDIAN__',['../moc__predefs_8h.html#a94ead674b2441dc29dbd5d6aba467197',1,'moc_predefs.h']]], + ['_5f_5fpragma_5fredefine_5fextname_1105',['__PRAGMA_REDEFINE_EXTNAME',['../moc__predefs_8h.html#a165bf2f00e518485a1bb58c1918205b0',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5fmax_5f_5f_1106',['__PTRDIFF_MAX__',['../moc__predefs_8h.html#ac29c76a6702808cfc4a5f661d0d33c2c',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5ftype_5f_5f_1107',['__PTRDIFF_TYPE__',['../moc__predefs_8h.html#a726a020189392103a9404da070536e07',1,'moc_predefs.h']]], + ['_5f_5fptrdiff_5fwidth_5f_5f_1108',['__PTRDIFF_WIDTH__',['../moc__predefs_8h.html#a96b511bfa61e4203ec3668fb39063309',1,'moc_predefs.h']]], + ['_5f_5fqq_5ffbit_5f_5f_1109',['__QQ_FBIT__',['../moc__predefs_8h.html#add9f144f6de9798bb441768f7cee1072',1,'moc_predefs.h']]], + ['_5f_5fqq_5fibit_5f_5f_1110',['__QQ_IBIT__',['../moc__predefs_8h.html#a7fd10bda3bcfa8ce29c11ee095b31d36',1,'moc_predefs.h']]], + ['_5f_5fregister_5fprefix_5f_5f_1111',['__REGISTER_PREFIX__',['../moc__predefs_8h.html#a08d4062230ffc8494f4be4f6447497e4',1,'moc_predefs.h']]], + ['_5f_5fsa_5ffbit_5f_5f_1112',['__SA_FBIT__',['../moc__predefs_8h.html#a5e3e28499ef95cba518ac1a961dc2a76',1,'moc_predefs.h']]], + ['_5f_5fsa_5fibit_5f_5f_1113',['__SA_IBIT__',['../moc__predefs_8h.html#a750a955b52ac9b7534167fac1d661347',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fepsilon_5f_5f_1114',['__SACCUM_EPSILON__',['../moc__predefs_8h.html#af6f23847c608c91b62a3f7107a0015fe',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5ffbit_5f_5f_1115',['__SACCUM_FBIT__',['../moc__predefs_8h.html#a513fb8de806bb8fa1da2271c2872baad',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fibit_5f_5f_1116',['__SACCUM_IBIT__',['../moc__predefs_8h.html#a89ba5dc332ccdea517a33b5e81488f2e',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fmax_5f_5f_1117',['__SACCUM_MAX__',['../moc__predefs_8h.html#a6690459ee522ac8463747b0ba7008596',1,'moc_predefs.h']]], + ['_5f_5fsaccum_5fmin_5f_5f_1118',['__SACCUM_MIN__',['../moc__predefs_8h.html#a9c0d95d87e68f1037aeb6c38a3660712',1,'moc_predefs.h']]], + ['_5f_5fschar_5fmax_5f_5f_1119',['__SCHAR_MAX__',['../moc__predefs_8h.html#a87b7ceac2198cab045e40c9a64b11679',1,'moc_predefs.h']]], + ['_5f_5fschar_5fwidth_5f_5f_1120',['__SCHAR_WIDTH__',['../moc__predefs_8h.html#a5a949d2ee22a649377e5bec02e3e5855',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fepsilon_5f_5f_1121',['__SFRACT_EPSILON__',['../moc__predefs_8h.html#ab6f53c3751a12ac217f61873403a18bb',1,'moc_predefs.h']]], + ['_5f_5fsfract_5ffbit_5f_5f_1122',['__SFRACT_FBIT__',['../moc__predefs_8h.html#a859ac49b336ef5ee25b734a48f911a15',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fibit_5f_5f_1123',['__SFRACT_IBIT__',['../moc__predefs_8h.html#a6e46fffd230d19a658f6235169cc4bd5',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fmax_5f_5f_1124',['__SFRACT_MAX__',['../moc__predefs_8h.html#abe904f812f7ddc9a264214f2ba613304',1,'moc_predefs.h']]], + ['_5f_5fsfract_5fmin_5f_5f_1125',['__SFRACT_MIN__',['../moc__predefs_8h.html#ab6d1db3f1e2c31e9952384f079b110b1',1,'moc_predefs.h']]], + ['_5f_5fshrt_5fmax_5f_5f_1126',['__SHRT_MAX__',['../moc__predefs_8h.html#a4f69990d03f9fb0c390a6fbad28a737b',1,'moc_predefs.h']]], + ['_5f_5fshrt_5fwidth_5f_5f_1127',['__SHRT_WIDTH__',['../moc__predefs_8h.html#aeb2d8312284d49b1e44c7d003bd8b54b',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fmax_5f_5f_1128',['__SIG_ATOMIC_MAX__',['../moc__predefs_8h.html#a9e75b72378b039587e4fc4006776826d',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fmin_5f_5f_1129',['__SIG_ATOMIC_MIN__',['../moc__predefs_8h.html#aa39266a3f430ebcd4a4374e7a815e23f',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5ftype_5f_5f_1130',['__SIG_ATOMIC_TYPE__',['../moc__predefs_8h.html#ac60fe3845f87fdaf6365a733ede87cfe',1,'moc_predefs.h']]], + ['_5f_5fsig_5fatomic_5fwidth_5f_5f_1131',['__SIG_ATOMIC_WIDTH__',['../moc__predefs_8h.html#a768834e55cd5d1c30d24b0dbc83563cc',1,'moc_predefs.h']]], + ['_5f_5fsize_5fmax_5f_5f_1132',['__SIZE_MAX__',['../moc__predefs_8h.html#a66fbb70a69c9f66830f95a20e46091a6',1,'moc_predefs.h']]], + ['_5f_5fsize_5ftype_5f_5f_1133',['__SIZE_TYPE__',['../moc__predefs_8h.html#ab8d03bfd9e9120480015fc51dc8b8e65',1,'moc_predefs.h']]], + ['_5f_5fsize_5fwidth_5f_5f_1134',['__SIZE_WIDTH__',['../moc__predefs_8h.html#a9eb6044e34be0d38146a2dadec14ecb2',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fdouble_5f_5f_1135',['__SIZEOF_DOUBLE__',['../moc__predefs_8h.html#a6a0b73b50b59fa18dbcea5b6dee0899f',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5ffloat_5f_5f_1136',['__SIZEOF_FLOAT__',['../moc__predefs_8h.html#a4bd7bc94412d84b84388c574770b4549',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fint_5f_5f_1137',['__SIZEOF_INT__',['../moc__predefs_8h.html#a4b2be09502f3fe1cd13838c6761803b3',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5f_5f_1138',['__SIZEOF_LONG__',['../moc__predefs_8h.html#aaa8084a56e3732008acafea8fd15eb2f',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5fdouble_5f_5f_1139',['__SIZEOF_LONG_DOUBLE__',['../moc__predefs_8h.html#aae92712264b830cd7d24d4b81d502ffb',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5flong_5flong_5f_5f_1140',['__SIZEOF_LONG_LONG__',['../moc__predefs_8h.html#a68e0683c8f359f7d7e013706fbcc2040',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fpointer_5f_5f_1141',['__SIZEOF_POINTER__',['../moc__predefs_8h.html#a8bd657ce95940b7c6087cf5aa54d5280',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fptrdiff_5ft_5f_5f_1142',['__SIZEOF_PTRDIFF_T__',['../moc__predefs_8h.html#a2c1c95a99789b8c9721e896c48257f53',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fshort_5f_5f_1143',['__SIZEOF_SHORT__',['../moc__predefs_8h.html#ae9ea889821e3c2486a7435a83a309e80',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fsize_5ft_5f_5f_1144',['__SIZEOF_SIZE_T__',['../moc__predefs_8h.html#ab6eb3d66486ef05ac7f1d489bfc675b4',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fwchar_5ft_5f_5f_1145',['__SIZEOF_WCHAR_T__',['../moc__predefs_8h.html#a5cc6a3e1680136db2b5e60c2fb703d99',1,'moc_predefs.h']]], + ['_5f_5fsizeof_5fwint_5ft_5f_5f_1146',['__SIZEOF_WINT_T__',['../moc__predefs_8h.html#a808f04c28bb0ef2d6b77dd66564ad351',1,'moc_predefs.h']]], + ['_5f_5fsq_5ffbit_5f_5f_1147',['__SQ_FBIT__',['../moc__predefs_8h.html#aee50c1cb4fcde0770a78626b34c060b3',1,'moc_predefs.h']]], + ['_5f_5fsq_5fibit_5f_5f_1148',['__SQ_IBIT__',['../moc__predefs_8h.html#aba0020f767139d4cafb9f52eb252e247',1,'moc_predefs.h']]], + ['_5f_5fstdc_5f_5f_1149',['__STDC__',['../moc__predefs_8h.html#a8bdd19cad331a646ae8375be00e34cb3',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fhosted_5f_5f_1150',['__STDC_HOSTED__',['../moc__predefs_8h.html#a309fa84aefd09132258bbe21c20ef7d4',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiec_5f559_5f_5f_1151',['__STDC_IEC_559__',['../moc__predefs_8h.html#ab7d84ba8d87b8bb40aa752334bb51b23',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiec_5f559_5fcomplex_5f_5f_1152',['__STDC_IEC_559_COMPLEX__',['../moc__predefs_8h.html#a7b5b9dc07de6dd5c39c59b0ac260f943',1,'moc_predefs.h']]], + ['_5f_5fstdc_5fiso_5f10646_5f_5f_1153',['__STDC_ISO_10646__',['../moc__predefs_8h.html#acb6063ed9d8841cf71c93f2bf34832e0',1,'moc_predefs.h']]], + ['_5f_5fstdc_5futf_5f16_5f_5f_1154',['__STDC_UTF_16__',['../moc__predefs_8h.html#a93a5a9d251e5bff3c2a130627f20e782',1,'moc_predefs.h']]], + ['_5f_5fstdc_5futf_5f32_5f_5f_1155',['__STDC_UTF_32__',['../moc__predefs_8h.html#a78e2494c8fce0c7ec9f62865340d6abf',1,'moc_predefs.h']]], + ['_5f_5fta_5ffbit_5f_5f_1156',['__TA_FBIT__',['../moc__predefs_8h.html#ab355da8484a60237cfbe45d368b6bc40',1,'moc_predefs.h']]], + ['_5f_5fta_5fibit_5f_5f_1157',['__TA_IBIT__',['../moc__predefs_8h.html#affe15bf30b6d0b0f6f5c9875def650cc',1,'moc_predefs.h']]], + ['_5f_5fthumb_5finterwork_5f_5f_1158',['__THUMB_INTERWORK__',['../moc__predefs_8h.html#a5aa890f05b3876c70af76a6e5a8e910a',1,'moc_predefs.h']]], + ['_5f_5ftq_5ffbit_5f_5f_1159',['__TQ_FBIT__',['../moc__predefs_8h.html#af9e75bdb453ccee520f6605d9987d439',1,'moc_predefs.h']]], + ['_5f_5ftq_5fibit_5f_5f_1160',['__TQ_IBIT__',['../moc__predefs_8h.html#af20ff0bde5be8363438497453b001032',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fepsilon_5f_5f_1161',['__UACCUM_EPSILON__',['../moc__predefs_8h.html#a4d7a4d071e8a85bb41ca9c2bc7f9a5a5',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5ffbit_5f_5f_1162',['__UACCUM_FBIT__',['../moc__predefs_8h.html#acb7bbc60a8f2b4dbcff77f7c75fd6acc',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fibit_5f_5f_1163',['__UACCUM_IBIT__',['../moc__predefs_8h.html#a789bbc3047d2fcfc083a9c51a1e8686d',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fmax_5f_5f_1164',['__UACCUM_MAX__',['../moc__predefs_8h.html#a4aa9e67eb1c2cdfe7fa3321583b16e41',1,'moc_predefs.h']]], + ['_5f_5fuaccum_5fmin_5f_5f_1165',['__UACCUM_MIN__',['../moc__predefs_8h.html#aa521e9309218b6b61261318bd5feeb81',1,'moc_predefs.h']]], + ['_5f_5fuda_5ffbit_5f_5f_1166',['__UDA_FBIT__',['../moc__predefs_8h.html#a631e7073725dcc54f650b72c617f36ed',1,'moc_predefs.h']]], + ['_5f_5fuda_5fibit_5f_5f_1167',['__UDA_IBIT__',['../moc__predefs_8h.html#ad31fa73585e8346393917225871cbc0b',1,'moc_predefs.h']]], + ['_5f_5fudq_5ffbit_5f_5f_1168',['__UDQ_FBIT__',['../moc__predefs_8h.html#a77d82789abb2c1a3dccc47afd5b2edb9',1,'moc_predefs.h']]], + ['_5f_5fudq_5fibit_5f_5f_1169',['__UDQ_IBIT__',['../moc__predefs_8h.html#a0e2a62089d7d3423f98b5b4fb687e6ce',1,'moc_predefs.h']]], + ['_5f_5fufract_5fepsilon_5f_5f_1170',['__UFRACT_EPSILON__',['../moc__predefs_8h.html#a30abb5bd7d89e9e8c19677795db387c8',1,'moc_predefs.h']]], + ['_5f_5fufract_5ffbit_5f_5f_1171',['__UFRACT_FBIT__',['../moc__predefs_8h.html#a7756c51be09258757005877d08688a05',1,'moc_predefs.h']]], + ['_5f_5fufract_5fibit_5f_5f_1172',['__UFRACT_IBIT__',['../moc__predefs_8h.html#af2d4c34845fa216caacce1a7a9b8738f',1,'moc_predefs.h']]], + ['_5f_5fufract_5fmax_5f_5f_1173',['__UFRACT_MAX__',['../moc__predefs_8h.html#a856de0bd8deb7e6ddd55e6e961cae874',1,'moc_predefs.h']]], + ['_5f_5fufract_5fmin_5f_5f_1174',['__UFRACT_MIN__',['../moc__predefs_8h.html#af7d6c71ef780b40ddc515c776df7715b',1,'moc_predefs.h']]], + ['_5f_5fuha_5ffbit_5f_5f_1175',['__UHA_FBIT__',['../moc__predefs_8h.html#a6b0e96965a1a25948b8e0e555a459032',1,'moc_predefs.h']]], + ['_5f_5fuha_5fibit_5f_5f_1176',['__UHA_IBIT__',['../moc__predefs_8h.html#a9097ba1748883030bc82602933e6be1d',1,'moc_predefs.h']]], + ['_5f_5fuhq_5ffbit_5f_5f_1177',['__UHQ_FBIT__',['../moc__predefs_8h.html#a45bfb898fee6977940d398ec0cd0d570',1,'moc_predefs.h']]], + ['_5f_5fuhq_5fibit_5f_5f_1178',['__UHQ_IBIT__',['../moc__predefs_8h.html#a7102286d09cb4948865f4effecc55941',1,'moc_predefs.h']]], + ['_5f_5fuint16_5fc_1179',['__UINT16_C',['../moc__predefs_8h.html#aa860a111dcff819d3502dda14f8ac778',1,'moc_predefs.h']]], + ['_5f_5fuint16_5fmax_5f_5f_1180',['__UINT16_MAX__',['../moc__predefs_8h.html#a17f94731962876cdac979ae093f52605',1,'moc_predefs.h']]], + ['_5f_5fuint16_5ftype_5f_5f_1181',['__UINT16_TYPE__',['../moc__predefs_8h.html#a4c0e7daf2ae663a4f96693468bbb279f',1,'moc_predefs.h']]], + ['_5f_5fuint32_5fc_1182',['__UINT32_C',['../moc__predefs_8h.html#a8cc5a4a43af8f7568a450cad0e7d5bd8',1,'moc_predefs.h']]], + ['_5f_5fuint32_5fmax_5f_5f_1183',['__UINT32_MAX__',['../moc__predefs_8h.html#ab4425dccbcddb2363a2a8a67367a5b42',1,'moc_predefs.h']]], + ['_5f_5fuint32_5ftype_5f_5f_1184',['__UINT32_TYPE__',['../moc__predefs_8h.html#af4eb6c3c4da52a7fe202626ac4dc360e',1,'moc_predefs.h']]], + ['_5f_5fuint64_5fc_1185',['__UINT64_C',['../moc__predefs_8h.html#a405cee4934ed56c9a4aa4e7dc4380bd2',1,'moc_predefs.h']]], + ['_5f_5fuint64_5fmax_5f_5f_1186',['__UINT64_MAX__',['../moc__predefs_8h.html#a9f8e418d5a6f916ffe36f250fb99d7bc',1,'moc_predefs.h']]], + ['_5f_5fuint64_5ftype_5f_5f_1187',['__UINT64_TYPE__',['../moc__predefs_8h.html#aef86f5642c3dce887635c9fc632baf34',1,'moc_predefs.h']]], + ['_5f_5fuint8_5fc_1188',['__UINT8_C',['../moc__predefs_8h.html#a23cc29e487b9acd9261adc6c71c1ff0e',1,'moc_predefs.h']]], + ['_5f_5fuint8_5fmax_5f_5f_1189',['__UINT8_MAX__',['../moc__predefs_8h.html#afd12ac7489bdbbed7fa3cc51023b8f73',1,'moc_predefs.h']]], + ['_5f_5fuint8_5ftype_5f_5f_1190',['__UINT8_TYPE__',['../moc__predefs_8h.html#a0f22edb92c4da8029783c424962ac30d',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast16_5fmax_5f_5f_1191',['__UINT_FAST16_MAX__',['../moc__predefs_8h.html#a5db559b8fe7a2135f05686e92ce64d9d',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast16_5ftype_5f_5f_1192',['__UINT_FAST16_TYPE__',['../moc__predefs_8h.html#a5aed2c2843dad661012dac2d465f89e1',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast32_5fmax_5f_5f_1193',['__UINT_FAST32_MAX__',['../moc__predefs_8h.html#a61e63cea5ac78bcf0d282b70d63668e1',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast32_5ftype_5f_5f_1194',['__UINT_FAST32_TYPE__',['../moc__predefs_8h.html#a0746bdc61f4500f26c2b7408814ebfcf',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast64_5fmax_5f_5f_1195',['__UINT_FAST64_MAX__',['../moc__predefs_8h.html#a17a1ff08595cf7e0c9d1f162b727ccb6',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast64_5ftype_5f_5f_1196',['__UINT_FAST64_TYPE__',['../moc__predefs_8h.html#a3877156c4b30153ae764b0dad8d8130a',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast8_5fmax_5f_5f_1197',['__UINT_FAST8_MAX__',['../moc__predefs_8h.html#a27b5eb7cfda61c7f1baeb4d95f3052bb',1,'moc_predefs.h']]], + ['_5f_5fuint_5ffast8_5ftype_5f_5f_1198',['__UINT_FAST8_TYPE__',['../moc__predefs_8h.html#a8cf0f2397b96d2a198ff932dbfa50344',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast16_5fmax_5f_5f_1199',['__UINT_LEAST16_MAX__',['../moc__predefs_8h.html#a6a762b969d5eea9e6a8db715a5f5a1a9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast16_5ftype_5f_5f_1200',['__UINT_LEAST16_TYPE__',['../moc__predefs_8h.html#a64a27148d4e67c4ae167442c7dc92a0a',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast32_5fmax_5f_5f_1201',['__UINT_LEAST32_MAX__',['../moc__predefs_8h.html#a281ab632befbb2d5567ff114e2fa18f9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast32_5ftype_5f_5f_1202',['__UINT_LEAST32_TYPE__',['../moc__predefs_8h.html#a76363f8817bf3df4542ebbcce172df53',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast64_5fmax_5f_5f_1203',['__UINT_LEAST64_MAX__',['../moc__predefs_8h.html#a4bf843ffcadf9b162b74c1b7e546e8e9',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast64_5ftype_5f_5f_1204',['__UINT_LEAST64_TYPE__',['../moc__predefs_8h.html#a306a0b7c6f110b24a77083abaf3acc7a',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast8_5fmax_5f_5f_1205',['__UINT_LEAST8_MAX__',['../moc__predefs_8h.html#aaf06a1464d33431377a2ee5293ec70d2',1,'moc_predefs.h']]], + ['_5f_5fuint_5fleast8_5ftype_5f_5f_1206',['__UINT_LEAST8_TYPE__',['../moc__predefs_8h.html#a5a8c0a31337df765b55c6260ef58e51e',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5fc_1207',['__UINTMAX_C',['../moc__predefs_8h.html#aee4eb3a89493f1c9251a5a52f700f21d',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5fmax_5f_5f_1208',['__UINTMAX_MAX__',['../moc__predefs_8h.html#a36b3a5bf25feeef4fbdca37900522f3c',1,'moc_predefs.h']]], + ['_5f_5fuintmax_5ftype_5f_5f_1209',['__UINTMAX_TYPE__',['../moc__predefs_8h.html#ab86380373ae9fa385c8a2464023774a8',1,'moc_predefs.h']]], + ['_5f_5fuintptr_5fmax_5f_5f_1210',['__UINTPTR_MAX__',['../moc__predefs_8h.html#a1a2ed956349884193c07233d3cc40560',1,'moc_predefs.h']]], + ['_5f_5fuintptr_5ftype_5f_5f_1211',['__UINTPTR_TYPE__',['../moc__predefs_8h.html#a1c54273d3f148c51ad48fd738d1e6cbe',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fepsilon_5f_5f_1212',['__ULACCUM_EPSILON__',['../moc__predefs_8h.html#adfa534bdf20d21aed237e9d5644b9e1f',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5ffbit_5f_5f_1213',['__ULACCUM_FBIT__',['../moc__predefs_8h.html#a7a8061fb04ad84cbc82738ee7fbff629',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fibit_5f_5f_1214',['__ULACCUM_IBIT__',['../moc__predefs_8h.html#a892f356bce3091ffb2e87dfb778683d3',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fmax_5f_5f_1215',['__ULACCUM_MAX__',['../moc__predefs_8h.html#a7415922e4243d2508114a0379bce6374',1,'moc_predefs.h']]], + ['_5f_5fulaccum_5fmin_5f_5f_1216',['__ULACCUM_MIN__',['../moc__predefs_8h.html#a568e1d447594c30f8cc3c33d62f1cb1e',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fepsilon_5f_5f_1217',['__ULFRACT_EPSILON__',['../moc__predefs_8h.html#a33713305051e7cb497b5e2c924bae95e',1,'moc_predefs.h']]], + ['_5f_5fulfract_5ffbit_5f_5f_1218',['__ULFRACT_FBIT__',['../moc__predefs_8h.html#a6f68e07fad7d8b624f820fc49e241dc2',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fibit_5f_5f_1219',['__ULFRACT_IBIT__',['../moc__predefs_8h.html#af8e59e7de3edb4ca738679e044cc2b81',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fmax_5f_5f_1220',['__ULFRACT_MAX__',['../moc__predefs_8h.html#aa54b83195a30e6beb98ad62a6a89e075',1,'moc_predefs.h']]], + ['_5f_5fulfract_5fmin_5f_5f_1221',['__ULFRACT_MIN__',['../moc__predefs_8h.html#abfd50dcd2ef551246269f303d99fd662',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fepsilon_5f_5f_1222',['__ULLACCUM_EPSILON__',['../moc__predefs_8h.html#a91c02999719803565cefadb731a2a668',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5ffbit_5f_5f_1223',['__ULLACCUM_FBIT__',['../moc__predefs_8h.html#aa476e815f1590ede136d92b09f760581',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fibit_5f_5f_1224',['__ULLACCUM_IBIT__',['../moc__predefs_8h.html#a01c49eec2e7d5b02de85da36904eac4e',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fmax_5f_5f_1225',['__ULLACCUM_MAX__',['../moc__predefs_8h.html#a0b6b145385f61e8dc93f0df6933aa489',1,'moc_predefs.h']]], + ['_5f_5fullaccum_5fmin_5f_5f_1226',['__ULLACCUM_MIN__',['../moc__predefs_8h.html#a186ffad79fee26491fa5b4ac6124cd6f',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fepsilon_5f_5f_1227',['__ULLFRACT_EPSILON__',['../moc__predefs_8h.html#a8755bcd8eb888d4c837999718b8e0b18',1,'moc_predefs.h']]], + ['_5f_5fullfract_5ffbit_5f_5f_1228',['__ULLFRACT_FBIT__',['../moc__predefs_8h.html#ac987d32df85aebd4b7c6b0b0cc7fac15',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fibit_5f_5f_1229',['__ULLFRACT_IBIT__',['../moc__predefs_8h.html#a2f23cce03c4b945e41cdf7fc2df8aca4',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fmax_5f_5f_1230',['__ULLFRACT_MAX__',['../moc__predefs_8h.html#a2a69c1193c6d41bff15b920fbfa5a867',1,'moc_predefs.h']]], + ['_5f_5fullfract_5fmin_5f_5f_1231',['__ULLFRACT_MIN__',['../moc__predefs_8h.html#ae29642406cfa11e91a88203861adc92c',1,'moc_predefs.h']]], + ['_5f_5funix_1232',['__unix',['../moc__predefs_8h.html#ac3cd8b035cfb8a68f6d1119ace36f1cc',1,'moc_predefs.h']]], + ['_5f_5funix_5f_5f_1233',['__unix__',['../moc__predefs_8h.html#aa5be39d362c571d48d6236f0bd58f1fc',1,'moc_predefs.h']]], + ['_5f_5fuqq_5ffbit_5f_5f_1234',['__UQQ_FBIT__',['../moc__predefs_8h.html#ae769d68160432410a4d6700acb5051de',1,'moc_predefs.h']]], + ['_5f_5fuqq_5fibit_5f_5f_1235',['__UQQ_IBIT__',['../moc__predefs_8h.html#ac8770dbc2da017dd63e1a44fc07d248f',1,'moc_predefs.h']]], + ['_5f_5fusa_5ffbit_5f_5f_1236',['__USA_FBIT__',['../moc__predefs_8h.html#acdef6e7c9f7d4096d19aa387abc0a045',1,'moc_predefs.h']]], + ['_5f_5fusa_5fibit_5f_5f_1237',['__USA_IBIT__',['../moc__predefs_8h.html#a5b7b699f70c2278374328a3933389c8b',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fepsilon_5f_5f_1238',['__USACCUM_EPSILON__',['../moc__predefs_8h.html#afcdca48368232fed3dceacc5716f007c',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5ffbit_5f_5f_1239',['__USACCUM_FBIT__',['../moc__predefs_8h.html#a30b5a905003a2c748fdb277e1eb61134',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fibit_5f_5f_1240',['__USACCUM_IBIT__',['../moc__predefs_8h.html#aaf5d84a69adea71f50f8007fabde7ffb',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fmax_5f_5f_1241',['__USACCUM_MAX__',['../moc__predefs_8h.html#a2bff327f9a0dd209c33e89161cfa75db',1,'moc_predefs.h']]], + ['_5f_5fusaccum_5fmin_5f_5f_1242',['__USACCUM_MIN__',['../moc__predefs_8h.html#a48177288d9ba19526ddfa87071d2c735',1,'moc_predefs.h']]], + ['_5f_5fuser_5flabel_5fprefix_5f_5f_1243',['__USER_LABEL_PREFIX__',['../moc__predefs_8h.html#aff6bf0ff0fa3b5cbd23a8ae1131c87a9',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fepsilon_5f_5f_1244',['__USFRACT_EPSILON__',['../moc__predefs_8h.html#a0bb1e0beafad50453605ea11eb49e0e9',1,'moc_predefs.h']]], + ['_5f_5fusfract_5ffbit_5f_5f_1245',['__USFRACT_FBIT__',['../moc__predefs_8h.html#ab97fb376186e27dd069f91fdb8944c45',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fibit_5f_5f_1246',['__USFRACT_IBIT__',['../moc__predefs_8h.html#aff6e8fba11120740e9b9905d908e5810',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fmax_5f_5f_1247',['__USFRACT_MAX__',['../moc__predefs_8h.html#a12a7c3c43c7075b2524bcff787860afd',1,'moc_predefs.h']]], + ['_5f_5fusfract_5fmin_5f_5f_1248',['__USFRACT_MIN__',['../moc__predefs_8h.html#a18722e43595ceec21ac010aac3cdd70f',1,'moc_predefs.h']]], + ['_5f_5fusq_5ffbit_5f_5f_1249',['__USQ_FBIT__',['../moc__predefs_8h.html#aa4c8d3109d01e6ec62924594f73ffbf4',1,'moc_predefs.h']]], + ['_5f_5fusq_5fibit_5f_5f_1250',['__USQ_IBIT__',['../moc__predefs_8h.html#a81eca8959b61c7e2abc29a2c24af02bc',1,'moc_predefs.h']]], + ['_5f_5futa_5ffbit_5f_5f_1251',['__UTA_FBIT__',['../moc__predefs_8h.html#ad739d1e4f2c7c3928ac586e8d37da3d2',1,'moc_predefs.h']]], + ['_5f_5futa_5fibit_5f_5f_1252',['__UTA_IBIT__',['../moc__predefs_8h.html#af63dc9fba4fe0505ab0807df57e51020',1,'moc_predefs.h']]], + ['_5f_5futq_5ffbit_5f_5f_1253',['__UTQ_FBIT__',['../moc__predefs_8h.html#ad61e6ae874c4687f0c2d31ae1095a110',1,'moc_predefs.h']]], + ['_5f_5futq_5fibit_5f_5f_1254',['__UTQ_IBIT__',['../moc__predefs_8h.html#acc7db708461d0efef423bc9c3aa645c4',1,'moc_predefs.h']]], + ['_5f_5fversion_5f_5f_1255',['__VERSION__',['../moc__predefs_8h.html#a5b753f1dbbed79a7126b24ca512246d5',1,'moc_predefs.h']]], + ['_5f_5fvfp_5ffp_5f_5f_1256',['__VFP_FP__',['../moc__predefs_8h.html#a430c761265b6ca716c3686bad5c43f45',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fmax_5f_5f_1257',['__WCHAR_MAX__',['../moc__predefs_8h.html#a65ac8cd0434319a3a31dc031409c218a',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fmin_5f_5f_1258',['__WCHAR_MIN__',['../moc__predefs_8h.html#a01b915d3ec5439de746f1d5e9f76dc3d',1,'moc_predefs.h']]], + ['_5f_5fwchar_5ftype_5f_5f_1259',['__WCHAR_TYPE__',['../moc__predefs_8h.html#a4f41dbe213ea9662c1fb0f5af562e363',1,'moc_predefs.h']]], + ['_5f_5fwchar_5funsigned_5f_5f_1260',['__WCHAR_UNSIGNED__',['../moc__predefs_8h.html#ac4ca588ceb885c4ec2579b162934241d',1,'moc_predefs.h']]], + ['_5f_5fwchar_5fwidth_5f_5f_1261',['__WCHAR_WIDTH__',['../moc__predefs_8h.html#aba008af276ac0e3f85d1479af98f62b0',1,'moc_predefs.h']]], + ['_5f_5fwint_5fmax_5f_5f_1262',['__WINT_MAX__',['../moc__predefs_8h.html#a8925e15bce319fa2f42c659f6a3e0199',1,'moc_predefs.h']]], + ['_5f_5fwint_5fmin_5f_5f_1263',['__WINT_MIN__',['../moc__predefs_8h.html#a135696718aa5b38e58be73aaece6654f',1,'moc_predefs.h']]], + ['_5f_5fwint_5ftype_5f_5f_1264',['__WINT_TYPE__',['../moc__predefs_8h.html#a1304d54dba90274495e0b09c9820927b',1,'moc_predefs.h']]], + ['_5f_5fwint_5fwidth_5f_5f_1265',['__WINT_WIDTH__',['../moc__predefs_8h.html#a5fa28f9bc424c535269b607039836f19',1,'moc_predefs.h']]], + ['_5fgnu_5fsource_1266',['_GNU_SOURCE',['../moc__predefs_8h.html#a369266c24eacffb87046522897a570d5',1,'moc_predefs.h']]], + ['_5fstdc_5fpredef_5fh_1267',['_STDC_PREDEF_H',['../moc__predefs_8h.html#a198efb9bd9b8de1c44f470b6c6ddf69d',1,'moc_predefs.h']]] +]; diff --git a/docs/search/defines_1.html b/docs/search/defines_1.html new file mode 100644 index 0000000..c49009c --- /dev/null +++ b/docs/search/defines_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_1.js b/docs/search/defines_1.js new file mode 100644 index 0000000..b23f1e1 --- /dev/null +++ b/docs/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['abi_5fid_1268',['ABI_ID',['../moc__predefs_8h.html#a12ae39ceaadaa474ba09d20fba083f68',1,'moc_predefs.h']]] +]; diff --git a/docs/search/defines_2.html b/docs/search/defines_2.html new file mode 100644 index 0000000..c551011 --- /dev/null +++ b/docs/search/defines_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_2.js b/docs/search/defines_2.js new file mode 100644 index 0000000..20871fa --- /dev/null +++ b/docs/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['base_1269',['BASE',['../_pulse_sensor_8h.html#a79bcfb6bde984f42d1124b068a509af7',1,'PulseSensor.h']]] +]; diff --git a/docs/search/defines_3.html b/docs/search/defines_3.html new file mode 100644 index 0000000..8c6d215 --- /dev/null +++ b/docs/search/defines_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_3.js b/docs/search/defines_3.js new file mode 100644 index 0000000..bb0afbe --- /dev/null +++ b/docs/search/defines_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['clockid_1270',['CLOCKID',['../_cpp_timer_8h.html#a2694a39dfd1fa087ca6f9f391c91dae7',1,'CppTimer.h']]] +]; diff --git a/docs/search/defines_4.html b/docs/search/defines_4.html new file mode 100644 index 0000000..f4afac1 --- /dev/null +++ b/docs/search/defines_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_4.js b/docs/search/defines_4.js new file mode 100644 index 0000000..bfb5b5c --- /dev/null +++ b/docs/search/defines_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linux_1271',['linux',['../moc__predefs_8h.html#aa092b0d4c1d4d4407b97024f6cb2820c',1,'moc_predefs.h']]] +]; diff --git a/docs/search/defines_5.html b/docs/search/defines_5.html new file mode 100644 index 0000000..8c40d12 --- /dev/null +++ b/docs/search/defines_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_5.js b/docs/search/defines_5.js new file mode 100644 index 0000000..94abcfc --- /dev/null +++ b/docs/search/defines_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['qt_5fcore_5flib_1272',['QT_CORE_LIB',['../moc__predefs_8h.html#a3fdaeff4a929898125f060b951479a85',1,'moc_predefs.h']]], + ['qt_5fgui_5flib_1273',['QT_GUI_LIB',['../moc__predefs_8h.html#a20aa38ff6d76d6980b3c6365892110f1',1,'moc_predefs.h']]], + ['qt_5fmoc_5fliteral_1274',['QT_MOC_LITERAL',['../moc__mainwindow_8cpp.html#a75bb9482d242cde0a06c9dbdc6b83abe',1,'moc_mainwindow.cpp']]], + ['qt_5fno_5fdebug_1275',['QT_NO_DEBUG',['../moc__predefs_8h.html#adf4502fefc73baefd4000330c54a52fa',1,'moc_predefs.h']]], + ['qt_5fprintsupport_5flib_1276',['QT_PRINTSUPPORT_LIB',['../moc__predefs_8h.html#ab0162c88021716c1e0de68c71b5b5c9c',1,'moc_predefs.h']]], + ['qt_5fwidgets_5flib_1277',['QT_WIDGETS_LIB',['../moc__predefs_8h.html#a3764f041b8bf4c5ebd0bf19c071f416c',1,'moc_predefs.h']]] +]; diff --git a/docs/search/defines_6.html b/docs/search/defines_6.html new file mode 100644 index 0000000..c6c0f48 --- /dev/null +++ b/docs/search/defines_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_6.js b/docs/search/defines_6.js new file mode 100644 index 0000000..d19b4b9 --- /dev/null +++ b/docs/search/defines_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sizeof_5fdptr_1278',['SIZEOF_DPTR',['../moc__predefs_8h.html#addad5b57ed33bc5c79361574d9e03c06',1,'moc_predefs.h']]], + ['spi_5fchan_1279',['SPI_CHAN',['../_pulse_sensor_8h.html#ae915de38397fbdc90276fa44e148c686',1,'PulseSensor.h']]] +]; diff --git a/docs/search/defines_7.html b/docs/search/defines_7.html new file mode 100644 index 0000000..81d2304 --- /dev/null +++ b/docs/search/defines_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/defines_7.js b/docs/search/defines_7.js new file mode 100644 index 0000000..58fdae0 --- /dev/null +++ b/docs/search/defines_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unix_1280',['unix',['../moc__predefs_8h.html#a4e65214f450ef6326b96b52e6dd5714b',1,'moc_predefs.h']]] +]; diff --git a/docs/search/enums_0.html b/docs/search/enums_0.html new file mode 100644 index 0000000..141fff5 --- /dev/null +++ b/docs/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js new file mode 100644 index 0000000..8d5a82b --- /dev/null +++ b/docs/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cpptimertype_5ft_800',['cppTimerType_t',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790a',1,'CppTimer.h']]] +]; diff --git a/docs/search/enumvalues_0.html b/docs/search/enumvalues_0.html new file mode 100644 index 0000000..0d131d9 --- /dev/null +++ b/docs/search/enumvalues_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_0.js b/docs/search/enumvalues_0.js new file mode 100644 index 0000000..aa5124e --- /dev/null +++ b/docs/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['oneshot_801',['ONESHOT',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aa2724fa87f252403cd2c93f7437f34fd5',1,'CppTimer.h']]] +]; diff --git a/docs/search/enumvalues_1.html b/docs/search/enumvalues_1.html new file mode 100644 index 0000000..cd9187a --- /dev/null +++ b/docs/search/enumvalues_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/enumvalues_1.js b/docs/search/enumvalues_1.js new file mode 100644 index 0000000..ba3b6ae --- /dev/null +++ b/docs/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['periodic_802',['PERIODIC',['../_cpp_timer_8h.html#a110d07ab6a96d7815149d3d95435790aae4379d044711537d9ce3b3b58c575c58',1,'CppTimer.h']]] +]; diff --git a/docs/search/files_0.html b/docs/search/files_0.html new file mode 100644 index 0000000..9498842 --- /dev/null +++ b/docs/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_0.js b/docs/search/files_0.js new file mode 100644 index 0000000..7493c93 --- /dev/null +++ b/docs/search/files_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['cpptimer_2ecpp_653',['CppTimer.cpp',['../_cpp_timer_8cpp.html',1,'']]], + ['cpptimer_2eh_654',['CppTimer.h',['../_cpp_timer_8h.html',1,'']]], + ['cpptimercallback_2eh_655',['CppTimerCallback.h',['../_cpp_timer_callback_8h.html',1,'']]] +]; diff --git a/docs/search/files_1.html b/docs/search/files_1.html new file mode 100644 index 0000000..7050ef4 --- /dev/null +++ b/docs/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_1.js b/docs/search/files_1.js new file mode 100644 index 0000000..f944529 --- /dev/null +++ b/docs/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['json_5ffastcgi_5fweb_5fapi_2eh_656',['json_fastcgi_web_api.h',['../json__fastcgi__web__api_8h.html',1,'']]] +]; diff --git a/docs/search/files_2.html b/docs/search/files_2.html new file mode 100644 index 0000000..497cdf5 --- /dev/null +++ b/docs/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_2.js b/docs/search/files_2.js new file mode 100644 index 0000000..5d1c495 --- /dev/null +++ b/docs/search/files_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['main_2ecpp_657',['main.cpp',['../main_8cpp.html',1,'']]], + ['mainwindow_2ecpp_658',['mainwindow.cpp',['../mainwindow_8cpp.html',1,'']]], + ['mainwindow_2eh_659',['mainwindow.h',['../mainwindow_8h.html',1,'']]], + ['mainwindowdemo_2ecpp_660',['mainwindowdemo.cpp',['../mainwindowdemo_8cpp.html',1,'']]], + ['moc_5fmainwindow_2ecpp_661',['moc_mainwindow.cpp',['../moc__mainwindow_8cpp.html',1,'']]], + ['moc_5fpredefs_2eh_662',['moc_predefs.h',['../moc__predefs_8h.html',1,'']]], + ['mocs_5fcompilation_2ecpp_663',['mocs_compilation.cpp',['../mocs__compilation_8cpp.html',1,'']]] +]; diff --git a/docs/search/files_3.html b/docs/search/files_3.html new file mode 100644 index 0000000..1ba106b --- /dev/null +++ b/docs/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_3.js b/docs/search/files_3.js new file mode 100644 index 0000000..8100430 --- /dev/null +++ b/docs/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pulsesensor_2eh_664',['PulseSensor.h',['../_pulse_sensor_8h.html',1,'']]] +]; diff --git a/docs/search/files_4.html b/docs/search/files_4.html new file mode 100644 index 0000000..753b7b1 --- /dev/null +++ b/docs/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_4.js b/docs/search/files_4.js new file mode 100644 index 0000000..379ca73 --- /dev/null +++ b/docs/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_2emd_665',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]] +]; diff --git a/docs/search/files_5.html b/docs/search/files_5.html new file mode 100644 index 0000000..7b6affd --- /dev/null +++ b/docs/search/files_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_5.js b/docs/search/files_5.js new file mode 100644 index 0000000..aef76f5 --- /dev/null +++ b/docs/search/files_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['structure_2emd_666',['STRUCTURE.md',['../_s_t_r_u_c_t_u_r_e_8md.html',1,'']]] +]; diff --git a/docs/search/files_6.html b/docs/search/files_6.html new file mode 100644 index 0000000..802ebf7 --- /dev/null +++ b/docs/search/files_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_6.js b/docs/search/files_6.js new file mode 100644 index 0000000..b31f381 --- /dev/null +++ b/docs/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['livereading_2ephp_227',['liveReading.php',['../live_reading_8php.html',1,'']]] +]; diff --git a/docs/search/files_7.html b/docs/search/files_7.html new file mode 100644 index 0000000..365e648 --- /dev/null +++ b/docs/search/files_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_7.js b/docs/search/files_7.js new file mode 100644 index 0000000..4ecaf1b --- /dev/null +++ b/docs/search/files_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['main_2ecpp_228',['main.cpp',['../main_8cpp.html',1,'']]], + ['mainwindow_2ecpp_229',['mainwindow.cpp',['../mainwindow_8cpp.html',1,'']]], + ['mainwindow_2eh_230',['mainwindow.h',['../mainwindow_8h.html',1,'']]], + ['mainwindowdemo_2ecpp_231',['mainwindowdemo.cpp',['../mainwindowdemo_8cpp.html',1,'']]], + ['musicchoice_2ephp_232',['musicChoice.php',['../music_choice_8php.html',1,'']]] +]; diff --git a/docs/search/files_8.html b/docs/search/files_8.html new file mode 100644 index 0000000..3df0f2f --- /dev/null +++ b/docs/search/files_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_8.js b/docs/search/files_8.js new file mode 100644 index 0000000..7958641 --- /dev/null +++ b/docs/search/files_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['paginator_2ephp_233',['paginator.php',['../paginator_8php.html',1,'']]], + ['pulsesensor_2eh_234',['PulseSensor.h',['../_pulse_sensor_8h.html',1,'']]] +]; diff --git a/docs/search/files_9.html b/docs/search/files_9.html new file mode 100644 index 0000000..52f8b6c --- /dev/null +++ b/docs/search/files_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_9.js b/docs/search/files_9.js new file mode 100644 index 0000000..a7fee46 --- /dev/null +++ b/docs/search/files_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['readme_2emd_235',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['readme_2emd_236',['readme.md',['../frontend_2database_2_r_e_a_d_m_e_8md.html',1,'(Global Namespace)'],['../_r_e_a_d_m_e_8md.html',1,'(Global Namespace)']]] +]; diff --git a/docs/search/files_a.html b/docs/search/files_a.html new file mode 100644 index 0000000..11d4c11 --- /dev/null +++ b/docs/search/files_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/files_a.js b/docs/search/files_a.js new file mode 100644 index 0000000..fe2a963 --- /dev/null +++ b/docs/search/files_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['startapplication_2ephp_237',['startApplication.php',['../start_application_8php.html',1,'']]], + ['sucess_2ephp_238',['sucess.php',['../sucess_8php.html',1,'']]] +]; diff --git a/docs/search/functions_0.html b/docs/search/functions_0.html new file mode 100644 index 0000000..eb4c501 --- /dev/null +++ b/docs/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js new file mode 100644 index 0000000..08e9013 --- /dev/null +++ b/docs/search/functions_0.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['add_667',['add',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a191efd00967cbace0d9ddfedea39cd9b',1,'JSONCGIHandler::JSONGenerator::add(std::string key, std::string value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#aa25099deb2442335298ab1c021f36910',1,'JSONCGIHandler::JSONGenerator::add(std::string key, double value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a2192849b22341653a138bb63da6c6c9a',1,'JSONCGIHandler::JSONGenerator::add(std::string key, float value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afc3e9374b0e49ca1f701bd22bbd4cd92',1,'JSONCGIHandler::JSONGenerator::add(std::string key, long value)'],['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a87fe5c75b46f9822255535a61f15ad4b',1,'JSONCGIHandler::JSONGenerator::add(std::string key, int value)']]], + ['addrandomgraph_668',['addRandomGraph',['../class_main_window.html#adf836fa5cd0d1a80544f272fac06867f',1,'MainWindow']]], + ['addrealtimegraph_669',['addRealtimeGraph',['../class_main_window.html#a569f6854621f0b737fe75c3f4a85be5e',1,'MainWindow']]], + ['addrealtimesample_670',['addRealtimeSample',['../class_main_window.html#a249c355d9682742f0b2f0c4df3a889ba',1,'MainWindow']]], + ['analyzebeatsforsleep_671',['analyzeBeatsForSleep',['../class_sensor_timer.html#a36233c0d18fe087bbfcf3a37bdf6dcec',1,'SensorTimer']]], + ['audioprocess_672',['audioprocess',['../class_sensor_timer.html#adb180c4dab8ccaa5eae6870aa851f76a',1,'SensorTimer']]], + ['axislabeldoubleclick_673',['axisLabelDoubleClick',['../class_main_window.html#af5c159a4d57c57c6014b6892d14eb816',1,'MainWindow']]] +]; diff --git a/docs/search/functions_1.html b/docs/search/functions_1.html new file mode 100644 index 0000000..ef4088b --- /dev/null +++ b/docs/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js new file mode 100644 index 0000000..d1ed7f9 --- /dev/null +++ b/docs/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['beatsperminutesimulation_674',['beatsPerMinuteSimulation',['../class_sensor_timer.html#ae70a0da132083a8135a17903baa68059',1,'SensorTimer']]] +]; diff --git a/docs/search/functions_10.html b/docs/search/functions_10.html new file mode 100644 index 0000000..1bdc125 --- /dev/null +++ b/docs/search/functions_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js new file mode 100644 index 0000000..7dd23fc --- /dev/null +++ b/docs/search/functions_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecpptimer_720',['~CppTimer',['../class_cpp_timer.html#a91779a93fce7383a8d832ed481399342',1,'CppTimer']]], + ['_7ejsoncgihandler_721',['~JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/functions_11.html b/docs/search/functions_11.html new file mode 100644 index 0000000..188076e --- /dev/null +++ b/docs/search/functions_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js new file mode 100644 index 0000000..ec1bf13 --- /dev/null +++ b/docs/search/functions_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_7ecpptimer_296',['~CppTimer',['../class_cpp_timer.html#a91779a93fce7383a8d832ed481399342',1,'CppTimer']]], + ['_7ejsoncgihandler_297',['~JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html#a4817e428a962bdea68123f2d32671f30',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/functions_2.html b/docs/search/functions_2.html new file mode 100644 index 0000000..ca5aa10 --- /dev/null +++ b/docs/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js new file mode 100644 index 0000000..22e64eb --- /dev/null +++ b/docs/search/functions_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['callplot_675',['callPlot',['../class_main_window.html#a37fafd4b956df2afe979320e886e08b9',1,'MainWindow']]], + ['contextmenurequest_676',['contextMenuRequest',['../class_main_window.html#a9aa96a47567bb4c129c3c0ec88fff3a8',1,'MainWindow']]], + ['cpptimer_677',['CppTimer',['../class_cpp_timer.html#a300c3075e777cb4abdc09c9704ae6f87',1,'CppTimer']]] +]; diff --git a/docs/search/functions_3.html b/docs/search/functions_3.html new file mode 100644 index 0000000..d79f55b --- /dev/null +++ b/docs/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js new file mode 100644 index 0000000..fd4d6a8 --- /dev/null +++ b/docs/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['exec_678',['exec',['../class_j_s_o_n_c_g_i_handler.html#a42518cd5ad781476d299b50e4c4c0000',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/functions_4.html b/docs/search/functions_4.html new file mode 100644 index 0000000..1657cad --- /dev/null +++ b/docs/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js new file mode 100644 index 0000000..8d4b7c0 --- /dev/null +++ b/docs/search/functions_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['getcontenttype_679',['getContentType',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a4e1fee495ddeb4e24eaa5b8e767ea838',1,'JSONCGIHandler::GETCallback']]], + ['getjson_680',['getJSON',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#afec28cd80e562955e2cd8cdb92d86205',1,'JSONCGIHandler::JSONGenerator']]], + ['getjsonstring_681',['getJSONString',['../class_j_s_o_n_c_g_i_handler_1_1_g_e_t_callback.html#a2367bf5a5912e9e5599ee464e0846255',1,'JSONCGIHandler::GETCallback::getJSONString()'],['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a763ae66809e399f49e712a1ad68289bb',1,'JSONCGIADCCallback::getJSONString()']]], + ['getpulse_682',['getPulse',['../class_sensor_timer.html#a54d4119db865d1fd2bbff0fc8da67482',1,'SensorTimer']]], + ['graphclicked_683',['graphClicked',['../class_main_window.html#a8051aaa7fb3d933b24edfc2b3313fb9d',1,'MainWindow']]] +]; diff --git a/docs/search/functions_5.html b/docs/search/functions_5.html new file mode 100644 index 0000000..9301d6b --- /dev/null +++ b/docs/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js new file mode 100644 index 0000000..d5397b8 --- /dev/null +++ b/docs/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handler_684',['handler',['../class_cpp_timer.html#a88d7573281ac46871df398f1d85399b0',1,'CppTimer']]], + ['hassample_685',['hasSample',['../class_sensor_callback.html#a89069694af2123270caf56839ed22cdd',1,'SensorCallback::hasSample()'],['../class_s_e_n_s_o_rfastcgicallback.html#a554ef360acfa9d3659742697b2946f3a',1,'SENSORfastcgicallback::hasSample()']]] +]; diff --git a/docs/search/functions_6.html b/docs/search/functions_6.html new file mode 100644 index 0000000..9c4f5fc --- /dev/null +++ b/docs/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js new file mode 100644 index 0000000..e7e3b07 --- /dev/null +++ b/docs/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['initializevariablesforsleep_686',['initializeVariablesForSleep',['../class_sensor_timer.html#a042706c0c1ec146beb95e8f3947211fd',1,'SensorTimer']]], + ['initpulsesensorvariables_687',['initPulseSensorVariables',['../class_sensor_timer.html#a86849a9ab4dc5443cc93f96f00c29f6c',1,'SensorTimer']]] +]; diff --git a/docs/search/functions_7.html b/docs/search/functions_7.html new file mode 100644 index 0000000..46b5c0f --- /dev/null +++ b/docs/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js new file mode 100644 index 0000000..13a2338 --- /dev/null +++ b/docs/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['jsoncgiadccallback_688',['JSONCGIADCCallback',['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a9b02dfb7eadb7e9c8004f90bdc474e29',1,'JSONCGIADCCallback']]], + ['jsoncgihandler_689',['JSONCGIHandler',['../class_j_s_o_n_c_g_i_handler.html#a9bf5a96d13949d363225561ba6ac3b56',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/functions_8.html b/docs/search/functions_8.html new file mode 100644 index 0000000..31a1d95 --- /dev/null +++ b/docs/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js new file mode 100644 index 0000000..f66d152 --- /dev/null +++ b/docs/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kill_5fthe_5fpid_690',['kill_the_pid',['../class_sensor_timer.html#a26f5ab50413256c6b9523b8cbe5f6a84',1,'SensorTimer']]] +]; diff --git a/docs/search/functions_9.html b/docs/search/functions_9.html new file mode 100644 index 0000000..9a8e429 --- /dev/null +++ b/docs/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js new file mode 100644 index 0000000..488db67 --- /dev/null +++ b/docs/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['legenddoubleclick_691',['legendDoubleClick',['../class_main_window.html#afb15e4bd4206b7c4049ebf297f8c02bd',1,'MainWindow']]] +]; diff --git a/docs/search/functions_a.html b/docs/search/functions_a.html new file mode 100644 index 0000000..5ecc152 --- /dev/null +++ b/docs/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js new file mode 100644 index 0000000..3afe2ca --- /dev/null +++ b/docs/search/functions_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['main_692',['main',['../mainwindowdemo_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): mainwindowdemo.cpp'],['../main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): main.cpp']]], + ['mainwindow_693',['MainWindow',['../class_main_window.html#a8b244be8b7b7db1b08de2a2acb9409db',1,'MainWindow']]], + ['mousepress_694',['mousePress',['../class_main_window.html#a5b48e4b5e6ca0e866f09c2e7abf39468',1,'MainWindow']]], + ['mousewheel_695',['mouseWheel',['../class_main_window.html#abce189c4c57b052878c91f1f6428bba3',1,'MainWindow']]], + ['movelegend_696',['moveLegend',['../class_main_window.html#a617d177003ed61dba284913af30de1e5',1,'MainWindow']]] +]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html new file mode 100644 index 0000000..e301fed --- /dev/null +++ b/docs/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js new file mode 100644 index 0000000..8613a1c --- /dev/null +++ b/docs/search/functions_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['play_5faudio_697',['play_audio',['../class_sensor_timer.html#a03ec27b4291d6a2bdd84822415efe680',1,'SensorTimer']]], + ['postdecoder_698',['postDecoder',['../class_j_s_o_n_c_g_i_handler.html#a0f208af3dd050ed182967fe9cca42d78',1,'JSONCGIHandler']]], + ['poststring_699',['postString',['../class_j_s_o_n_c_g_i_handler_1_1_p_o_s_t_callback.html#a6cddb384a3fd9242b323cea3d82a6bb7',1,'JSONCGIHandler::POSTCallback']]] +]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html new file mode 100644 index 0000000..c4f3268 --- /dev/null +++ b/docs/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js new file mode 100644 index 0000000..d77431f --- /dev/null +++ b/docs/search/functions_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['registereventrunnable_700',['registerEventRunnable',['../class_cpp_timer_callback.html#ae6e815f1c3b65ea4f10fe0332e13acb9',1,'CppTimerCallback']]], + ['removeallgraphs_701',['removeAllGraphs',['../class_main_window.html#a7af3696afc3e0996f54803bc9e8a88de',1,'MainWindow']]], + ['removeselectedgraph_702',['removeSelectedGraph',['../class_main_window.html#addd0ecbc66696a8427539ea464a56c7d',1,'MainWindow']]], + ['run_703',['run',['../class_cpp_timer_callback_1_1_runnable.html#af8d11a3b580e76431151e76ac1886e6e',1,'CppTimerCallback::Runnable']]] +]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html new file mode 100644 index 0000000..7a1ed06 --- /dev/null +++ b/docs/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js new file mode 100644 index 0000000..5f74605 --- /dev/null +++ b/docs/search/functions_d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['selectionchanged_704',['selectionChanged',['../class_main_window.html#a91379bd45a0f0ed052dd43f976820874',1,'MainWindow']]], + ['sensewindow_705',['SenseWindow',['../class_sense_window.html#afb0c22b15152f699fcb1a4e1fd254f4b',1,'SenseWindow']]], + ['sensortimer_706',['SensorTimer',['../class_sensor_timer.html#afbfb91d0dc35bf217cb22f50d680b26e',1,'SensorTimer']]], + ['setcallback_707',['setCallback',['../class_sensor_timer.html#a2b87e348b476be96d88ee70be98bef11',1,'SensorTimer']]], + ['setnigttimetonow_708',['setNigtTimeToNow',['../class_sensor_timer.html#a571f7dcc621738e57607586cea71d302',1,'SensorTimer']]], + ['setperiodofsimulatedwave_709',['setPeriodOfSimulatedWave',['../class_sensor_timer.html#afa77fed86caa66cbff25f6f1599e6012',1,'SensorTimer']]], + ['setsurelyslepttime_710',['setSurelySleptTime',['../class_sensor_timer.html#ad8d148ba672bccb72ca45fea9b98fb38',1,'SensorTimer']]], + ['signalhandler_711',['signalHandler',['../main_8cpp.html#a8ee3282bc313e547dbbb8d4f4010db61',1,'main.cpp']]], + ['startms_712',['startms',['../class_cpp_timer.html#a1fec3e463138ab01f640aec9aafc14d0',1,'CppTimer']]], + ['startns_713',['startns',['../class_cpp_timer.html#a6c8df87a608c7722bb9900cf925f571b',1,'CppTimer']]], + ['stop_714',['stop',['../class_cpp_timer.html#a4bb95ddee98a536d0818b8f6096bf7e7',1,'CppTimer']]], + ['stopnew_715',['stopNew',['../class_sensor_timer.html#ab27fde0c17025181e3008d3246077bbc',1,'SensorTimer']]] +]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html new file mode 100644 index 0000000..22d2a6b --- /dev/null +++ b/docs/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js new file mode 100644 index 0000000..82346e5 --- /dev/null +++ b/docs/search/functions_e.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['timerevent_716',['timerEvent',['../class_cpp_timer.html#ac2665403595b6aee5f581d0ebfeb886c',1,'CppTimer::timerEvent()'],['../class_cpp_timer_callback.html#af6b39f5eb8e98bfc1b301ac3f25276e9',1,'CppTimerCallback::timerEvent()'],['../class_main_window.html#a1c7877c1ca466bd8034d88762ce2af9f',1,'MainWindow::timerEvent()'],['../class_sensor_timer.html#a6d15ff3f37f39e6baa43cf22a48263f2',1,'SensorTimer::timerEvent()'],['../class_sense_window.html#a43602e0dfc68a2ad1b46562e5af17fd7',1,'SenseWindow::timerEvent()']]], + ['titledoubleclick_717',['titleDoubleClick',['../class_main_window.html#a7a08729acae2d66f3a961aedc2843201',1,'MainWindow']]] +]; diff --git a/docs/search/functions_f.html b/docs/search/functions_f.html new file mode 100644 index 0000000..54b7dee --- /dev/null +++ b/docs/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js new file mode 100644 index 0000000..7b81bf7 --- /dev/null +++ b/docs/search/functions_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['unregistereventrunnable_718',['unregisterEventRunnable',['../class_cpp_timer_callback.html#a29d8d5a426a3d15bca8a42c2c897f50f',1,'CppTimerCallback']]], + ['usage_719',['usage',['../main_8cpp.html#ae8605e2b78cd4a81b6c6b5c30cb7366a',1,'main.cpp']]] +]; diff --git a/docs/search/mag_sel.svg b/docs/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/docs/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/search/nomatches.html b/docs/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/docs/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/search/pages_0.html b/docs/search/pages_0.html new file mode 100644 index 0000000..8517b48 --- /dev/null +++ b/docs/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js new file mode 100644 index 0000000..5baa617 --- /dev/null +++ b/docs/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['structure_1281',['Structure',['../md__s_t_r_u_c_t_u_r_e.html',1,'']]] +]; diff --git a/docs/search/pages_1.html b/docs/search/pages_1.html new file mode 100644 index 0000000..a0fb679 --- /dev/null +++ b/docs/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/pages_1.js b/docs/search/pages_1.js new file mode 100644 index 0000000..f7ac6bd --- /dev/null +++ b/docs/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_411',['readme',['../md_readme.html',1,'']]] +]; diff --git a/docs/search/search.css b/docs/search/search.css new file mode 100644 index 0000000..9074198 --- /dev/null +++ b/docs/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/search/search.js b/docs/search/search.js new file mode 100644 index 0000000..fb226f7 --- /dev/null +++ b/docs/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_0.js b/docs/search/variables_0.js new file mode 100644 index 0000000..e181724 --- /dev/null +++ b/docs/search/variables_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['amp_722',['amp',['../class_sensor_timer.html#a69302d73a34d1ac10dbbd4d17e46493c',1,'SensorTimer']]], + ['animdata_723',['animdata',['../class_main_window.html#a8a03063815634f96c67efff679eec7f1',1,'MainWindow']]], + ['audio_5fname_724',['audio_name',['../class_sensor_timer.html#a753287351e0381ca5d0d85df3078f762',1,'SensorTimer']]], + ['audio_5fpid_725',['audio_pid',['../class_sensor_timer.html#aaeec2579eba748d10fa8532311b20e99',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_1.html b/docs/search/variables_1.html new file mode 100644 index 0000000..ea73d9a --- /dev/null +++ b/docs/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_1.js b/docs/search/variables_1.js new file mode 100644 index 0000000..eb544bc --- /dev/null +++ b/docs/search/variables_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['beatsperminute_726',['beatsPerMinute',['../class_s_e_n_s_o_rfastcgicallback.html#a6b4105c78aed0f6d71feccb84dc1ffd6',1,'SENSORfastcgicallback']]], + ['bpm_727',['BPM',['../class_sensor_timer.html#a54c96b55f91d091b3f11d9f4f5aaa34a',1,'SensorTimer']]], + ['bpmthreshold_728',['bpmThreshold',['../class_sensor_timer.html#a4db914e2d73ffb3202aeb4fb3ffb3073',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_10.html b/docs/search/variables_10.html new file mode 100644 index 0000000..dc9920b --- /dev/null +++ b/docs/search/variables_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_10.js b/docs/search/variables_10.js new file mode 100644 index 0000000..3e513e6 --- /dev/null +++ b/docs/search/variables_10.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['t_787',['T',['../class_sensor_timer.html#ad78b1837ae8402db8111c1125d62c39a',1,'SensorTimer']]], + ['t_788',['t',['../class_main_window.html#a4a67c261262269dbbdf62c5acecd0f45',1,'MainWindow::t()'],['../class_s_e_n_s_o_rfastcgicallback.html#aaa260a6ca2f81d83f769b4c3ca6acc73',1,'SENSORfastcgicallback::t()']]], + ['thistime_789',['thisTime',['../class_sensor_timer.html#ab8ae36c7b7cb90c0b0d119e890489338',1,'SensorTimer']]], + ['thresh_790',['thresh',['../class_sensor_timer.html#a888dc3b1bf9bfb452c679bccb018a387',1,'SensorTimer']]], + ['threshold_791',['threshold',['../class_s_e_n_s_o_rfastcgicallback.html#ad48620809e828f35a6e6c0e7065f13aa',1,'SENSORfastcgicallback']]], + ['threshsetting_792',['threshSetting',['../class_sensor_timer.html#a6e26abccf69140ef3749f95dccbb60aa',1,'SensorTimer']]], + ['timeoutstart_793',['timeOutStart',['../class_sensor_timer.html#a884380525acb68dcbe88e55a48a37496',1,'SensorTimer']]], + ['timerid_794',['timerid',['../class_cpp_timer.html#a90ff764263fdde5a0f6e53429c8cf734',1,'CppTimer']]], + ['titletxt_795',['titleTxt',['../mainwindow_8cpp.html#a773d83c4ef02c0fe33e23e9133603c75',1,'mainwindow.cpp']]] +]; diff --git a/docs/search/variables_11.html b/docs/search/variables_11.html new file mode 100644 index 0000000..704bcb1 --- /dev/null +++ b/docs/search/variables_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_11.js b/docs/search/variables_11.js new file mode 100644 index 0000000..135c592 --- /dev/null +++ b/docs/search/variables_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['verticallayout_796',['verticalLayout',['../class_main_window.html#a27112d7db9fb5d46fe348f82ec04575c',1,'MainWindow']]], + ['verticallayout_5f2_797',['verticalLayout_2',['../class_main_window.html#aa832835ecf184b522debbaca68b1e93d',1,'MainWindow']]], + ['verticallayout_5f3_798',['verticalLayout_3',['../class_main_window.html#a5017c8d0c6c5a1dc9276ee000d417ab9',1,'MainWindow']]] +]; diff --git a/docs/search/variables_12.html b/docs/search/variables_12.html new file mode 100644 index 0000000..a3a32eb --- /dev/null +++ b/docs/search/variables_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_12.js b/docs/search/variables_12.js new file mode 100644 index 0000000..e8e50af --- /dev/null +++ b/docs/search/variables_12.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['waketime_799',['wakeTime',['../class_sensor_timer.html#a9edffcd5c781e8942f8570f2bfe8232d',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_13.html b/docs/search/variables_13.html new file mode 100644 index 0000000..7d05bd8 --- /dev/null +++ b/docs/search/variables_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_13.js b/docs/search/variables_13.js new file mode 100644 index 0000000..dea4c2b --- /dev/null +++ b/docs/search/variables_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['waketime_403',['wakeTime',['../class_sensor_timer.html#a9edffcd5c781e8942f8570f2bfe8232d',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_2.html b/docs/search/variables_2.html new file mode 100644 index 0000000..0580462 --- /dev/null +++ b/docs/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_2.js b/docs/search/variables_2.js new file mode 100644 index 0000000..e2f92f2 --- /dev/null +++ b/docs/search/variables_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['call_5ftime_5fperiod_729',['call_time_period',['../class_sensor_timer.html#a0ee1760c265760a66758a9845f179f53',1,'SensorTimer']]], + ['centralwidget_730',['centralWidget',['../class_main_window.html#ad3bde47a75b6c59146d6aff1752d077f',1,'MainWindow']]], + ['countdown_731',['countdown',['../class_sensor_timer.html#a6bb2773d68210a8d70742b118b84139f',1,'SensorTimer']]], + ['cpptimereventrunnable_732',['cppTimerEventRunnable',['../class_cpp_timer_callback.html#a578cc701cee7be10f3afab2859eac74f',1,'CppTimerCallback']]], + ['customplot_733',['customPlot',['../class_main_window.html#adf20eb4e3d56f3697d3668cda8219e56',1,'MainWindow']]] +]; diff --git a/docs/search/variables_3.html b/docs/search/variables_3.html new file mode 100644 index 0000000..0d69e76 --- /dev/null +++ b/docs/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_3.js b/docs/search/variables_3.js new file mode 100644 index 0000000..7db42cb --- /dev/null +++ b/docs/search/variables_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['data_734',['data',['../structqt__meta__stringdata___main_window__t.html#a1cbcf6789501827b3f67e89911745b83',1,'qt_meta_stringdata_MainWindow_t']]], + ['datarequeststart_735',['dataRequestStart',['../class_sensor_timer.html#a5e04d19d42170c73243dbcbbdedfdbc5',1,'SensorTimer']]], + ['dt_736',['dt',['../class_main_window.html#a9877316405a63e4d97dcc23973b57883',1,'MainWindow']]], + ['duration_737',['duration',['../class_sensor_timer.html#a1353e51d3e3db2f14a18afb14419c905',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_4.html b/docs/search/variables_4.html new file mode 100644 index 0000000..a4b6506 --- /dev/null +++ b/docs/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_4.js b/docs/search/variables_4.js new file mode 100644 index 0000000..eb5b5f0 --- /dev/null +++ b/docs/search/variables_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['elapsedtime_738',['elapsedTime',['../class_sensor_timer.html#a23904c4f9bc7b0ef8f39e9158da989a3',1,'SensorTimer']]], + ['eventcounter_739',['eventCounter',['../class_sensor_timer.html#ab410d5296b53f11c14037a0639d905ae',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_5.html b/docs/search/variables_5.html new file mode 100644 index 0000000..7e345d1 --- /dev/null +++ b/docs/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_5.js b/docs/search/variables_5.js new file mode 100644 index 0000000..099e402 --- /dev/null +++ b/docs/search/variables_5.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['firstbeat_740',['firstBeat',['../class_sensor_timer.html#a285de7aa2794270cbcf59144afd4746a',1,'SensorTimer']]], + ['firstentry_741',['firstEntry',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a9d14c80af92fa9f3a3406d826acd2cc0',1,'JSONCGIHandler::JSONGenerator']]], + ['firsttime_742',['firstTime',['../class_sensor_timer.html#a29b97782575a74a0d4bf7af50bad66cc',1,'SensorTimer']]], + ['frame_743',['frame',['../class_main_window.html#a1c0b4ea19f6a3fa99e1b2b5aaced3316',1,'MainWindow']]], + ['frame_5f2_744',['frame_2',['../class_main_window.html#a2922276b16afd8adc961e2feb0295aa7',1,'MainWindow']]] +]; diff --git a/docs/search/variables_6.html b/docs/search/variables_6.html new file mode 100644 index 0000000..7d48e75 --- /dev/null +++ b/docs/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_6.js b/docs/search/variables_6.js new file mode 100644 index 0000000..f3272a2 --- /dev/null +++ b/docs/search/variables_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['g_5frunning_745',['g_running',['../main_8cpp.html#a037aed45f792fc3e78387006be43a53e',1,'main.cpp']]], + ['getcallback_746',['getCallback',['../class_j_s_o_n_c_g_i_handler.html#a7c8b4a44e15ac57fe93b382e86899fa7',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/variables_7.html b/docs/search/variables_7.html new file mode 100644 index 0000000..5c26340 --- /dev/null +++ b/docs/search/variables_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_7.js b/docs/search/variables_7.js new file mode 100644 index 0000000..7ea630b --- /dev/null +++ b/docs/search/variables_7.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['ibi_747',['IBI',['../class_sensor_timer.html#abc1f4e1db59f4aa0dae5793c90740a84',1,'SensorTimer']]], + ['instructionstxt_748',['instructionsTxt',['../mainwindow_8cpp.html#ae78f4adc40f6a5315f05fc1ab3e69ecf',1,'mainwindow.cpp']]], + ['is_5faudio_5fplaying_749',['is_audio_playing',['../class_sensor_timer.html#ab9ea2c04c2ed4e36f2983ad441fa06d7',1,'SensorTimer']]], + ['is_5fsimulation_750',['is_simulation',['../class_sensor_timer.html#ace1263828012e5e2c0011ca5ee2d4ad8',1,'SensorTimer']]], + ['its_751',['its',['../class_cpp_timer.html#a8774fb5ba9af8f276874c1234741f106',1,'CppTimer']]] +]; diff --git a/docs/search/variables_8.html b/docs/search/variables_8.html new file mode 100644 index 0000000..dc9ec54 --- /dev/null +++ b/docs/search/variables_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_8.js b/docs/search/variables_8.js new file mode 100644 index 0000000..91e174a --- /dev/null +++ b/docs/search/variables_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['json_752',['json',['../class_j_s_o_n_c_g_i_handler_1_1_j_s_o_n_generator.html#a5a9fd42e7b9030c6a0a4bee923a2e416',1,'JSONCGIHandler::JSONGenerator']]] +]; diff --git a/docs/search/variables_9.html b/docs/search/variables_9.html new file mode 100644 index 0000000..7b01475 --- /dev/null +++ b/docs/search/variables_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js new file mode 100644 index 0000000..ce507f8 --- /dev/null +++ b/docs/search/variables_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['label_753',['label',['../class_main_window.html#a89e281849b9cf7d03662402c6bc6012c',1,'MainWindow']]], + ['lastbeattime_754',['lastBeatTime',['../class_sensor_timer.html#a4eeaf71d9a5f96e322b35081cf33f6e9',1,'SensorTimer']]], + ['lasttime_755',['lastTime',['../class_sensor_timer.html#a03ed20714879814e22e5641940e1c764',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_a.html b/docs/search/variables_a.html new file mode 100644 index 0000000..52a724d --- /dev/null +++ b/docs/search/variables_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_a.js b/docs/search/variables_a.js new file mode 100644 index 0000000..7e4d857 --- /dev/null +++ b/docs/search/variables_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['m_756',['m',['../class_sensor_timer.html#ac2688bda3961332bcb0a80a63be6c0f5',1,'SensorTimer']]], + ['mainthread_757',['mainThread',['../class_j_s_o_n_c_g_i_handler.html#aca513f708ae4dc76ba70196ff25da695',1,'JSONCGIHandler']]], + ['maybesleep_758',['maybeSleep',['../class_sensor_timer.html#a6aaa261915f03ad857544fd629607ea6',1,'SensorTimer']]], + ['menubar_759',['menuBar',['../class_main_window.html#a285395aec8fd01bec6bedcad73b86a55',1,'MainWindow']]] +]; diff --git a/docs/search/variables_b.html b/docs/search/variables_b.html new file mode 100644 index 0000000..f376b27 --- /dev/null +++ b/docs/search/variables_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js new file mode 100644 index 0000000..e7ac3df --- /dev/null +++ b/docs/search/variables_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['nighttime_760',['nightTime',['../class_sensor_timer.html#a4d29fdf6804a4777668d957a8333f9c6',1,'SensorTimer']]], + ['nrealtimepoints_761',['nRealtimePoints',['../class_main_window.html#ac3b757adfb6eff08e50a5017d12a48df',1,'MainWindow']]] +]; diff --git a/docs/search/variables_c.html b/docs/search/variables_c.html new file mode 100644 index 0000000..6019eba --- /dev/null +++ b/docs/search/variables_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js new file mode 100644 index 0000000..0d789f9 --- /dev/null +++ b/docs/search/variables_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['p_762',['P',['../class_sensor_timer.html#a9bf478f0366940dab46992b626eb6614',1,'SensorTimer']]], + ['period_5fof_5fsimulation_763',['period_of_simulation',['../class_sensor_timer.html#a05ab0c30d7e40d9045c21b0b115c392d',1,'SensorTimer']]], + ['play_5faudio_5flocally_764',['play_audio_locally',['../class_sensor_timer.html#ab8ae50b1ee64129594c15f056856c35f',1,'SensorTimer']]], + ['postcallback_765',['postCallback',['../class_j_s_o_n_c_g_i_handler.html#a09ee0f555db808d07c9ee9a575780553',1,'JSONCGIHandler']]], + ['pulse_766',['Pulse',['../class_sensor_timer.html#aaa0853dc77e341fcaf2f19bf968b4b4c',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_d.html b/docs/search/variables_d.html new file mode 100644 index 0000000..f61ae75 --- /dev/null +++ b/docs/search/variables_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_d.js b/docs/search/variables_d.js new file mode 100644 index 0000000..bfe699e --- /dev/null +++ b/docs/search/variables_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['qs_767',['QS',['../class_sensor_timer.html#a820b614d51dc988ae64219c133406f47',1,'SensorTimer']]] +]; diff --git a/docs/search/variables_e.html b/docs/search/variables_e.html new file mode 100644 index 0000000..7bfd372 --- /dev/null +++ b/docs/search/variables_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js new file mode 100644 index 0000000..36cc716 --- /dev/null +++ b/docs/search/variables_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['rate_768',['rate',['../class_sensor_timer.html#ab74c86309da203b069a991f8ca09ae0a',1,'SensorTimer']]], + ['request_769',['request',['../class_j_s_o_n_c_g_i_handler.html#a69dba19ef64e913fc7e969854be997c9',1,'JSONCGIHandler']]], + ['running_770',['running',['../class_j_s_o_n_c_g_i_handler.html#aefa19cd01b387693ef99c5aa0c5fc093',1,'JSONCGIHandler']]] +]; diff --git a/docs/search/variables_f.html b/docs/search/variables_f.html new file mode 100644 index 0000000..d97920d --- /dev/null +++ b/docs/search/variables_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/search/variables_f.js b/docs/search/variables_f.js new file mode 100644 index 0000000..c1074b7 --- /dev/null +++ b/docs/search/variables_f.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['sa_771',['sa',['../class_cpp_timer.html#a692a200df6d2c43b72ff1db76458f09f',1,'CppTimer']]], + ['samplecounter_772',['sampleCounter',['../class_sensor_timer.html#a7ba22ffafc2b42ae3cdff31d47525fcb',1,'SensorTimer']]], + ['secondbeat_773',['secondBeat',['../class_sensor_timer.html#a93f19ee800ea1f8b53d2bd9ca40374ab',1,'SensorTimer']]], + ['secondtime_774',['secondTime',['../class_sensor_timer.html#ac2de8ccb0d70b801574f962baae0a5cb',1,'SensorTimer']]], + ['sensorcallback_775',['sensorCallback',['../class_sensor_timer.html#ad58597d91c359dc772a970ee46ef2b8c',1,'SensorTimer']]], + ['sensorfastcgi_776',['sensorfastcgi',['../class_j_s_o_n_c_g_i_a_d_c_callback.html#a105866e87ab653c7cddfedba74149d42',1,'JSONCGIADCCallback']]], + ['sev_777',['sev',['../class_cpp_timer.html#a9860d3d723ad55982db50c9cde8d725a',1,'CppTimer']]], + ['signal_778',['Signal',['../class_sensor_timer.html#a73b3600a3b439a889ec2aefb6e9d406e',1,'SensorTimer::Signal()'],['../class_sense_window.html#ad97aff95e489210aaa4dec6fc03dd741',1,'SenseWindow::Signal()']]], + ['simulation_5fstarted_779',['simulation_started',['../class_sensor_timer.html#af524226ec78b66a274851119f7b00a2f',1,'SensorTimer']]], + ['sleep_780',['sleep',['../class_sensor_timer.html#a1bf0ef8c1667be0f111419322d196077',1,'SensorTimer::sleep()'],['../class_s_e_n_s_o_rfastcgicallback.html#aa667ff1226feb85d2684cc355ca6e644',1,'SENSORfastcgicallback::sleep()']]], + ['sock_5ffd_781',['sock_fd',['../class_j_s_o_n_c_g_i_handler.html#a6f696ff6856f32b3ba75a130fcbb8987',1,'JSONCGIHandler']]], + ['start_5fof_5fsimulation_782',['start_of_simulation',['../class_sensor_timer.html#a5b5f30f0afd6eb4a9df8f7b6b6869a6a',1,'SensorTimer']]], + ['startofprospectivesleep_783',['startOfProspectiveSleep',['../class_sensor_timer.html#ad2a424f227d18421cf94c86d7eb031be',1,'SensorTimer']]], + ['statusbar_784',['statusBar',['../class_main_window.html#a4a04910f3193303a44506b44521b61b0',1,'MainWindow']]], + ['stringdata0_785',['stringdata0',['../structqt__meta__stringdata___main_window__t.html#a2cbbb3f51dad6b92744bc95ac135e6ae',1,'qt_meta_stringdata_MainWindow_t']]], + ['surelyslepttime_786',['surelySleptTime',['../class_sensor_timer.html#a84505975df90206876681d89975faa52',1,'SensorTimer']]] +]; diff --git a/docs/splitbar.png b/docs/splitbar.png new file mode 100644 index 0000000..fe895f2 Binary files /dev/null and b/docs/splitbar.png differ diff --git a/docs/structqt__meta__stringdata___main_window__t.html b/docs/structqt__meta__stringdata___main_window__t.html new file mode 100644 index 0000000..e2033e1 --- /dev/null +++ b/docs/structqt__meta__stringdata___main_window__t.html @@ -0,0 +1,157 @@ + + + + + + + +DreamHacker: qt_meta_stringdata_MainWindow_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DreamHacker +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    qt_meta_stringdata_MainWindow_t Struct Reference
    +
    +
    +
    +Collaboration diagram for qt_meta_stringdata_MainWindow_t:
    +
    +
    Collaboration graph
    + + + + + +
    + + + + + + +

    +Data Fields

    QByteArrayData data [29]
     
    char stringdata0 [372]
     
    +

    Detailed Description

    +
    +

    Definition at line 23 of file moc_mainwindow.cpp.

    +

    Field Documentation

    + +

    ◆ data

    + +
    +
    + + + + +
    QByteArrayData qt_meta_stringdata_MainWindow_t::data[29]
    +
    + +

    Definition at line 24 of file moc_mainwindow.cpp.

    + +
    +
    + +

    ◆ stringdata0

    + +
    +
    + + + + +
    char qt_meta_stringdata_MainWindow_t::stringdata0[372]
    +
    + +

    Definition at line 25 of file moc_mainwindow.cpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/docs/structqt__meta__stringdata___main_window__t.js b/docs/structqt__meta__stringdata___main_window__t.js new file mode 100644 index 0000000..2d53f71 --- /dev/null +++ b/docs/structqt__meta__stringdata___main_window__t.js @@ -0,0 +1,5 @@ +var structqt__meta__stringdata___main_window__t = +[ + [ "data", "structqt__meta__stringdata___main_window__t.html#a1cbcf6789501827b3f67e89911745b83", null ], + [ "stringdata0", "structqt__meta__stringdata___main_window__t.html#a2cbbb3f51dad6b92744bc95ac135e6ae", null ] +]; \ No newline at end of file diff --git a/docs/structqt__meta__stringdata___main_window__t__coll__graph.map b/docs/structqt__meta__stringdata___main_window__t__coll__graph.map new file mode 100644 index 0000000..c9a0f51 --- /dev/null +++ b/docs/structqt__meta__stringdata___main_window__t__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/structqt__meta__stringdata___main_window__t__coll__graph.md5 b/docs/structqt__meta__stringdata___main_window__t__coll__graph.md5 new file mode 100644 index 0000000..7acc69e --- /dev/null +++ b/docs/structqt__meta__stringdata___main_window__t__coll__graph.md5 @@ -0,0 +1 @@ +8e66dab88244c1c73143cc83ef146d6d \ No newline at end of file diff --git a/docs/structqt__meta__stringdata___main_window__t__coll__graph.png b/docs/structqt__meta__stringdata___main_window__t__coll__graph.png new file mode 100644 index 0000000..7be0f05 Binary files /dev/null and b/docs/structqt__meta__stringdata___main_window__t__coll__graph.png differ diff --git a/docs/sync_off.png b/docs/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/docs/sync_off.png differ diff --git a/docs/sync_on.png b/docs/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/docs/sync_on.png differ diff --git a/docs/tab_a.png b/docs/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/docs/tab_a.png differ diff --git a/docs/tab_b.png b/docs/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/docs/tab_b.png differ diff --git a/docs/tab_h.png b/docs/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/docs/tab_h.png differ diff --git a/docs/tab_s.png b/docs/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/docs/tab_s.png differ diff --git a/docs/tabs.css b/docs/tabs.css new file mode 100644 index 0000000..85a0cd5 --- /dev/null +++ b/docs/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/drmhk_autogen/6YEA5652QU/moc_mainwindow.cpp b/drmhk_autogen/6YEA5652QU/moc_mainwindow.cpp new file mode 100644 index 0000000..bc5cab6 --- /dev/null +++ b/drmhk_autogen/6YEA5652QU/moc_mainwindow.cpp @@ -0,0 +1,214 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'mainwindow.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.11.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../../include/mainwindow.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'mainwindow.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.11.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_MainWindow_t { + QByteArrayData data[29]; + char stringdata0[372]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = { + { +QT_MOC_LITERAL(0, 0, 10), // "MainWindow" +QT_MOC_LITERAL(1, 11, 16), // "titleDoubleClick" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 12), // "QMouseEvent*" +QT_MOC_LITERAL(4, 42, 5), // "event" +QT_MOC_LITERAL(5, 48, 20), // "axisLabelDoubleClick" +QT_MOC_LITERAL(6, 69, 8), // "QCPAxis*" +QT_MOC_LITERAL(7, 78, 4), // "axis" +QT_MOC_LITERAL(8, 83, 23), // "QCPAxis::SelectablePart" +QT_MOC_LITERAL(9, 107, 4), // "part" +QT_MOC_LITERAL(10, 112, 17), // "legendDoubleClick" +QT_MOC_LITERAL(11, 130, 10), // "QCPLegend*" +QT_MOC_LITERAL(12, 141, 6), // "legend" +QT_MOC_LITERAL(13, 148, 22), // "QCPAbstractLegendItem*" +QT_MOC_LITERAL(14, 171, 4), // "item" +QT_MOC_LITERAL(15, 176, 16), // "selectionChanged" +QT_MOC_LITERAL(16, 193, 10), // "mousePress" +QT_MOC_LITERAL(17, 204, 10), // "mouseWheel" +QT_MOC_LITERAL(18, 215, 14), // "addRandomGraph" +QT_MOC_LITERAL(19, 230, 16), // "addRealtimeGraph" +QT_MOC_LITERAL(20, 247, 19), // "removeSelectedGraph" +QT_MOC_LITERAL(21, 267, 15), // "removeAllGraphs" +QT_MOC_LITERAL(22, 283, 18), // "contextMenuRequest" +QT_MOC_LITERAL(23, 302, 3), // "pos" +QT_MOC_LITERAL(24, 306, 10), // "moveLegend" +QT_MOC_LITERAL(25, 317, 12), // "graphClicked" +QT_MOC_LITERAL(26, 330, 21), // "QCPAbstractPlottable*" +QT_MOC_LITERAL(27, 352, 9), // "plottable" +QT_MOC_LITERAL(28, 362, 9) // "dataIndex" + + }, + "MainWindow\0titleDoubleClick\0\0QMouseEvent*\0" + "event\0axisLabelDoubleClick\0QCPAxis*\0" + "axis\0QCPAxis::SelectablePart\0part\0" + "legendDoubleClick\0QCPLegend*\0legend\0" + "QCPAbstractLegendItem*\0item\0" + "selectionChanged\0mousePress\0mouseWheel\0" + "addRandomGraph\0addRealtimeGraph\0" + "removeSelectedGraph\0removeAllGraphs\0" + "contextMenuRequest\0pos\0moveLegend\0" + "graphClicked\0QCPAbstractPlottable*\0" + "plottable\0dataIndex" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_MainWindow[] = { + + // content: + 7, // revision + 0, // classname + 0, 0, // classinfo + 13, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 1, 79, 2, 0x08 /* Private */, + 5, 2, 82, 2, 0x08 /* Private */, + 10, 2, 87, 2, 0x08 /* Private */, + 15, 0, 92, 2, 0x08 /* Private */, + 16, 0, 93, 2, 0x08 /* Private */, + 17, 0, 94, 2, 0x08 /* Private */, + 18, 0, 95, 2, 0x08 /* Private */, + 19, 0, 96, 2, 0x08 /* Private */, + 20, 0, 97, 2, 0x08 /* Private */, + 21, 0, 98, 2, 0x08 /* Private */, + 22, 1, 99, 2, 0x08 /* Private */, + 24, 0, 102, 2, 0x08 /* Private */, + 25, 2, 103, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, 0x80000000 | 3, 4, + QMetaType::Void, 0x80000000 | 6, 0x80000000 | 8, 7, 9, + QMetaType::Void, 0x80000000 | 11, 0x80000000 | 13, 12, 14, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::QPoint, 23, + QMetaType::Void, + QMetaType::Void, 0x80000000 | 26, QMetaType::Int, 27, 28, + + 0 // eod +}; + +void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + MainWindow *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->titleDoubleClick((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break; + case 1: _t->axisLabelDoubleClick((*reinterpret_cast< QCPAxis*(*)>(_a[1])),(*reinterpret_cast< QCPAxis::SelectablePart(*)>(_a[2]))); break; + case 2: _t->legendDoubleClick((*reinterpret_cast< QCPLegend*(*)>(_a[1])),(*reinterpret_cast< QCPAbstractLegendItem*(*)>(_a[2]))); break; + case 3: _t->selectionChanged(); break; + case 4: _t->mousePress(); break; + case 5: _t->mouseWheel(); break; + case 6: _t->addRandomGraph(); break; + case 7: _t->addRealtimeGraph(); break; + case 8: _t->removeSelectedGraph(); break; + case 9: _t->removeAllGraphs(); break; + case 10: _t->contextMenuRequest((*reinterpret_cast< QPoint(*)>(_a[1]))); break; + case 11: _t->moveLegend(); break; + case 12: _t->graphClicked((*reinterpret_cast< QCPAbstractPlottable*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 1: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QCPAxis* >(); break; + case 1: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QCPAxis::SelectablePart >(); break; + } + break; + case 2: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 1: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QCPAbstractLegendItem* >(); break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QCPLegend* >(); break; + } + break; + case 12: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QCPAbstractPlottable* >(); break; + } + break; + } + } +} + +QT_INIT_METAOBJECT const QMetaObject MainWindow::staticMetaObject = { + { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data, + qt_meta_data_MainWindow, qt_static_metacall, nullptr, nullptr} +}; + + +const QMetaObject *MainWindow::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *MainWindow::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 13) + qt_static_metacall(this, _c, _id, _a); + _id -= 13; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 13) + qt_static_metacall(this, _c, _id, _a); + _id -= 13; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/drmhk_autogen/moc_predefs.h b/drmhk_autogen/moc_predefs.h new file mode 100644 index 0000000..d5eeb23 --- /dev/null +++ b/drmhk_autogen/moc_predefs.h @@ -0,0 +1,474 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __HQ_FBIT__ 15 +#define __FLT32X_MAX_EXP__ 1024 +#define __cpp_attributes 200809 +#define __UINT_LEAST16_MAX__ 0xffff +#define __ARM_SIZEOF_WCHAR_T 4 +#define __ATOMIC_ACQUIRE 2 +#define __SFRACT_IBIT__ 0 +#define __FLT_MIN__ 1.1754943508222875e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __cpp_aggregate_nsdmi 201304 +#define __UFRACT_MAX__ 0XFFFFP-16UR +#define __UINT_LEAST8_TYPE__ unsigned char +#define __DQ_FBIT__ 63 +#define __INTMAX_C(c) c ## LL +#define __ARM_FEATURE_SAT 1 +#define __ULFRACT_FBIT__ 32 +#define __SACCUM_EPSILON__ 0x1P-7HK +#define __CHAR_BIT__ 8 +#define __USQ_IBIT__ 0 +#define __UINT8_MAX__ 0xff +#define __ACCUM_FBIT__ 15 +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 200410 +#define __USFRACT_FBIT__ 8 +#define QT_GUI_LIB 1 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __SIZE_MAX__ 0xffffffffU +#define __ARM_ARCH_ISA_ARM 1 +#define __WCHAR_MAX__ 0xffffffffU +#define __LACCUM_IBIT__ 32 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __DBL_DENORM_MIN__ double(4.9406564584124654e-324L) +#define __GCC_ATOMIC_CHAR_LOCK_FREE 1 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __unix__ 1 +#define __cpp_binary_literals 201304 +#define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK +#define __FLT64_DECIMAL_DIG__ 17 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __FRACT_FBIT__ 15 +#define __cpp_variadic_templates 200704 +#define __UINT_FAST64_MAX__ 0xffffffffffffffffULL +#define __SIG_ATOMIC_TYPE__ int +#define __UACCUM_FBIT__ 16 +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __ARMEL__ 1 +#define __cpp_variable_templates 201304 +#define __ARM_FEATURE_UNALIGNED 1 +#define __LFRACT_IBIT__ 0 +#define SIZEOF_DPTR (sizeof(void*)) +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT32_HAS_DENORM__ 1 +#define __LFRACT_MAX__ 0X7FFFFFFFP-31LR +#define __UINT_FAST8_MAX__ 0xff +#define __has_include(STR) __has_include__(STR) +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __INT_LEAST8_WIDTH__ 8 +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL +#define __SA_FBIT__ 15 +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.7976931348623157e+308L +#define __FRACT_MAX__ 0X7FFFP-15R +#define __UFRACT_FBIT__ 16 +#define __ARM_FP 12 +#define QT_NO_DEBUG 1 +#define __UFRACT_MIN__ 0.0UR +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 1 +#define __UINTMAX_TYPE__ long long unsigned int +#define __LLFRACT_EPSILON__ 0x1P-63LLR +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __CHAR_UNSIGNED__ 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR +#define __TA_IBIT__ 64 +#define __LDBL_MAX_EXP__ 1024 +#define __WINT_MIN__ 0U +#define __linux__ 1 +#define __INT_LEAST16_WIDTH__ 16 +#define __ULLFRACT_MIN__ 0.0ULLR +#define __SCHAR_MAX__ 0x7f +#define __WCHAR_MIN__ 0U +#define __INT64_C(c) c ## LL +#define __DBL_DIG__ 15 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK) +#define __SIZEOF_INT__ 4 +#define __SIZEOF_POINTER__ 4 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1 +#define __USACCUM_IBIT__ 8 +#define __USER_LABEL_PREFIX__ +#define __STDC_HOSTED__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __LFRACT_MIN__ (-0.5LR-0.5LR) +#define __HA_IBIT__ 8 +#define __FLT32_DIG__ 6 +#define __TQ_IBIT__ 0 +#define __FLT_EPSILON__ 1.1920928955078125e-7F +#define __APCS_32__ 1 +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __USFRACT_IBIT__ 0 +#define __LDBL_MIN__ 2.2250738585072014e-308L +#define __FRACT_MIN__ (-0.5R-0.5R) +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806 +#define __DA_IBIT__ 32 +#define __ARM_SIZEOF_MINIMAL_ENUM 4 +#define __FLT32X_HAS_INFINITY__ 1 +#define __INT32_MAX__ 0x7fffffff +#define __UQQ_FBIT__ 8 +#define __INT_WIDTH__ 32 +#define __SIZEOF_LONG__ 4 +#define __UACCUM_MAX__ 0XFFFFFFFFP-16UK +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 32 +#define __DECIMAL_DIG__ 17 +#define __LFRACT_EPSILON__ 0x1P-31LR +#define __FLT64_EPSILON__ 2.2204460492503131e-16F64 +#define __ULFRACT_MIN__ 0.0ULR +#define __gnu_linux__ 1 +#define __INTMAX_WIDTH__ 64 +#define __FLT64_MIN_EXP__ (-1021) +#define __has_include_next(STR) __has_include_next__(STR) +#define __ARM_PCS_VFP 1 +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __ULACCUM_IBIT__ 32 +#define __FLT64_MANT_DIG__ 53 +#define __UACCUM_EPSILON__ 0x1P-16UK +#define __GNUC__ 8 +#define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK +#define __GXX_RTTI 1 +#define __cpp_delegating_constructors 200604 +#define __HQ_IBIT__ 0 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 8 +#define __BIGGEST_ALIGNMENT__ 8 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __GNUC_STDC_INLINE__ 1 +#define __DQ_IBIT__ 0 +#define __FLT32_HAS_INFINITY__ 1 +#define __DBL_MAX__ double(1.7976931348623157e+308L) +#define __ULFRACT_IBIT__ 0 +#define __cpp_raw_strings 200710 +#define __INT_FAST32_MAX__ 0x7fffffff +#define __DBL_HAS_INFINITY__ 1 +#define __ACCUM_IBIT__ 16 +#define __DEC32_MIN_EXP__ (-94) +#define __THUMB_INTERWORK__ 1 +#define __INTPTR_WIDTH__ 32 +#define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ int +#define __LDBL_HAS_DENORM__ 1 +#define QT_WIDGETS_LIB 1 +#define __ARM_FEATURE_LDREX 4 +#define __cplusplus 201402L +#define __cpp_ref_qualifiers 200710 +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __DEC32_MIN__ 1E-95DF +#define __ACCUM_MAX__ 0X7FFFFFFFP-15K +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610 +#define __DBL_MAX_EXP__ 1024 +#define __USACCUM_EPSILON__ 0x1P-8UHK +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.4028234663852886e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __SFRACT_MAX__ 0X7FP-7HR +#define __FRACT_IBIT__ 0 +#define __PTRDIFF_MAX__ 0x7fffffff +#define __UACCUM_MIN__ 0.0UK +#define __UACCUM_IBIT__ 16 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __GNUG__ 8 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 4 +#define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK +#define __cpp_rvalue_reference 200610 +#define __cpp_nsdmi 200809 +#define __SIZEOF_WINT_T__ 4 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806 +#define __FLT32_MAX_EXP__ 128 +#define ABI_ID "ELF" +#define __SA_IBIT__ 16 +#define __ULLACCUM_MIN__ 0.0ULLK +#define __cpp_hex_float 201603 +#define __GXX_ABI_VERSION 1013 +#define __UTA_FBIT__ 64 +#define __FLT_MIN_EXP__ (-125) +#define __USFRACT_MAX__ 0XFFP-8UHR +#define __UFRACT_IBIT__ 0 +#define __cpp_lambdas 200907 +#define __ARM_FEATURE_QBIT 1 +#define __INT_FAST64_TYPE__ long long int +#define __FLT64_DENORM_MIN__ 4.9406564584124654e-324F64 +#define __DBL_MIN__ double(2.2250738585072014e-308L) +#define __FLT32X_EPSILON__ 2.2204460492503131e-16F32x +#define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK) +#define __ULLACCUM_FBIT__ 32 +#define __GXX_TYPEINFO_EQUALITY_INLINE 0 +#define __FLT64_MIN_10_EXP__ (-307) +#define __ULLFRACT_EPSILON__ 0x1P-64ULLR +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __DBL_HAS_DENORM__ 1 +#define __ACCUM_MIN__ (-0X1P15K-0X1P15K) +#define __SQ_IBIT__ 0 +#define __FLT32_MIN__ 1.1754943508222875e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __UHA_FBIT__ 8 +#define __NO_INLINE__ 1 +#define __SFRACT_MIN__ (-0.5HR-0.5HR) +#define __UTQ_FBIT__ 128 +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 17 +#define __VERSION__ "8.3.0" +#define __UINT64_C(c) c ## ULL +#define __ULLFRACT_FBIT__ 64 +#define __cpp_unicode_characters 200704 +#define __FRACT_EPSILON__ 0x1P-15R +#define __ULACCUM_MIN__ 0.0ULK +#define _STDC_PREDEF_H 1 +#define __UDA_FBIT__ 32 +#define __cpp_decltype_auto 201304 +#define __LLACCUM_EPSILON__ 0x1P-31LLK +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __USFRACT_MIN__ 0.0UHR +#define __ULLACCUM_IBIT__ 32 +#define __UQQ_IBIT__ 0 +#define __STDC_IEC_559_COMPLEX__ 1 +#define __SCHAR_WIDTH__ 8 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __UHQ_FBIT__ 16 +#define __LLACCUM_FBIT__ 31 +#define __FLT32_MAX_10_EXP__ 38 +#define __INT_FAST32_TYPE__ int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define unix 1 +#define __INT16_MAX__ 0x7fff +#define __cpp_rtti 199711 +#define __SIZE_TYPE__ unsigned int +#define __UINT64_MAX__ 0xffffffffffffffffULL +#define __UDQ_FBIT__ 64 +#define __INT8_TYPE__ signed char +#define __cpp_digit_separators 201309 +#define __ELF__ 1 +#define __ULFRACT_EPSILON__ 0x1P-32ULR +#define __LLFRACT_FBIT__ 63 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 2.2204460492503131e-16L +#define __UINTMAX_C(c) c ## ULL +#define __SACCUM_MAX__ 0X7FFFP-7HK +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __VFP_FP__ 1 +#define __SIZEOF_PTRDIFF_T__ 4 +#define __FLT32X_MANT_DIG__ 53 +#define __LACCUM_EPSILON__ 0x1P-31LK +#define __FLT32X_MIN_EXP__ (-1021) +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffff +#define __ARM_ARCH_6__ 1 +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffU +#define __UINT_LEAST64_TYPE__ long long unsigned int +#define __USACCUM_MAX__ 0XFFFFP-8UHK +#define __SFRACT_EPSILON__ 0x1P-7HR +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffL +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __unix 1 +#define __cpp_unicode_literals 200710 +#define __USA_FBIT__ 16 +#define __UINT_FAST16_TYPE__ unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __ARM_32BIT_STATE 1 +#define __INT_FAST32_WIDTH__ 32 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 32 +#define __INT_LEAST16_MAX__ 0x7fff +#define __DEC64_MANT_DIG__ 16 +#define __INT64_MAX__ 0x7fffffffffffffffLL +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __SACCUM_FBIT__ 7 +#define __FLT32_DENORM_MIN__ 1.4012984643248171e-45F32 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long long int +#define __ARM_FEATURE_CLZ 1 +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __SQ_FBIT__ 31 +#define __DEC32_MAX_EXP__ 97 +#define __ARM_ARCH_ISA_THUMB 1 +#define __INT_FAST8_MAX__ 0x7f +#define __ARM_ARCH 6 +#define __INTPTR_MAX__ 0x7fffffff +#define __cpp_sized_deallocation 201309 +#define __QQ_FBIT__ 7 +#define linux 1 +#define __cpp_range_based_for 200907 +#define __UTA_IBIT__ 64 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __EXCEPTIONS 1 +#define __LDBL_MANT_DIG__ 53 +#define __SFRACT_FBIT__ 7 +#define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK) +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT64_HAS_INFINITY__ 1 +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __cpp_return_type_deduction 201304 +#define __INTPTR_TYPE__ int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ unsigned int +#define __SIZEOF_FLOAT__ 4 +#define __USQ_FBIT__ 32 +#define __UINTPTR_MAX__ 0xffffffffU +#define __INT_FAST64_WIDTH__ 64 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype 200707 +#define __FLT32_DECIMAL_DIG__ 9 +#define __INT_FAST64_MAX__ 0x7fffffffffffffffLL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_DIG__ 6 +#define __UINT_FAST64_TYPE__ long long unsigned int +#define __INT_MAX__ 0x7fffffff +#define __LACCUM_FBIT__ 31 +#define __USACCUM_MIN__ 0.0UHK +#define __UHA_IBIT__ 8 +#define __INT64_TYPE__ long long int +#define __FLT_MAX_EXP__ 128 +#define __UTQ_IBIT__ 0 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511 +#define QT_CORE_LIB 1 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __ULLFRACT_IBIT__ 0 +#define __LDBL_MIN_EXP__ (-1021) +#define __arm__ 1 +#define __FLT64_MAX__ 1.7976931348623157e+308F64 +#define __UDA_IBIT__ 32 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST8_MAX__ 0x7f +#define __FLT32X_MAX_10_EXP__ 308 +#define __LFRACT_FBIT__ 31 +#define __WCHAR_UNSIGNED__ 1 +#define __LDBL_MAX_10_EXP__ 308 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.2204460492503131e-16L) +#define __ARM_FEATURE_SIMD32 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __INT_LEAST32_TYPE__ int +#define __SIZEOF_WCHAR_T__ 4 +#define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR +#define __TQ_FBIT__ 127 +#define __INT_FAST8_TYPE__ signed char +#define __ULLACCUM_EPSILON__ 0x1P-32ULLK +#define __UHQ_IBIT__ 0 +#define __ARM_FEATURE_COPROC 15 +#define __LLACCUM_IBIT__ 32 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.1920928955078125e-7F32 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT32X_MAX__ 1.7976931348623157e+308F32x +#define __TA_FBIT__ 63 +#define __UDQ_IBIT__ 0 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __cpp_runtime_arrays 198712 +#define __UINT64_TYPE__ long long unsigned int +#define __ACCUM_EPSILON__ 0x1P-15K +#define __UINT32_C(c) c ## U +#define __INTMAX_MAX__ 0x7fffffffffffffffLL +#define __cpp_alias_templates 200704 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT_DENORM_MIN__ 1.4012984643248171e-45F +#define __LLFRACT_IBIT__ 0 +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 32 +#define __UINT_FAST32_TYPE__ unsigned int +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.4028234663852886e+38F +#define __cpp_constexpr 201304 +#define __USACCUM_FBIT__ 8 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711 +#define __FLT_MIN_10_EXP__ (-37) +#define __UFRACT_EPSILON__ 0x1P-16UR +#define __FLT64_MIN__ 2.2250738585072014e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long long int +#define __DEC128_MAX_EXP__ 6145 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __INT_FAST16_WIDTH__ 32 +#define __UINTMAX_MAX__ 0xffffffffffffffffULL +#define __DEC32_MANT_DIG__ 7 +#define __FLT32X_DENORM_MIN__ 4.9406564584124654e-324F32x +#define __HA_FBIT__ 7 +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L +#define __INT16_C(c) c +#define __cpp_generic_lambdas 201304 +#define __STDC__ 1 +#define __FLT32X_DIG__ 15 +#define __PTRDIFF_TYPE__ int +#define __LLFRACT_MIN__ (-0.5LLR-0.5LLR) +#define __ATOMIC_SEQ_CST 5 +#define __DA_FBIT__ 31 +#define __UINT32_TYPE__ unsigned int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ unsigned int +#define __USA_IBIT__ 16 +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __ARM_EABI__ 1 +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-307) +#define __SIZEOF_LONG_LONG__ 8 +#define __ULACCUM_EPSILON__ 0x1P-32ULK +#define __cpp_user_defined_literals 200809 +#define __SACCUM_IBIT__ 8 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 1 +#define __FLT32X_MIN__ 2.2250738585072014e-308F32x +#define __LDBL_DIG__ 15 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffU +#define __GCC_ATOMIC_SHORT_LOCK_FREE 1 +#define QT_PRINTSUPPORT_LIB 1 +#define __INT_LEAST64_WIDTH__ 64 +#define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __USFRACT_EPSILON__ 0x1P-8UHR +#define __ULACCUM_FBIT__ 32 +#define __ARM_FEATURE_DSP 1 +#define __QQ_IBIT__ 0 +#define __cpp_init_captures 201304 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/drmhk_autogen/mocs_compilation.cpp b/drmhk_autogen/mocs_compilation.cpp new file mode 100644 index 0000000..2df8a1b --- /dev/null +++ b/drmhk_autogen/mocs_compilation.cpp @@ -0,0 +1,2 @@ +// This file is autogenerated. Changes will be overwritten. +#include "6YEA5652QU/moc_mainwindow.cpp" diff --git a/frontend/audio/Fracture.mp3 b/frontend/audio/Fracture.mp3 new file mode 100644 index 0000000..111e459 Binary files /dev/null and b/frontend/audio/Fracture.mp3 differ diff --git a/frontend/audio/In My Time.mp3 b/frontend/audio/In My Time.mp3 new file mode 100644 index 0000000..6427df3 Binary files /dev/null and b/frontend/audio/In My Time.mp3 differ diff --git a/UI/code/audio/Just_The_Two_Of_Us.mp3 b/frontend/audio/Just The Two Of Us.mp3 similarity index 100% rename from UI/code/audio/Just_The_Two_Of_Us.mp3 rename to frontend/audio/Just The Two Of Us.mp3 diff --git a/frontend/audio/Just_The_Two_Of_Us.mp3 b/frontend/audio/Just_The_Two_Of_Us.mp3 new file mode 100644 index 0000000..99c0147 Binary files /dev/null and b/frontend/audio/Just_The_Two_Of_Us.mp3 differ diff --git a/frontend/audio/Sleep Music.mp3 b/frontend/audio/Sleep Music.mp3 new file mode 100644 index 0000000..4061ff3 Binary files /dev/null and b/frontend/audio/Sleep Music.mp3 differ diff --git a/frontend/audio/Sunday Vibes.mp3 b/frontend/audio/Sunday Vibes.mp3 new file mode 100644 index 0000000..3253464 Binary files /dev/null and b/frontend/audio/Sunday Vibes.mp3 differ diff --git a/frontend/audio/Sunny.mp3 b/frontend/audio/Sunny.mp3 new file mode 100644 index 0000000..df7330a Binary files /dev/null and b/frontend/audio/Sunny.mp3 differ diff --git a/frontend/audio/Sunset at the Veranda.mp3 b/frontend/audio/Sunset at the Veranda.mp3 new file mode 100644 index 0000000..832aebb Binary files /dev/null and b/frontend/audio/Sunset at the Veranda.mp3 differ diff --git a/frontend/audio/Viento Estelar.mp3 b/frontend/audio/Viento Estelar.mp3 new file mode 100644 index 0000000..5e3d66e Binary files /dev/null and b/frontend/audio/Viento Estelar.mp3 differ diff --git a/frontend/audioPlayer.php b/frontend/audioPlayer.php new file mode 100644 index 0000000..22c47b4 --- /dev/null +++ b/frontend/audioPlayer.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/UI/code/css/main.css b/frontend/css/main.css similarity index 71% rename from UI/code/css/main.css rename to frontend/css/main.css index bf248bc..d715f58 100644 --- a/UI/code/css/main.css +++ b/frontend/css/main.css @@ -37,3 +37,19 @@ mainPoint { text-align: center; border: 1px dotted grey; } + + footer { + position: fixed; + left: 0; + bottom: 0; + width: 100%; + text-align: center; + } + + .centered { + position: fixed; + top: 50%; + left: 50%; + /* bring your own prefixes */ + transform: translate(-50%, -50%); +} diff --git a/frontend/database/db.php b/frontend/database/db.php new file mode 100644 index 0000000..cd08479 --- /dev/null +++ b/frontend/database/db.php @@ -0,0 +1,27 @@ +error); + + +/* Connect to MySQL +$conn = new mysqli($$host, $$user, $pass); +if ($conn->connect_error) { + die("Connection failed: " . $conn->connect_error); +} + +// If database is not exist create one +if (!mysqli_select_db($conn,$db)){ + $sql = "CREATE DATABASE ".$db; + if ($conn->query($sql) === TRUE) { + echo "Database created successfully"; + }else { + echo "Error creating database: " . $conn->error; + } +} */ +?> + + diff --git a/frontend/database/dreamhacker.sql b/frontend/database/dreamhacker.sql new file mode 100644 index 0000000..eddf8af --- /dev/null +++ b/frontend/database/dreamhacker.sql @@ -0,0 +1,72 @@ +-- phpMyAdmin SQL Dump +-- version 4.8.5 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost +-- Generation Time: Apr 18, 2021 at 03:59 PM +-- Server version: 8.0.14 +-- PHP Version: 7.3.2RC1 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `dreamHacker` +-- +CREATE DATABASE IF NOT EXISTS `dreamHacker` DEFAULT CHARACTER SET utf32 COLLATE utf32_general_ci; +USE `dreamHacker`; + +-- -------------------------------------------------------- +-- +-- Table structure for table `audio` +-- + +CREATE TABLE IF NOT EXISTS `audio` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `song` varchar(100) DEFAULT 'default', + `location` varchar(150) DEFAULT 'audio/Just_The_Two_Of_Us.mp3', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf32; + +-- +-- Dumping data for table `audio` +-- + +INSERT INTO `audio` (`id`, `song`, `location`) VALUES +(2, 'Sleep Music', 'audio/Sleep Music.mp3'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `records` +-- + +CREATE TABLE IF NOT EXISTS `records` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `remSleep` int(11) NOT NULL DEFAULT '0', + `heartRate` int(3) NOT NULL, + `hrsSlept` int(3) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf32; + +-- +-- Dumping data for table `records` +-- + +INSERT INTO `records` (`id`, `remSleep`, `heartRate`, `hrsSlept`) VALUES +(1, 5, 82, 6); + +-- -------------------------------------------------------- + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/UI/code/database/readme.md b/frontend/database/readme.md similarity index 83% rename from UI/code/database/readme.md rename to frontend/database/readme.md index d8276e6..da6d258 100644 --- a/UI/code/database/readme.md +++ b/frontend/database/readme.md @@ -17,5 +17,5 @@ The four software above need to be installed on the raspbery. Instuctions can be # Installation Instructions - 1. Once all these have been installed create a databse in mysql called 'dreamHacker'. - 1. Then open db.php and add your username and password in the $user and $pass sections. \ No newline at end of file + 1. Once all these have been installed import dreamhacker.sql into mysql. + 1. Then open db.php and add your username and password in the $user and $pass sections. diff --git a/UI/code/functions/startApplication.php b/frontend/functions/calulcations.php similarity index 100% rename from UI/code/functions/startApplication.php rename to frontend/functions/calulcations.php diff --git a/UI/code/functions/paginator.php b/frontend/functions/paginator.php similarity index 100% rename from UI/code/functions/paginator.php rename to frontend/functions/paginator.php diff --git a/frontend/functions/startApplication.php b/frontend/functions/startApplication.php new file mode 100644 index 0000000..e69de29 diff --git a/UI/code/history.php b/frontend/history.php similarity index 95% rename from UI/code/history.php rename to frontend/history.php index a0be6d0..162abce 100644 --- a/UI/code/history.php +++ b/frontend/history.php @@ -1,5 +1,5 @@ - + + diff --git a/UI/code/index.php b/frontend/index.php similarity index 51% rename from UI/code/index.php rename to frontend/index.php index 47e2c0b..a1a30dc 100644 --- a/UI/code/index.php +++ b/frontend/index.php @@ -1,15 +1,7 @@ @@ -35,10 +27,10 @@ + + + + +
    +

    Dream Hacker

    + +
    + +
    +
    +
    + + +
    +

    Home

    +

    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/images/01-Nginx-default-screen.png b/images/01-Nginx-default-screen.png new file mode 100644 index 0000000..0360bc7 Binary files /dev/null and b/images/01-Nginx-default-screen.png differ diff --git a/images/CircuitDiagram.png b/images/CircuitDiagram.png new file mode 100644 index 0000000..72895c8 Binary files /dev/null and b/images/CircuitDiagram.png differ diff --git a/images/LogoDreamHacker.jpeg b/images/LogoDreamHacker.jpeg new file mode 100644 index 0000000..0d1d0a4 Binary files /dev/null and b/images/LogoDreamHacker.jpeg differ diff --git a/images/LogoDreamHacker.jpg b/images/LogoDreamHacker.jpg new file mode 100644 index 0000000..b149d5a Binary files /dev/null and b/images/LogoDreamHacker.jpg differ diff --git a/images/LogoDreamHacker.png b/images/LogoDreamHacker.png new file mode 100644 index 0000000..9d3fcfa Binary files /dev/null and b/images/LogoDreamHacker.png differ diff --git a/images/LogoDreamHacker.svg b/images/LogoDreamHacker.svg new file mode 100644 index 0000000..2ae8948 --- /dev/null +++ b/images/LogoDreamHacker.svg @@ -0,0 +1,895 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/analysis.png b/images/analysis.png new file mode 100644 index 0000000..28d554e Binary files /dev/null and b/images/analysis.png differ diff --git a/images/analysis2.png b/images/analysis2.png new file mode 100644 index 0000000..5372589 Binary files /dev/null and b/images/analysis2.png differ diff --git a/images/facebook.svg b/images/facebook.svg new file mode 100644 index 0000000..a578133 --- /dev/null +++ b/images/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/instagram.svg b/images/instagram.svg new file mode 100644 index 0000000..abfc7bd --- /dev/null +++ b/images/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/youtube.svg b/images/youtube.svg new file mode 100644 index 0000000..3a6dd40 --- /dev/null +++ b/images/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/CppTimer.h b/include/CppTimer.h similarity index 55% rename from CppTimer.h rename to include/CppTimer.h index 327fdd9..b015d21 100644 --- a/CppTimer.h +++ b/include/CppTimer.h @@ -5,7 +5,7 @@ * GNU GENERAL PUBLIC LICENSE * Version 3, 29 June 2007 * - * (C) 2020, Bernd Porr + * (C) 2020-2021, Bernd Porr * * This is inspired by the timer_create man page. **/ @@ -17,29 +17,32 @@ #include #define CLOCKID CLOCK_MONOTONIC -#define SIG SIGRTMIN - /** * Enumeration of CppTimer types - **/ -typedef enum cppTimerType_t{ + **/ +enum cppTimerType_t +{ PERIODIC, ONESHOT -}cppTimerType_t; +}; /** * Timer class which repeatedly fires. It's wrapper around the * POSIX per-process timer. **/ -class CppTimer { +class CppTimer +{ public: /** * Creates an instance of the timer and connects the - * signal handler to the timer. + * signal handler to the timer. The default signal which + * is being used is SIGRTMIN but can be changed to other + * signals if other processes / threads use them. + * @param signo The signal used by the timer. **/ - CppTimer(); + CppTimer(const int signo = SIGRTMIN); /** * Starts the timer. The timer fires first after @@ -47,8 +50,21 @@ class CppTimer { * that interval in PERIODIC mode. In ONESHOT mode * the timer fires once after the specified time in * nanoseconds. + * @param nanosecs Time in nanoseconds + * @param type Either PERIODIC or ONESHOT **/ - virtual void start(long nanosecs, cppTimerType_t type = PERIODIC); + virtual void startns(long nanosecs, cppTimerType_t type = PERIODIC); + + /** + * Starts the timer. The timer fires first after + * the specified time in milliseconds and then at + * that interval in PERIODIC mode. In ONESHOT mode + * the timer fires once after the specified time in + * milliseconds. + * @param millisecs Time in milliseconds + * @param type Either PERIODIC or ONESHOT + **/ + virtual void startms(long millisecs, cppTimerType_t type = PERIODIC); /** * Stops the timer by disarming it. It can be re-started @@ -74,11 +90,11 @@ class CppTimer { struct sigevent sev; struct sigaction sa; struct itimerspec its; - - static void handler(int sig, siginfo_t *si, void *uc ) { - (reinterpret_cast (si->si_value.sival_ptr))->timerEvent(); + + inline static void handler(int, siginfo_t *si, void *) + { + (reinterpret_cast(si->si_value.sival_ptr))->timerEvent(); } }; - -#endif \ No newline at end of file +#endif diff --git a/include/CppTimerCallback.h b/include/CppTimerCallback.h new file mode 100644 index 0000000..88f551f --- /dev/null +++ b/include/CppTimerCallback.h @@ -0,0 +1,36 @@ +#ifndef __CPP_TIMER_CALLBACK +#define __CPP_TIMER_CALLBACK +#include +#include "CppTimer.h" +#include + + +class CppTimerCallback : public CppTimer { + +public: + class Runnable { + public: + virtual void run() = 0; + }; + + void registerEventRunnable(Runnable &h) { + cppTimerEventRunnable = &h; + } + + void unregisterEventRunnable() { + cppTimerEventRunnable = NULL; + } + + void timerEvent() { + if (cppTimerEventRunnable) { + cppTimerEventRunnable->run(); + } + } + +private: + Runnable* cppTimerEventRunnable = NULL; + +}; + + +#endif diff --git a/include/PulseSensor.h b/include/PulseSensor.h new file mode 100644 index 0000000..323c649 --- /dev/null +++ b/include/PulseSensor.h @@ -0,0 +1,542 @@ +#include "CppTimer.h" + + +/** + * MCP3004/8 SETTINGS + **/ +#define BASE 100 +#define SPI_CHAN 0 + + +/** class SensorCallback + * brief Callback class for sensor data + * details Callback for new samples which needs + * to be implemented by the main program. + * The function hasSample needs to be + * overloaded in the main program. + **/ +class SensorCallback { +public: + /** + * Called after a sample has arrived. + **/ + virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold) = 0; +}; + +/** + * SensorTimer is inherited from CppTimer which itself is a wrapper around timer present in time.h + * SensorTimer declares variables and functions to take readings from the hardware. + * Analyze the beats per minute to determine sleep and plays an audio in such a case. + **/ +class SensorTimer : public CppTimer { + private: + SensorCallback* sensorCallback = nullptr; + unsigned int eventCounter, thisTime, lastTime, elapsedTime; + int firstTime, secondTime, duration; + int timeOutStart, dataRequestStart, m; + int Signal; + unsigned int sampleCounter; + int threshSetting,lastBeatTime; + int thresh = 550; + int P = 512; // set P default + int T = 512; // set T default + int firstBeat = 1; // set these to avoid noise + int secondBeat = 0; // when we get the heartbeat back + int QS = 0; + int rate[10]; + int BPM = 0; + int IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM) + int Pulse = 0; + int amp = 100; // beat amplitude 1/10 of input range. + int call_time_period = 2000; //in microseconds 2 milli s + /* + * Variables to analyze sleep in sleep detection + */ + + /** + * time_t variable stores when the night will start on the current day + **/ + time_t nightTime; + + /** + * time_t which is set as nightTime plus 8 hours. Not the actual wake up time of the person + * it can be taken as the morning time. + **/ + time_t wakeTime; + + /** + * int variable which stores the threshold on beats per minute + **/ + int bpmThreshold = 77; + + /** + * bool variable which if is one the person is in maybesleep state. + * If it remains in this state for a while then the person gets into sleep state in a while + * maybeSleep is a superset of the sleep state. In other words, maybeSleep is a necessary condition + * for sleep. + **/ + bool maybeSleep = 0; + + /** + * time_t variable which contains the time the program waits for the person to be in maybesleep state before + * he is put into sleep state as well. + **/ + time_t surelySleptTime = 2; + + /** + * This variable is set to one by [todo] to one if the person is sleep. This is read by various + * other functions to take appropriate actions. + **/ + bool sleep; + + /** + * time_t variable which stores the unix time of a person getting in the maybeSleep state + **/ + time_t startOfProspectiveSleep; + + int countdown = 0; + + /** + * bool which if 1 means the audio is playin and if zero means the audio + * is not playing. This is useful for functions which play audio as they must know + * if audio is playing or not. + **/ + bool is_audio_playing = 0; + + /** + * bool which if > 0 means that the audio will be played by the program itself and not + * a remote server. + **/ + bool play_audio_locally = 1; + + /** + * pid_t tracks the pid of the process which plays the audio. It needs to be tracked so that it + * can be killed at an appropriate moment. Also, it helps the program to avoid creating multiple pids. + **/ + pid_t audio_pid; + + /** + * string which stores the name of the audio file which should be played. + **/ + char audio_name[500]; + + /** + * bool which if 1, will lead to production of simulated values of beats per minute (BPM). + **/ + bool is_simulation = 0; + + /** + * bool which is set to 1 if the simulation has started. + **/ + bool simulation_started = 0; + + /** + * The simulation produces a triagular wave of bpm. This is the time period of the waveform + **/ + time_t period_of_simulation = 60*1; //1 minute duration + public: + /** + * Constructor function takes three arguments: + * bpm threshold: this sets the bpmThreshold variable + * is_simulation: this sets the is_simulation variable + * local_audio: this sets the play_audio_locally variable + * The function also intializes variables necessary for measurement of pulse and + * variables need to analyze bpm for sleep. + **/ + SensorTimer(int, bool, bool); + void setCallback(SensorCallback* cb); + /** + * This is a function in the parent class which is overidden here. Everything mentioned in the function + * is fired periodically after a certain interval. + **/ + void timerEvent(); + + /** + * This function intializes variables necessary to read the data, and get the beats per minute. + **/ + void initPulseSensorVariables(void); + + /** + * This function gets the Signal from the DAC and calculates bpm and othe parameters from the Signal. + **/ + void getPulse(void); + + /** + * Function to analyze sleep based on beats + * per minute. + * if BPM is below a certain threshold + * mayBeSleep should be on + * if mayBeSleep is on for a while + * then return 1; + **/ + bool analyzeBeatsForSleep(int bpm); + + /** + * This function initializes the variables for sleep detection. + **/ + void initializeVariablesForSleep(void); + + /** + * This function monitors the sleep variable and decides if an audio must be played. + * It also keeps track of the pids of the processes created to play the audio. + **/ + void audioprocess(); + + /** + * This function is used inside the audioprocess + * It takes in the audio name as argument and forks the program to run the audio + * returns pid of the process which runs audio to the parent process + **/ + pid_t play_audio(char* audio_name); + + /** + * Kills the pid of given to it as parameter + **/ + void kill_the_pid(pid_t x); + + /** + * Simulates bpm values as a triangular wave. + **/ + void beatsPerMinuteSimulation(); + time_t start_of_simulation; + + /** + * sets the time period of the triangular wave of bpm simulation + **/ + void setPeriodOfSimulatedWave(int); + // new funcs + + /** + * sets the surelySleptTime variable + **/ + void setSurelySleptTime(int); + + /** + * sets the night time to the current time. Useful in testing. + **/ + void setNigtTimeToNow(); + + /** + * This function is a wrapper around stop() function of the stop() function of the CppTimer + * This function also kills any audio pid if it is present. + **/ + void stopNew(); +}; + +SensorTimer::SensorTimer(int l_bpmThreshold, bool l_simulation, bool l_local_audio ){ + + is_simulation = l_simulation; + bpmThreshold = l_bpmThreshold; + play_audio_locally = l_local_audio; + + initPulseSensorVariables(); + initializeVariablesForSleep(); + FILE *fptr; + if ((fptr = fopen("audio.txt", "r")) == NULL) { + printf("Error! opening audio.txt"); + play_audio_locally = 0; + }else{ + fscanf(fptr,"%s", audio_name); + fclose(fptr); + play_audio_locally = 1; + } +} +void SensorTimer::setSurelySleptTime(int t){ + surelySleptTime = t; +} +void SensorTimer::setNigtTimeToNow(){ + nightTime = time(NULL) - 60; + wakeTime = nightTime + 60*60*8; +} +void SensorTimer::setPeriodOfSimulatedWave(int period){ + period_of_simulation = period; +} + +void SensorTimer::stopNew(){ + if(audio_pid > 0) + kill(audio_pid, SIGTERM); + stop(); +} + +void SensorTimer::audioprocess(){ + if(sleep == 1 && is_audio_playing == 0 && play_audio_locally){ + is_audio_playing = 1; + printf("\n\n\nSleep is positive. Playing Audio.\n\n\n"); + audio_pid = play_audio(audio_name); + /* + * If child process then the audio is already ended, pid must kill itself safely + */ + if(audio_pid == 0){ + raise(SIGKILL); + }else{ + /* + * If parent process then continue and put the is_audio_playing flag to be true + */ + is_audio_playing = 1; + printf("\n\n\nAudio pid is %d\n\n\n", audio_pid); + } + } + else if(is_audio_playing == 1 && sleep == 0 && play_audio_locally && audio_pid > 0){ + /* + * When the person wakes up again kill the pid which runs the audio + */ + printf("\n\n\n Killing the Audio as maybe the person has woken up\n\n\n"); + kill_the_pid(audio_pid); + is_audio_playing = 0; + + }else if(is_audio_playing == 1 && sleep == 1 && audio_pid > 0 && kill(audio_pid, 0) < 0){ + //the audio has ended. + is_audio_playing == 0; + } +} +pid_t SensorTimer::play_audio(char* audio_name){ + pid_t audio_pid_local; + if(0 == (audio_pid_local = fork())){ + //child process + //printf("reached here\n"); + execlp("mpg123", "mpg123", "-q", audio_name, 0); + is_audio_playing = 1; + } + is_audio_playing = 1; + return audio_pid_local; +} + +void SensorTimer::kill_the_pid(pid_t x){ + //char kil[100] = "kill -9 "; + //sprintf(kil,"%s%d",kil, x); + //system(kil); + kill(x,SIGINT); +} + +/** + * Sets the callback which is called whenever there is a sample + **/ +void SensorTimer::setCallback(SensorCallback* cb) { + //printf("pointer: %p\n", cb); + sensorCallback = cb; +} + +void SensorTimer::timerEvent() { + getPulse(); + if(is_simulation) + beatsPerMinuteSimulation(); + sleep = analyzeBeatsForSleep(BPM); + audioprocess(); + //Main print message + printf("BPM Threshold is: %d, BPM is: %d, Maybe he is asleep: %d, " + "Sleep is: %d, Audio_On: %d, Countdown: %d\r", bpmThreshold, BPM, maybeSleep, sleep, is_audio_playing, countdown); + fflush(stdout); + if (nullptr != sensorCallback) { + sensorCallback->hasSample(BPM, sleep, bpmThreshold); + } + fflush(stdout); +} + +void SensorTimer::beatsPerMinuteSimulation(){ + if(simulation_started == 0){ + start_of_simulation = time(NULL); + simulation_started = 1; + } + int begin_bpm = 80; + int end_bpm = 60; + //time_t period_of_simulation = 60*1; //5 minute duration + float slope = (float)(end_bpm - begin_bpm)/(float)(period_of_simulation/2); + int t = (time(NULL) - start_of_simulation)%period_of_simulation; + //Downwards + int sim_bpm = begin_bpm; + //printf("slope is %f\n",slope); + if(t < period_of_simulation/2) + sim_bpm = (int)(slope*t) + begin_bpm; + //Upwards + else if(t >= period_of_simulation/2 && t <= period_of_simulation){ + t = t - (period_of_simulation/2); + sim_bpm = -1 * (int)(slope*t) + end_bpm; + } + BPM = sim_bpm; +} + +/** + * This function is taken from the hardware vendor's github repo. + **/ +void SensorTimer::initPulseSensorVariables(void){ + + wiringPiSetup(); //use the wiringPi pin numbers + mcp3004Setup(BASE,SPI_CHAN); // setup the mcp3004 library + + + for (int i = 0; i < 10; ++i) { + rate[i] = 0; + } + QS = 0; + BPM = 0; + IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM) + Pulse = 0; + sampleCounter = 0; + lastBeatTime = 0; + P = 512; // peak at 1/2 the input range of 0..1023 + T = 512; // trough at 1/2 the input range. + threshSetting = 550; // used to seed and reset the thresh variable + thresh = 550; // threshold a little above the trough + amp = 100; // beat amplitude 1/10 of input range. + firstBeat = 1; // looking for the first beat + secondBeat = 0; // not yet looking for the second beat in a row + lastTime = micros(); + timeOutStart = lastTime; + call_time_period = 2000; //in microseconds 2 milli s +} + +/** + * This function is taken from the hardware vendor's github repo. + **/ +void SensorTimer::getPulse(void){ + + thisTime = micros(); + Signal = analogRead(BASE); + elapsedTime = thisTime - lastTime; + lastTime = thisTime; + + + sampleCounter += 2; // keep track of the time in mS with this variable + int N = sampleCounter - lastBeatTime; // monitor the time since the last beat to avoid noise + + + // find the peak and trough of the pulse wave + if (Signal < thresh && N > (IBI / 5) * 3) { // avoid dichrotic noise by waiting 3/5 of last IBI + if (Signal < T) { // T is the trough + T = Signal; // keep track of lowest point in pulse wave + } + } + + if (Signal > thresh && Signal > P) { // thresh condition helps avoid noise + P = Signal; // P is the peak + } // keep track of highest point in pulse wave + + // NOW IT'S TIME TO LOOK FOR THE HEART BEAT + // signal surges up in value every time there is a pulse + if (N > 250) { // avoid high frequency noise + if ( (Signal > thresh) && (Pulse == 0) && (N > ((IBI / 5) * 3)) ) { + Pulse = 1; // set the Pulse flag when we think there is a pulse + IBI = sampleCounter - lastBeatTime; // measure time between beats in mS + lastBeatTime = sampleCounter; // keep track of time for next pulse + + if (secondBeat) { // if this is the second beat, if secondBeat == TRUE + secondBeat = 0; // clear secondBeat flag + for (int i = 0; i <= 9; i++) { // seed the running total to get a realisitic BPM at startup + rate[i] = IBI; + } + } + + if (firstBeat) { // if it's the first time we found a beat, if firstBeat == TRUE + firstBeat = 0; // clear firstBeat flag + secondBeat = 1; // set the second beat flag + // IBI value is unreliable so discard it + return; + } + + + // keep a running total of the last 10 IBI values + int runningTotal = 0; // clear the runningTotal variable + + for (int i = 0; i <= 8; i++) { // shift data in the rate array + rate[i] = rate[i + 1]; // and drop the oldest IBI value + runningTotal += rate[i]; // add up the 9 oldest IBI values + } + + rate[9] = IBI; // add the latest IBI to the rate array + runningTotal += rate[9]; // add the latest IBI to runningTotal + runningTotal /= 10; // average the last 10 IBI values + BPM = 60000 / runningTotal; // how many beats can fit into a minute? that's BPM! + QS = 1; // set Quantified Self flag (we detected a beat) + //fadeLevel = MAX_FADE_LEVEL; // If we're fading, re-light that LED. + } + } + + if (Signal < thresh && Pulse == 1) { // when the values are going down, the beat is over + Pulse = 0; // reset the Pulse flag so we can do it again + amp = P - T; // get amplitude of the pulse wave + thresh = amp / 2 + T; // set thresh at 50% of the amplitude + P = thresh; // reset these for next time + T = thresh; + } + + if (N > 2500) { // if 2.5 seconds go by without a beat + thresh = threshSetting; // set thresh default + P = 512; // set P default + T = 512; // set T default + lastBeatTime = sampleCounter; // bring the lastBeatTime up to date + firstBeat = 1; // set these to avoid noise + secondBeat = 0; // when we get the heartbeat back + QS = 0; + BPM = 0; + IBI = 600; // 600ms per beat = 100 Beats Per Minute (BPM) + Pulse = 0; + amp = 100; // beat amplitude 1/10 of input range. + + } + + duration = micros()-thisTime; +} +void SensorTimer::initializeVariablesForSleep(void){ + time_t current_time = time(NULL); + struct tm *time_split = localtime(¤t_time); + struct tm night_time_split = {0, 0, 22, time_split->tm_mday, + time_split->tm_mon, time_split->tm_year, time_split->tm_wday, time_split->tm_yday, time_split->tm_isdst}; + nightTime = mktime(&night_time_split); + if(is_simulation) + nightTime = time(NULL) - 60; + time_t estimatedSleepLength = 60*60*8; + wakeTime = nightTime + estimatedSleepLength; +} + +/** +* Function to analyze sleep based on beats +* per minute. +* if BPM is below a certain threshold +* mayBeSleep should be on +* if mayBeSleep is on for a while +* then return 1; +**/ +bool SensorTimer::analyzeBeatsForSleep(int bpm) +{ + bool sleep_local = 0; + time_t maybeSleepTime; + time_t now = time(NULL); + //printf("BPM is %d, now is %d, nightTime is %d wakeTime is %d\n", BPM, now, nightTime, wakeTime); + if (now > nightTime && now < wakeTime) { + if (bpm < bpmThreshold && maybeSleep == 0) { + printf("\n\n\nmaybesleep Positive\n\n\n"); + startOfProspectiveSleep = time(NULL); + maybeSleep = 1; + } + if (bpm < bpmThreshold && maybeSleep == 1) { + maybeSleepTime = time(NULL) - startOfProspectiveSleep; + countdown = surelySleptTime - maybeSleepTime; + if (maybeSleepTime > surelySleptTime) { + sleep_local = 1; + } + } + if (bpm > bpmThreshold && maybeSleep == 1) { + maybeSleep = 0; + } + } + else { + sleep_local = 0; + } + return sleep_local; +} + + + + +class SenseWindow : public MainWindow{ + private: + int Signal; + public: + SenseWindow(){ + } + void timerEvent( QTimerEvent * ) { + Signal = analogRead(BASE); + addRealtimeSample(Signal); + callPlot(); + } +}; diff --git a/json_fastcgi_web_api.h b/include/json_fastcgi_web_api.h similarity index 100% rename from json_fastcgi_web_api.h rename to include/json_fastcgi_web_api.h diff --git a/include/mainwindow.cpp b/include/mainwindow.cpp new file mode 100644 index 0000000..d2ec589 --- /dev/null +++ b/include/mainwindow.cpp @@ -0,0 +1,340 @@ +#include "../include/mainwindow.h" + +const char instructionsTxt[] = + "\n" + "\n" + "

    Select the axes to drag and zoom them individually.

    \n" + "

    Double click labels or legend items to set user specified strings.

    \n" + "

    Left click on graphs or legend to select graphs.

    \n" + "

    Right click for a popup menu to add/remove graphs and move the legend

    "; + +const char titleTxt[] = "QCustomPlot Dream Hacker Pulse Measurement"; + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent) { + srand(QDateTime::currentDateTime().toTime_t()); + + // Layout + centralWidget = new QWidget(); + verticalLayout = new QVBoxLayout(centralWidget); + verticalLayout->setSpacing(6); + verticalLayout->setContentsMargins(11, 11, 11, 11); + frame_2 = new QFrame(centralWidget); + frame_2->setFrameShape(QFrame::StyledPanel); + frame_2->setFrameShadow(QFrame::Sunken); + frame_2->setLineWidth(1); + frame_2->setMidLineWidth(0); + verticalLayout_3 = new QVBoxLayout(frame_2); + verticalLayout_3->setSpacing(0); + verticalLayout_3->setContentsMargins(0, 0, 0, 0); + customPlot = new QCustomPlot(frame_2); + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(customPlot->sizePolicy().hasHeightForWidth()); + customPlot->setSizePolicy(sizePolicy); + verticalLayout_3->addWidget(customPlot); + verticalLayout->addWidget(frame_2); + frame = new QFrame(centralWidget); + frame->setFrameShape(QFrame::StyledPanel); + frame->setFrameShadow(QFrame::Raised); + verticalLayout_2 = new QVBoxLayout(frame); + verticalLayout_2->setSpacing(6); + verticalLayout_2->setContentsMargins(11, 11, 11, 11); + label = new QLabel(frame); + verticalLayout_2->addWidget(label); + verticalLayout->addWidget(frame); + setCentralWidget(centralWidget); + statusBar = new QStatusBar(); + setStatusBar(statusBar); + + customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes | + QCP::iSelectLegend | QCP::iSelectPlottables); + customPlot->xAxis->setRange(-1, 8); + //Shreyansh input y range + //customPlot->yAxis->setRange(-5, 5); + customPlot->yAxis->setRange(400, 600); + customPlot->axisRect()->setupFullAxesBox(); + + customPlot->plotLayout()->insertRow(0); + QCPTextElement *title = new QCPTextElement(customPlot, titleTxt, QFont("sans", 17, QFont::Bold)); + customPlot->plotLayout()->addElement(0, 0, title); + + customPlot->xAxis->setLabel("x Axis"); + customPlot->yAxis->setLabel("y Axis"); + customPlot->legend->setVisible(true); + QFont legendFont = font(); + legendFont.setPointSize(10); + customPlot->legend->setFont(legendFont); + customPlot->legend->setSelectedFont(legendFont); + customPlot->legend->setSelectableParts(QCPLegend::spItems); // legend box shall not be selectable, only legend items + + addRealtimeGraph(); + //addRandomGraph(); + //addRandomGraph(); + + // connect slot that ties some axis selections together (especially opposite axes): + connect(customPlot, SIGNAL(selectionChangedByUser()), this, SLOT(selectionChanged())); + // connect slots that takes care that when an axis is selected, only that direction can be dragged and zoomed: + connect(customPlot, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(mousePress())); + connect(customPlot, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(mouseWheel())); + + // make bottom and left axes transfer their ranges to top and right axes: + connect(customPlot->xAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->xAxis2, SLOT(setRange(QCPRange))); + connect(customPlot->yAxis, SIGNAL(rangeChanged(QCPRange)), customPlot->yAxis2, SLOT(setRange(QCPRange))); + + // connect some interaction slots: + connect(customPlot, SIGNAL(axisDoubleClick(QCPAxis*,QCPAxis::SelectablePart,QMouseEvent*)), this, SLOT(axisLabelDoubleClick(QCPAxis*,QCPAxis::SelectablePart))); + connect(customPlot, SIGNAL(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*,QMouseEvent*)), this, SLOT(legendDoubleClick(QCPLegend*,QCPAbstractLegendItem*))); + connect(title, SIGNAL(doubleClicked(QMouseEvent*)), this, SLOT(titleDoubleClick(QMouseEvent*))); + + // connect slot that shows a message in the status bar when a graph is clicked: + connect(customPlot, SIGNAL(plottableClick(QCPAbstractPlottable*,int,QMouseEvent*)), this, SLOT(graphClicked(QCPAbstractPlottable*,int))); + + // setup policy and connect slot for context menu popup: + customPlot->setContextMenuPolicy(Qt::CustomContextMenu); + connect(customPlot, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuRequest(QPoint))); + + setWindowTitle(titleTxt); + label->setText(instructionsTxt); +} + +void MainWindow::titleDoubleClick(QMouseEvent* event) { + Q_UNUSED(event) + if (QCPTextElement *title = qobject_cast(sender())) + { + // Set the plot title by double clicking on it + bool ok; + QString newTitle = QInputDialog::getText(this, "QCustomPlot example", "New plot title:", QLineEdit::Normal, title->text(), &ok); + if (ok) + { + title->setText(newTitle); + customPlot->replot(); + } + } +} +void MainWindow::callPlot(){ + customPlot->replot(); +} + +void MainWindow::axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part) { + // Set an axis label by double clicking on it + if (part == QCPAxis::spAxisLabel) // only react when the actual axis label is clicked, not tick label or axis backbone + { + bool ok; + QString newLabel = QInputDialog::getText(this, "QCustomPlot example", "New axis label:", QLineEdit::Normal, axis->label(), &ok); + if (ok) + { + axis->setLabel(newLabel); + customPlot->replot(); + } + } +} + +void MainWindow::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item) { + // Rename a graph by double clicking on its legend item + Q_UNUSED(legend) + if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0) + { + QCPPlottableLegendItem *plItem = qobject_cast(item); + bool ok; + QString newName = QInputDialog::getText(this, "QCustomPlot example", "New graph name:", QLineEdit::Normal, plItem->plottable()->name(), &ok); + if (ok) + { + plItem->plottable()->setName(newName); + customPlot->replot(); + } + } +} + +void MainWindow::selectionChanged() { + /* + normally, axis base line, axis tick labels and axis labels are selectable separately, but we want + the user only to be able to select the axis as a whole, so we tie the selected states of the tick labels + and the axis base line together. However, the axis label shall be selectable individually. + + The selection state of the left and right axes shall be synchronized as well as the state of the + bottom and top axes. + + Further, we want to synchronize the selection of the graphs with the selection state of the respective + legend item belonging to that graph. So the user can select a graph by either clicking on the graph itself + or on its legend item. + */ + + // make top and bottom axes be selected synchronously, and handle axis and tick labels as one selectable object: + if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis->selectedParts().testFlag(QCPAxis::spTickLabels) || + customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->xAxis2->selectedParts().testFlag(QCPAxis::spTickLabels)) + { + customPlot->xAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels); + customPlot->xAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels); + } + // make left and right axes be selected synchronously, and handle axis and tick labels as one selectable object: + if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis->selectedParts().testFlag(QCPAxis::spTickLabels) || + customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spAxis) || customPlot->yAxis2->selectedParts().testFlag(QCPAxis::spTickLabels)) + { + customPlot->yAxis2->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels); + customPlot->yAxis->setSelectedParts(QCPAxis::spAxis|QCPAxis::spTickLabels); + } + + // synchronize selection of graphs with selection of corresponding legend items: + for (int i=0; igraphCount(); ++i) + { + QCPGraph *graph = customPlot->graph(i); + QCPPlottableLegendItem *item = customPlot->legend->itemWithPlottable(graph); + if (item->selected() || graph->selected()) + { + item->setSelected(true); + graph->setSelection(QCPDataSelection(graph->data()->dataRange())); + } + } +} + +void MainWindow::mousePress() { + // if an axis is selected, only allow the direction of that axis to be dragged + // if no axis is selected, both directions may be dragged + + if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis)) + customPlot->axisRect()->setRangeDrag(customPlot->xAxis->orientation()); + else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis)) + customPlot->axisRect()->setRangeDrag(customPlot->yAxis->orientation()); + else + customPlot->axisRect()->setRangeDrag(Qt::Horizontal|Qt::Vertical); +} + +void MainWindow::mouseWheel() { + // if an axis is selected, only allow the direction of that axis to be zoomed + // if no axis is selected, both directions may be zoomed + + if (customPlot->xAxis->selectedParts().testFlag(QCPAxis::spAxis)) + customPlot->axisRect()->setRangeZoom(customPlot->xAxis->orientation()); + else if (customPlot->yAxis->selectedParts().testFlag(QCPAxis::spAxis)) + customPlot->axisRect()->setRangeZoom(customPlot->yAxis->orientation()); + else + customPlot->axisRect()->setRangeZoom(Qt::Horizontal|Qt::Vertical); +} + +void MainWindow::addRealtimeGraph() { + customPlot->addGraph(); + customPlot->graph()->setName(QString("Realtime")); + animdata.reset(new QCPDataContainer); + for(int i=0;iadd(data); + } + customPlot->graph()->setData(animdata); + QPen graphPen; + graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10)); + graphPen.setWidthF(2); + customPlot->graph()->setPen(graphPen); + customPlot->replot(); + startTimer(40); +} + +void MainWindow::addRealtimeSample(double v) { + // shift the values + for (auto i = animdata->end(); i != (animdata->begin()); --i) { + i->value = (i-1)->value; + } + // add a new datapoint at the start + animdata->begin()->value = v; +} + +void MainWindow::timerEvent( QTimerEvent * ) { + // demonstrates that adding a few samples before plotting speeds things up + for(int i = 0; i < 5; i++) { + addRealtimeSample(sin(t*5)); + t = t + dt; + } + customPlot->replot(); +} + +void MainWindow::addRandomGraph() { + int n = 2000; // number of points in graph + double xScale = (rand()/(double)RAND_MAX + 0.5)*2; + double yScale = (rand()/(double)RAND_MAX + 0.5)*2; + double xOffset = (rand()/(double)RAND_MAX - 0.5)*4; + double yOffset = (rand()/(double)RAND_MAX - 0.5)*10; + double r1 = (rand()/(double)RAND_MAX - 0.5)*2; + double r2 = (rand()/(double)RAND_MAX - 0.5)*2; + double r3 = (rand()/(double)RAND_MAX - 0.5)*2; + double r4 = (rand()/(double)RAND_MAX - 0.5)*2; + QVector x(n), y(n); + for (int i=0; iaddGraph(); + customPlot->graph()->setName(QString("New graph %1").arg(customPlot->graphCount()-1)); + customPlot->graph()->setData(x, y); + QPen graphPen; + graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10)); + graphPen.setWidthF(2); + customPlot->graph()->setPen(graphPen); + customPlot->replot(); +} + +void MainWindow::removeSelectedGraph() { + if (customPlot->selectedGraphs().size() > 0) + { + customPlot->removeGraph(customPlot->selectedGraphs().first()); + customPlot->replot(); + } +} + +void MainWindow::removeAllGraphs() { + customPlot->clearGraphs(); + customPlot->replot(); +} + +void MainWindow::contextMenuRequest(QPoint pos) { + QMenu *menu = new QMenu(this); + menu->setAttribute(Qt::WA_DeleteOnClose); + + if (customPlot->legend->selectTest(pos, false) >= 0) // context menu on legend requested + { + menu->addAction("Move to top left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignLeft)); + menu->addAction("Move to top center", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignHCenter)); + menu->addAction("Move to top right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignTop|Qt::AlignRight)); + menu->addAction("Move to bottom right", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignRight)); + menu->addAction("Move to bottom left", this, SLOT(moveLegend()))->setData((int)(Qt::AlignBottom|Qt::AlignLeft)); + } else // general context menu on graphs requested + { + menu->addAction("Add random graph", this, SLOT(addRandomGraph())); + if (customPlot->selectedGraphs().size() > 0) + menu->addAction("Remove selected graph", this, SLOT(removeSelectedGraph())); + if (customPlot->graphCount() > 0) + menu->addAction("Remove all graphs", this, SLOT(removeAllGraphs())); + } + + menu->popup(customPlot->mapToGlobal(pos)); +} + +void MainWindow::moveLegend() { + if (QAction* contextAction = qobject_cast(sender())) // make sure this slot is really called by a context menu action, so it carries the data we need + { + bool ok; + int dataInt = contextAction->data().toInt(&ok); + if (ok) + { + customPlot->axisRect()->insetLayout()->setInsetAlignment(0, (Qt::Alignment)dataInt); + customPlot->replot(); + } + } +} + +void MainWindow::graphClicked(QCPAbstractPlottable *plottable, int dataIndex) { + // since we know we only have QCPGraphs in the plot, we can immediately access interface1D() + // usually it's better to first check whether interface1D() returns non-zero, and only then use it. + double dataValue = plottable->interface1D()->dataMainValue(dataIndex); + QString message = QString("Clicked on graph '%1' at data point #%2 with value %3.").arg(plottable->name()).arg(dataIndex).arg(dataValue); + statusBar->showMessage(message, 2500); +} + + + + diff --git a/include/mainwindow.h b/include/mainwindow.h new file mode 100644 index 0000000..40d715c --- /dev/null +++ b/include/mainwindow.h @@ -0,0 +1,62 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + + void timerEvent( QTimerEvent * ); + void addRealtimeSample(double v); + void callPlot(); + +private slots: + void titleDoubleClick(QMouseEvent *event); + void axisLabelDoubleClick(QCPAxis* axis, QCPAxis::SelectablePart part); + void legendDoubleClick(QCPLegend* legend, QCPAbstractLegendItem* item); + void selectionChanged(); + void mousePress(); + void mouseWheel(); + void addRandomGraph(); + void addRealtimeGraph(); + void removeSelectedGraph(); + void removeAllGraphs(); + void contextMenuRequest(QPoint pos); + void moveLegend(); + void graphClicked(QCPAbstractPlottable *plottable, int dataIndex); + +private: + QWidget *centralWidget; + QVBoxLayout *verticalLayout; + QFrame *frame_2; + QVBoxLayout *verticalLayout_3; + QCustomPlot *customPlot; + QFrame *frame; + QVBoxLayout *verticalLayout_2; + QLabel *label; + QMenuBar *menuBar; + QStatusBar *statusBar; + QSharedPointer > animdata; + const int nRealtimePoints = 500; + const double dt = 0.02; + double t = 0; +}; + +#endif // MAINWINDOW_H diff --git a/main b/main deleted file mode 100755 index 272b3a4..0000000 Binary files a/main and /dev/null differ diff --git a/main.cpp b/main.cpp deleted file mode 100644 index 2c4fbe6..0000000 --- a/main.cpp +++ /dev/null @@ -1,223 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "json_fastcgi_web_api.h" -#include "PulseSensor.h" - -struct tm* timenow; - -// MCP3004/8 SETTINGS -#define BASE 100 -#define SPI_CHAN 0 - -//Variables for sleep detection -volatile time_t startOfProspectiveSleep; -time_t surelySleptTime = 1800; -volatile time_t nightTime; -volatile time_t wakeTime; -volatile bool maybeSleep = 0; -volatile int bpmThreshold = 75; - - -FILE* data; - -/** - * Flag to indicate that we are running. - * Needed later to quit the idle loop. - **/ -int mainRunning = 1; - -/** - * Handler when the user has pressed ctrl-C - * send HUP via the kill command. - **/ -void sigHandler(int sig) { - if((sig == SIGHUP) || (sig == SIGINT)) { - mainRunning = 0; - } -} - - -/** - * Sets a signal handler so that you can kill - * the background process gracefully with: - * kill -HUP - **/ -void setHUPHandler() { - struct sigaction act; - memset (&act, 0, sizeof (act)); - act.sa_handler = sigHandler; - if (sigaction (SIGHUP, &act, NULL) < 0) { - perror ("sigaction"); - exit (-1); - } - if (sigaction (SIGINT, &act, NULL) < 0) { - perror ("sigaction"); - exit (-1); - } -} - -/** - * Handler which receives the data here just saves - * the most recent sample with timestamp. Obviously, - * in a real application the data would be stored - * in a database and/or triggers events and other things! - **/ -class SENSORfastcgicallback : public SensorCallback { -public: - int beatsPerMinute; - bool sleep; - long t; - - /** - * Callback with the fresh ADC data. - * That's where all the internal processing - * of the data is happening. - **/ - virtual void hasSample(int beats) { - sleep = analyzeBeatsForSleep(beats); - beatsPerMinute = beats; - // timestamp - t = time(NULL); - } - - bool analyzeBeatsForSleep(int bpm) { - bool sleep = 0; - time_t maybeSleepTime; - /* - * if BPM is below a certain threshold - * mayBeSleep should be on - * if mayBeSleep is on for a while - * then return 1; - */ - //time_t now = time(NULL); - //if (now > nightTime && now < wakeTime) { - // if (bpm < bpmThreshold && maybeSleep == 0) { - // startOfProspectiveSleep = time(NULL); - // maybeSleep = 1; - // } - // if (bpm < bpmThreshold && maybeSleep == 1) { - // maybeSleepTime = time(NULL) - startOfProspectiveSleep; - // if (maybeSleepTime > surelySleptTime) { - // sleep = 1; - // } - // } - // if (bpm > bpmThreshold && maybeSleep == 1) { - // maybeSleep == 0; - // } - //} - //else { - // sleep = 0; - //} - //return sleep; - return 1; - } -}; - - -/** - * Callback handler which returns data to the - * nginx server. Here, simply the current timestamp, sleeping possibility - * and the beats per minute is transmitted to nginx and the - * php application. - **/ -class JSONCGIADCCallback : public JSONCGIHandler::GETCallback { -private: - /** - * Pointer to the ADC event handler because it keeps - * the data in this case. In a proper application - * that would be probably a database class or a - * controller keeping it all together. - **/ - SENSORfastcgicallback* sensorfastcgi; - -public: - /** - * Constructor: argument is the ADC callback handler - * which keeps the data as a simple example. - **/ - JSONCGIADCCallback(SENSORfastcgicallback* argSENSORfastcgi) { - sensorfastcgi = argSENSORfastcgi; - } - - /** - * Gets the data sends it to the webserver. - * The callback creates three json entries. One with the - * timestamp, one with the beats and one with the - * sleep possibility from the sensor. - **/ - virtual std::string getJSONString() - { - JSONCGIHandler::JSONGenerator jsonGenerator; - jsonGenerator.add("epoch", (long)time(NULL)); - jsonGenerator.add("beats", sensorfastcgi->beatsPerMinute); - jsonGenerator.add("sleep", sensorfastcgi->sleep); - return jsonGenerator.getJSON(); - } -}; - -int main(int argc, char* argv[]) { - //signal(SIGINT, sigHandler); - - time_t now = time(NULL); - - wiringPiSetup(); //use the wiringPi pin numbers - mcp3004Setup(BASE,SPI_CHAN); // setup the mcp3004 library - //pinMode(BLINK_LED, OUTPUT); digitalWrite(BLINK_LED,LOW); - timenow = gmtime(&now); - - // getting all the ADC related acquistion set up - PulseSensor* sensorcomm = new PulseSensor(); - SENSORfastcgicallback sensorfastcgicallback; - sensorcomm->setCallback(&sensorfastcgicallback); - - // Setting up the JSONCGI communication - // The callback which is called when fastCGI needs data - // gets a pointer to the SENSOR callback class which - // contains the samples. Remember this is just a simple - // example to have access to some data. - JSONCGIADCCallback fastCGIADCCallback(&sensorfastcgicallback); - - - // starting the fastCGI handler with the callback and the - // socket for nginx. - JSONCGIHandler* fastCGIHandler = new JSONCGIHandler(&fastCGIADCCallback, NULL, "/tmp/sensorsocket"); - - printf("starting sensor\n"); - // initilaize Pulse Sensor beat finder - sensorcomm->initPulseSensorVariables(); - - sensorcomm->startSensor(); - - // catching Ctrl-C or kill -HUP so that we can terminate properly - setHUPHandler(); - - fprintf(stderr,"'%s' up and running.\n",argv[0]); - - while (mainRunning) sleep(1); - - - fprintf(stderr,"'%s' shutting down.\n",argv[0]); - - // stopping ADC - delete sensorcomm; - - // stops the fast CGI handlder - delete fastCGIHandler; - - return 0; - } - - - - - diff --git a/main/main.cpp b/main/main.cpp new file mode 100644 index 0000000..6050fac --- /dev/null +++ b/main/main.cpp @@ -0,0 +1,280 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../include/mainwindow.h" +#include "../include/CppTimer.h" +#include +#include "../include/PulseSensor.h" +#include "../include/json_fastcgi_web_api.h" + + + + +/** class SENSORfastcgicallback + * brief Callback class when beats data arrive + * details Handler which receives the data here just saves + * the most recent sample with timestamp. Obviously, + * the data would be forwarde to frontend for showing + * to user. + **/ +class SENSORfastcgicallback : public SensorCallback { +public: + int beatsPerMinute; + bool sleep; + int threshold; + long t; + + /** + * brief Callback with the fresh pulse data. + * details This function is called whenever + * a new pulse data is arrived. It updates + * the local variables, which in turn forwarded + * to frontend. + * param beats int -- Beats per minute, real data from sensor + * mayBeSleep boolean -- Sleep defining variable, true + * if person is asleep. + * return void + **/ + virtual void hasSample(int beats, bool mayBeSleep, int bpmThreshold) { + sleep = mayBeSleep; + beatsPerMinute = beats; + threshold = bpmThreshold; + t = time(NULL); + } + +}; + +/** class JSONCGIADCCallback + * brief FastCGI Callback handles + * details Callback handler which returns data to the + * nginx server. Here, simply the current timestamp, + * sleeping possibility and the beats per minute is + * transmitted to nginx and the php application. + **/ + +class JSONCGIADCCallback : public JSONCGIHandler::GETCallback { +private: + /** + * Pointer to the ADC event handler because it keeps + * the data in this case. + **/ + SENSORfastcgicallback* sensorfastcgi; + +public: + /** + * Constructor: argument is the ADC callback handler + * which keeps the data. + **/ + JSONCGIADCCallback(SENSORfastcgicallback* argSENSORfastcgi) { + sensorfastcgi = argSENSORfastcgi; + } + + /** + * Gets the data sends it to the webserver. + * The callback creates three json entries. One with the + * timestamp, one with the beats and one with the + * sleep possibility from the sensor. + **/ + virtual std::string getJSONString() + { + JSONCGIHandler::JSONGenerator jsonGenerator; + jsonGenerator.add("epoch", (long)time(NULL)); + jsonGenerator.add("beats", sensorfastcgi->beatsPerMinute); + jsonGenerator.add("sleep", sensorfastcgi->sleep); + jsonGenerator.add("bpmThreshold", sensorfastcgi->threshold); + return jsonGenerator.getJSON(); + } +}; +volatile int g_running = 1; + +void signalHandler(int signum){ + g_running = 0; + printf("\n\n\nProgram Terminated\n\n\n"); +} + +void usage(void){ + printf("\nUsage:\n" + "./main [-h] for usage\n" + "./main [-t ] to put bpm threshold\n" + "./main [-g ] 1 to plot in qtplot. Default: 1\n" + "./main [-l ] 1 to play audio locally. Default: 1\n" + "./main [-n ] 1 to set night time to now. Default: 0\n" + "./main [-w ]set waiting time to confirm sleep.\n" + "./main [-s ] 1 for simulated bpm. Default: 0\n"); +} + + +int main(int argc, char *argv[]) +{ + /** + * Threshold of Beats per minute + * Modifiable by using ./main -t + **/ + int threshold = 77; + /** + * bool value: if 1, then ecg will be plotted, if zero ecg will not be plotted + * Can be changed by giving arguments like this: ./main -g 0 for graph not to be plotted + * and ./main -g 1 for graph to be plotted. Default is 1 + **/ + bool graph = 1; + /** + * bool value: if 1, then program will run in simulation mode, if 0 then real data of bpm is used. + * Can be changed by giving arguments like this: ./main -s 0 for real bpm + * and ./main -g 1 for simulated bpm. Default is 1 + **/ + bool simulation = 0; + + /** + * bool value if 1, the audio will be played from this progrma itself. Default is 1. + * can be changed while running the program by giving arguments like ./main -l 0 + **/ + bool local_audio = 1; + + /** + * If we want to play the audio at any time during the day then nightTime should be set to now. For that + * we need to set this value to 1. This can be done by passing the argument like: ./main -n 1. Default is 0 + * + **/ + bool nightTimeNow = 0; + + /** + * int value. The delay it takes the program to reach from the state of maybesleep to sleep. + * Usually it must be half an our but it can be manipulated for testing purpose like this: ./main -w 60 + * It this example the program would wait for 30 seconds to go from maybesleep state to sleep state. + **/ + int surelySleptTime = 2; + + bool flagSurelySleptTime = 0; + + /** + * This variable is used to get the parameters from the terminal + **/ + char key; + + /** + * This variable is used to get the parameters from the terminal + **/ + char* value; + if(argc > 1){ + //mode = atoi(argv[1]); + for(int i = 1; i < argc; i++){ + if(argv[i][0] == '-'){ + key = argv[i][1]; + value = argv[i + 1]; + switch(key){ + case 't': + threshold = atoi(value); + i +=1; + break; + case 'g': + graph = atoi(value); + i +=1; + break; + case 's': + simulation = atoi(value); + i +=1; + break; + case 'l': + local_audio = atoi(value); + i +=1; + break; + case 'n': + nightTimeNow = atoi(value); + i +=1; + break; + case 'w': + surelySleptTime = atoi(value); + flagSurelySleptTime = 1; + i +=1; + break; + case 'h': + i +=1; + usage(); + exit(0); + break; + default: + printf("Wrong Parameters passed\n\n"); + usage(); + exit(0); + } + + }else{ + usage(); + exit(0); + } + } + } + signal(SIGINT, signalHandler); + /** + * Pulse me runs in a c++ timer + * It reads the analog data from pulse sensor and calculates BPM. + * BPM is used for other analysis. + **/ + SensorTimer pulseMe(threshold, simulation, local_audio); + if(nightTimeNow) + pulseMe.setNigtTimeToNow(); + //waiting time just after the bpm drops to threshold + if(flagSurelySleptTime) + pulseMe.setSurelySleptTime(surelySleptTime); + + + SENSORfastcgicallback sensorfastcgicallback; + pulseMe.setCallback(&sensorfastcgicallback); + + /** + * Setting up the JSONCGI communication + * The callback which is called when fastCGI needs data + * gets a pointer to the SENSOR callback class which + * contains the samples. Remember this is just a simple + * example to have access to some data. + **/ + JSONCGIADCCallback fastCGIADCCallback(&sensorfastcgicallback); + + + // starting the fastCGI handler with the callback and the + // socket for nginx. + JSONCGIHandler* fastCGIHandler = new JSONCGIHandler(&fastCGIADCCallback, NULL, "/tmp/sensorsocket"); + + pulseMe.startms(2); + /** + * The QApplication will form the windows for the display of raw data read from the sensor. + * This will block the control and the program will keep on runnig stuck here. + **/ + QApplication a(argc, argv); + SenseWindow w; + if(graph){ + w.showMaximized(); + a.exec(); + } + + /** + * If the graphing window is terminated by the user then the control will get stuck in the while loop which depends on + * the global variable bool runnig + **/ + + while(g_running); + + + /** + * The timer will stop if the control reaches at pulseMe.stop + **/ + + //pulseMe.stop(); + pulseMe.stopNew(); + + + return 0; + +}//int main(int argc, char *argv[]) + + diff --git a/pipeline_test.html b/pipeline_test.html deleted file mode 100644 index e9cf2a2..0000000 --- a/pipeline_test.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - Welcome to the Dream Hack Test server - - - - - - -

    Realtime data plot with JSON data transfer

    - -

    00 degree celsius

    - -

    This is a realtime demo where the java script requests the data - and then appends it to the plot every second.

    - -
    - - - - -
    -
    -
    -
    - -
    -
    -

    Main page

    -
    -
    -
    -
    - -

    References

    - -

    dygraphs

    - -

    github repo

    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -

    Text only version

    - - - \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index a55cae6..0000000 --- a/readme.md +++ /dev/null @@ -1,40 +0,0 @@ -# DreamHacker - -# Objectives -To give audio stimulus to a sleeping person to manipulate his dreams. - -# The Plan -To take data from pressure sensors, ecg, time of the day etc, to predict when the person has slept. -Then after a while start the audio stimulus. - -

    -
    - - -# Social Media - -[YouTube](https://www.youtube.com/channel/UCoZ31rXYGIltQAecAKzutBQ) - -[Facebook](https://www.facebook.com/Dream-Hacker-103619898510175) - -[Instagram](https://www.instagram.com/proj_dreamhacker/) - -# Hardware Needed -1. Raspberry pi -1. Pressure Sensor -1. Pulse Sensor -1. Wires, resistors, etc. - -# UI Documentation -This Document will be where the reasoning behind certain decisions, plans and prototypes will be added. - -# Intended UI -The UI for DreamHacker will be a Web application. By using the Raspberry Pi as a local server the user will be able to intertace with the application through any wifi enabled device. - -# Software Used -1. PHP -1. SQL -1. Javascript -1. JQuerry - - diff --git a/server/nginx-sites-enabled-default b/server/nginx-sites-enabled-default new file mode 100644 index 0000000..ee511ba --- /dev/null +++ b/server/nginx-sites-enabled-default @@ -0,0 +1,27 @@ +server { + listen 80; + server_name localhost; + + root /var/www/html/DreamHack/frontend; + index index.php index.html index.htm; + + location /favicon.ico { + return 204; + access_log off; + log_not_found off; + } + + location /sensor/ { + include fastcgi_params; + fastcgi_pass unix:/tmp/sensorsocket; + } + + location ~ \.php$ { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:/tmp/php-fpm.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } +} diff --git a/src/CppTimer.cpp b/src/CppTimer.cpp new file mode 100644 index 0000000..aecf158 --- /dev/null +++ b/src/CppTimer.cpp @@ -0,0 +1,96 @@ +#include "../include/CppTimer.h" + +/** + * GNU GENERAL PUBLIC LICENSE + * Version 3, 29 June 2007 + * + * (C) 2020-2021, Bernd Porr + * + * This is inspired by the timer_create man page. + **/ + +CppTimer::CppTimer(const int signo) +{ + // We create a static handler catches the signal SIG + sa.sa_flags = SA_SIGINFO; + sa.sa_sigaction = handler; + sigemptyset(&sa.sa_mask); + if (sigaction(signo, &sa, NULL) == -1) + throw("Could not create signal handler"); + + // Create the timer + sev.sigev_notify = SIGEV_SIGNAL; + sev.sigev_signo = signo; + // Cruical is that the signal carries the pointer to this class instance here + // because the handler just handles anything that comes in! + sev.sigev_value.sival_ptr = this; + // create the timer + if (timer_create(CLOCKID, &sev, &timerid) == -1) + throw("Could not create timer"); +} + +void CppTimer::startns(long nanosecs, cppTimerType_t type) +{ + switch (type) + { + case (PERIODIC): + //starts after specified period of nanoseconds + its.it_value.tv_sec = nanosecs / 1000000000; + its.it_value.tv_nsec = nanosecs % 1000000000; + its.it_interval.tv_sec = nanosecs / 1000000000; + its.it_interval.tv_nsec = nanosecs % 1000000000; + break; + case (ONESHOT): + //fires once after specified period of nanoseconds + its.it_value.tv_sec = nanosecs / 1000000000; + its.it_value.tv_nsec = nanosecs % 1000000000; + its.it_interval.tv_sec = 0; + its.it_interval.tv_nsec = 0; + break; + } + if (timer_settime(timerid, 0, &its, NULL) == -1) + throw("Could not start timer"); +} + +void CppTimer::startms(long millisecs, cppTimerType_t type) +{ + switch (type) + { + case (PERIODIC): + //starts after specified period of milliseconds + its.it_value.tv_sec = millisecs / 1000; + its.it_value.tv_nsec = (millisecs % 1000) * 1000000; + its.it_interval.tv_sec = millisecs / 1000; + its.it_interval.tv_nsec = (millisecs % 1000) * 1000000; + break; + case (ONESHOT): + //fires once after specified period of milliseconds + its.it_value.tv_sec = millisecs / 1000; + its.it_value.tv_nsec = (millisecs % 1000) * 1000000; + its.it_interval.tv_sec = 0; + its.it_interval.tv_nsec = 0; + break; + } + if (timer_settime(timerid, 0, &its, NULL) == -1) + throw("Could not start timer"); +} + +void CppTimer::stop() +{ + // disarm + struct itimerspec itsnew; + itsnew.it_value.tv_sec = 0; + itsnew.it_value.tv_nsec = 0; + itsnew.it_interval.tv_sec = 0; + itsnew.it_interval.tv_nsec = 0; + timer_settime(timerid, 0, &itsnew, &its); +} + +CppTimer::~CppTimer() +{ + stop(); + // delete the timer + timer_delete(timerid); + // default action for signal handling + signal(sev.sigev_signo, SIG_IGN); +} diff --git a/src/mainwindowdemo.cpp b/src/mainwindowdemo.cpp new file mode 100644 index 0000000..40b11e5 --- /dev/null +++ b/src/mainwindowdemo.cpp @@ -0,0 +1,11 @@ +#include +#include "../include/mainwindow.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.showMaximized(); + + return a.exec(); +} diff --git a/test/test_cases.sh b/test/test_cases.sh new file mode 100755 index 0000000..c4fdd26 --- /dev/null +++ b/test/test_cases.sh @@ -0,0 +1,12 @@ +#!/bin/bash +#simulation test case. + + +#../drmhk -s 1 -g 0 -t 72 -w 10 + + +#real scenario threshold put sufficiently high for test to be successful. + + +#./drmhk -t 90 -w 10 -n 1 +../drmhk -g 0 -t 99 -n 1